[devdocsgjs/wip/gnome-40-rbenv] Update for GNOME 40.0




commit 34520aa543805f05a3390f99baf2d064a9abdca8
Author: Andy Holmes <andrew g r holmes gmail com>
Date:   Sun Mar 21 21:52:28 2021 -0700

    Update for GNOME 40.0
    
    * Bump the usual GNOME Shell GIRs
    * Revert to using rbenv instead of distro ruby

 Dockerfile                                         |    30 +-
 lib/docs/scrapers/gnome/girs/mutter-7/Cally-7.gir  |  1128 +
 .../scrapers/gnome/girs/mutter-7/Clutter-7.gir     | 73160 +++++++++++++++++++
 .../scrapers/gnome/girs/mutter-7/ClutterX11-7.gir  |   315 +
 lib/docs/scrapers/gnome/girs/mutter-7/Cogl-7.gir   | 14966 ++++
 .../scrapers/gnome/girs/mutter-7/CoglPango-7.gir   |   377 +
 lib/docs/scrapers/gnome/girs/mutter-7/Meta-7.gir   | 15953 ++++
 7 files changed, 105920 insertions(+), 9 deletions(-)
---
diff --git a/Dockerfile b/Dockerfile
index 1c336c15..dce2101b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM fedora:33 AS build
+FROM fedora:34 AS build
 
 RUN dnf install -y glibc-langpack-en
 ENV LANG en_US.UTF-8
@@ -7,7 +7,8 @@ ENV LC_ALL en_US.UTF-8
 
 # Build dependencies and GIR packages
 RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ && \
-    dnf install -y ruby rubygem-bundler ruby-devel python3-markdown \
+    dnf builddep -y ruby && \
+    dnf install -y python3-markdown \
         NetworkManager-libnm-devel cairo-devel cheese-libs-devel \
         clutter-{gst3,gtk}-devel evince-devel folks-devel geoclue2-devel \
         geocode-glib-devel glib2-devel gnome-bluetooth-libs-devel \
@@ -26,16 +27,25 @@ RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ && \
     dnf clean all && \
     rm -rf /var/cache/yum
 
+# Get rbenv and ruby-build in order to install the particular version of Ruby
+# that Devdocs needs
+RUN git clone git://github.com/sstephenson/rbenv.git /root/.rbenv
+RUN git clone git://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build
+ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:/root/.rbenv/plugins/ruby-build/bin:$PATH
+
 # These are extra GIRs we can't install with dnf
 COPY lib/docs/scrapers/gnome/girs/GtkosxApplication-1.0.gir /usr/share/gir-1.0/
 COPY lib/docs/scrapers/gnome/girs/mutter-3 /usr/lib64/mutter-3
 COPY lib/docs/scrapers/gnome/girs/mutter-4 /usr/lib64/mutter-4
 COPY lib/docs/scrapers/gnome/girs/mutter-5 /usr/lib64/mutter-5
 COPY lib/docs/scrapers/gnome/girs/mutter-6 /usr/lib64/mutter-6
+COPY lib/docs/scrapers/gnome/girs/mutter-7 /usr/lib64/mutter-7
 COPY lib/docs/scrapers/gnome/girs/Wp-0.3.gir /usr/share/gir-1.0/
 
 COPY . /opt/devdocs/
 WORKDIR /opt/devdocs
+RUN rbenv install
+RUN gem install bundler
 RUN bundle install --deployment
 
 RUN bundle exec thor gir:generate_all /usr/share/gir-1.0
@@ -44,16 +54,17 @@ RUN bundle exec thor gir:generate_all /usr/lib64/mutter-4
 RUN bundle exec thor gir:generate_all /usr/lib64/mutter-5
 RUN bundle exec thor gir:generate_all /usr/lib64/mutter-6
 RUN bundle exec thor gir:generate_all /usr/lib64/mutter-7
+RUN bundle exec thor gir:generate_all /usr/lib64/mutter-8
 
 # Some of the gnome-shell GIRs need extra include paths
 RUN bundle exec thor gir:generate /usr/share/gnome-shell/Gvc-1.0.gir
-RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include /usr/lib64/mutter-7
-RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter-7
+RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include /usr/lib64/mutter-8
+RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter-8
 
 RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \
-        cally10 cally7 camel12 champlain012 cheese30 clutter10 clutter7 \
-        cluttergdk10 cluttergst30 clutterx1110 clutterx117 cogl10 cogl20 cogl7 \
-        coglpango10 coglpango20 coglpango7 dbusmenu04 ebook12 ebookcontacts12 \
+        cally10 cally8 camel12 champlain012 cheese30 clutter10 clutter8 \
+        cluttergdk10 cluttergst30 clutterx1110 clutterx118 cogl10 cogl20 cogl8 \
+        coglpango10 coglpango20 coglpango8 dbusmenu04 ebook12 ebookcontacts12 \
         edataserver12 edataserverui12 evincedocument30 evinceview30 folks06 \
         folksdummy06 folkseds06 folkstelepathy06 gcab10 gck1 gcr3 gcrui3 \
         gda50 gdata00 gdesktopenums30 gdk20 gdk30 gdk40 gdkpixbuf20 gdkx1120 \
@@ -66,7 +77,7 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \
         gstvideo10 gstvulkan10 gstwebrtc10 gtk20 gtk30 gtk40 gtkchamplain012 \
         gtkclutter10 gtkosxapplication10 gtksource30 gudev10 gupnp10 \
         gupnpdlna20 gupnpdlnagst20 gvc10 gweather30 gxps01 handy1 ibus10 \
-        javascriptcore40 json10 keybinder30 meta7 nm10 notify07 pango10 \
+        javascriptcore40 json10 keybinder30 meta8 nm10 notify07 pango10 \
         pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \
         polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \
         soup24 soupgnome24 st10 telepathyglib012 tracker20 trackercontrol20 \
@@ -75,7 +86,8 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \
         cally3 clutter3 clutterx113 cogl3 coglpango3 meta3 \
         cally4 clutter4 clutterx114 cogl4 coglpango4 meta4 \
         cally5 clutter5 clutterx115 cogl5 coglpango5 meta5 \
-        cally6 clutter6 clutterx116 cogl6 coglpango6 meta6; \
+        cally6 clutter6 clutterx116 cogl6 coglpango6 meta6 \
+        cally7 clutter7 clutterx117 cogl7 coglpango7 meta7; \
       do echo $docset; bundle exec thor docs:generate $docset --force; done
 
 # Intentionally omitted:
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/Cally-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/Cally-7.gir
new file mode 100644
index 00000000..68c806c2
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/Cally-7.gir
@@ -0,0 +1,1128 @@
+<?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="Clutter" version="7"/>
+  <include name="Cogl" version="7"/>
+  <include name="CoglPango" version="7"/>
+  <namespace name="Cally"
+             version="7"
+             shared-library="libmutter-clutter-7.so.0"
+             c:identifier-prefixes="Cally"
+             c:symbol-prefixes="cally">
+    <function-macro name="ACCESSIBLE_FACTORY"
+                    c:identifier="CALLY_ACCESSIBLE_FACTORY"
+                    version="1.4"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-factory.h"
+           line="32">Defines a new #AtkObjectFactory factory to create accessible
+objects of a specific GType. It defines the factory GType and also
+overrides the proper #AtkObjectFactory methods.
+
+It assumes that the accessibility object provides a
+@opt_create_accessible method in order to create the accessibility
+object. It returns a @type GType object.</doc>
+      <source-position filename="../clutter/clutter/cally/cally-factory.h"
+                       line="48"/>
+      <parameters>
+        <parameter name="type">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-factory.h"
+               line="34">GType of the accessible which is created by the factory</doc>
+        </parameter>
+        <parameter name="type_as_function">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-factory.h"
+               line="35">prefix of the accessible object methods</doc>
+        </parameter>
+        <parameter name="opt_create_accessible">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-factory.h"
+               line="36">method to instantiate the accessibility object</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR" c:identifier="CALLY_ACTOR" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_CLASS"
+                    c:identifier="CALLY_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_GET_CLASS"
+                    c:identifier="CALLY_ACTOR_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_SET_FACTORY"
+                    c:identifier="CALLY_ACTOR_SET_FACTORY"
+                    version="1.4"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-factory.h"
+           line="102">Sets the #AtkObjectFactory to be used in order to instantiate
+accessibility objects for the actor which GType is @widget_type.</doc>
+      <source-position filename="../clutter/clutter/cally/cally-factory.h"
+                       line="112"/>
+      <parameters>
+        <parameter name="widget_type">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-factory.h"
+               line="104">GType of the clutter actor</doc>
+        </parameter>
+        <parameter name="type_as_function">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-factory.h"
+               line="105">prefix of the accessible object methods</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <callback name="ActionCallback" c:type="CallyActionCallback" version="1.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-actor.h"
+           line="59">Action function, to be used on #AtkAction implementations as
+an individual action. Unlike #CallyActionFunc, this function
+uses the @user_data argument passed to cally_actor_add_action_full().</doc>
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="70"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cally_actor" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.h"
+               line="61">a #CallyActor</doc>
+          <type name="Actor" c:type="CallyActor*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.h"
+               line="62">user data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ActionFunc" c:type="CallyActionFunc" version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-actor.h"
+           line="48">Action function, to be used on #AtkAction implementations as a individual
+action</doc>
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="57"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cally_actor" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.h"
+               line="50">a #CallyActor</doc>
+          <type name="Actor" c:type="CallyActor*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Actor"
+           c:symbol-prefix="actor"
+           c:type="CallyActor"
+           version="1.4"
+           parent="Atk.GObjectAccessible"
+           glib:type-name="CallyActor"
+           glib:get-type="cally_actor_get_type"
+           glib:type-struct="ActorClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-actor.h"
+           line="73">The &lt;structname&gt;CallyActor&lt;/structname&gt; structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="127"/>
+      <implements name="Atk.Action"/>
+      <implements name="Atk.Component"/>
+      <constructor name="new" c:identifier="cally_actor_new" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-actor.c"
+             line="194">Creates a new #CallyActor for the given @actor</doc>
+        <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                         line="133"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.c"
+               line="200">the newly created #AtkObject</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="196">a #ClutterActor</doc>
+            <type name="Clutter.Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_action"
+              c:identifier="cally_actor_add_action"
+              shadowed-by="add_action_full"
+              version="1.4"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-actor.c"
+             line="1031">Adds a new action to be accessed with the #AtkAction interface.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.c"
+               line="1041">added action id, or -1 if failure</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cally_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1033">a #CallyActor</doc>
+            <type name="Actor" c:type="CallyActor*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1034">the action name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action_description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1035">the action description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action_keybinding" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1036">the action keybinding</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action_func" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1037">the callback of the action, to be executed with do_action</doc>
+            <type name="ActionFunc" c:type="CallyActionFunc"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_action_full"
+              c:identifier="cally_actor_add_action_full"
+              shadows="add_action"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-actor.c"
+             line="1060">Adds a new action to be accessed with the #AtkAction interface.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.c"
+               line="1072">added action id, or -1 if failure</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cally_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1062">a #CallyActor</doc>
+            <type name="Actor" c:type="CallyActor*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1063">the action name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action_description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1064">the action description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action_keybinding" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1065">the action keybinding</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="4"
+                     destroy="5">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1066">the callback of the action</doc>
+            <type name="ActionCallback" c:type="CallyActionCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1067">data to be passed to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1068">function to be called when removing the action</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action"
+              c:identifier="cally_actor_remove_action"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-actor.c"
+             line="1106">Removes a action, using the @action_id returned by cally_actor_add_action()</doc>
+        <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                         line="151"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.c"
+               line="1113">%TRUE if the operation was successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cally_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1108">a #CallyActor</doc>
+            <type name="Actor" c:type="CallyActor*"/>
+          </instance-parameter>
+          <parameter name="action_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1109">the action id</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action_by_name"
+              c:identifier="cally_actor_remove_action_by_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-actor.c"
+             line="1139">Removes an action, using the @action_name used when the action was added
+with cally_actor_add_action()</doc>
+        <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                         line="155"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-actor.c"
+               line="1147">%TRUE if the operation was successful, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cally_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1141">a #CallyActor</doc>
+            <type name="Actor" c:type="CallyActor*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-actor.c"
+                 line="1142">the name of the action to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Atk.GObjectAccessible" c:type="AtkGObjectAccessible"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ActorPrivate" c:type="CallyActorPrivate*"/>
+      </field>
+    </class>
+    <record name="ActorClass"
+            c:type="CallyActorClass"
+            glib:is-gtype-struct-for="Actor"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-actor.h"
+           line="89">The &lt;structname&gt;CallyActorClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="127"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="Atk.GObjectAccessibleClass"
+              c:type="AtkGObjectAccessibleClass"/>
+      </field>
+      <field name="notify_clutter">
+        <callback name="notify_clutter">
+          <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                           line="110"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="GObject.Object" c:type="GObject*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_clutter">
+        <callback name="focus_clutter">
+          <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                           line="113"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Clutter.Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_actor">
+        <callback name="add_actor">
+          <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                           line="116"/>
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Clutter.Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Clutter.Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_actor">
+        <callback name="remove_actor">
+          <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                           line="120"/>
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Clutter.Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Clutter.Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="32">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="ActorPrivate" c:type="CallyActorPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="46"/>
+    </record>
+    <function-macro name="CLONE" c:identifier="CALLY_CLONE" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLONE_CLASS"
+                    c:identifier="CALLY_CLONE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLONE_GET_CLASS"
+                    c:identifier="CALLY_CLONE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Clone"
+           c:symbol-prefix="clone"
+           c:type="CallyClone"
+           version="1.4"
+           parent="Actor"
+           glib:type-name="CallyClone"
+           glib:get-type="cally_clone_get_type"
+           glib:type-struct="CloneClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-clone.h"
+           line="44">The &lt;structname&gt;CallyClone&lt;/structname&gt; structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="75"/>
+      <implements name="Atk.Action"/>
+      <implements name="Atk.Component"/>
+      <constructor name="new" c:identifier="cally_clone_new" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-clone.c"
+             line="98">Creates a new #CallyClone for the given @actor. @actor must be a
+#ClutterClone.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-clone.c"
+               line="105">the newly created #AtkObject</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-clone.c"
+                 line="100">a #ClutterActor</doc>
+            <type name="Clutter.Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <field name="parent" readable="0" private="1">
+        <type name="Actor" c:type="CallyActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ClonePrivate" c:type="CallyClonePrivate*"/>
+      </field>
+    </class>
+    <record name="CloneClass"
+            c:type="CallyCloneClass"
+            glib:is-gtype-struct-for="Clone"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-clone.h"
+           line="60">The &lt;structname&gt;CallyCloneClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="CallyActorClass"/>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="ClonePrivate" c:type="CallyClonePrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="42"/>
+    </record>
+    <function-macro name="IS_ACTOR"
+                    c:identifier="CALLY_IS_ACTOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ACTOR_CLASS"
+                    c:identifier="CALLY_IS_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-actor.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CLONE"
+                    c:identifier="CALLY_IS_CLONE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CLONE_CLASS"
+                    c:identifier="CALLY_IS_CLONE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-clone.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ROOT"
+                    c:identifier="CALLY_IS_ROOT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ROOT_CLASS"
+                    c:identifier="CALLY_IS_ROOT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE"
+                    c:identifier="CALLY_IS_STAGE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE_CLASS"
+                    c:identifier="CALLY_IS_STAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT"
+                    c:identifier="CALLY_IS_TEXT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT_CLASS"
+                    c:identifier="CALLY_IS_TEXT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_UTIL"
+                    c:identifier="CALLY_IS_UTIL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_UTIL_CLASS"
+                    c:identifier="CALLY_IS_UTIL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROOT" c:identifier="CALLY_ROOT" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROOT_CLASS"
+                    c:identifier="CALLY_ROOT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROOT_GET_CLASS"
+                    c:identifier="CALLY_ROOT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Root"
+           c:symbol-prefix="root"
+           c:type="CallyRoot"
+           version="1.4"
+           parent="Atk.GObjectAccessible"
+           glib:type-name="CallyRoot"
+           glib:get-type="cally_root_get_type"
+           glib:type-struct="RootClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-root.h"
+           line="44">The &lt;structname&gt;CallyRoot&lt;/structname&gt; structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="75"/>
+      <constructor name="new" c:identifier="cally_root_new" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-root.c"
+             line="110">Creates a new #CallyRoot object.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-root.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-root.c"
+               line="115">the newly created #AtkObject</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+      </constructor>
+      <field name="parent" readable="0" private="1">
+        <type name="Atk.GObjectAccessible" c:type="AtkGObjectAccessible"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="RootPrivate" c:type="CallyRootPrivate*"/>
+      </field>
+    </class>
+    <record name="RootClass"
+            c:type="CallyRootClass"
+            glib:is-gtype-struct-for="Root"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-root.h"
+           line="60">The &lt;structname&gt;CallyRootClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="Atk.GObjectAccessibleClass"
+              c:type="AtkGObjectAccessibleClass"/>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="16">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="RootPrivate" c:type="CallyRootPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-root.h"
+                       line="42"/>
+    </record>
+    <function-macro name="STAGE" c:identifier="CALLY_STAGE" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_CLASS"
+                    c:identifier="CALLY_STAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_GET_CLASS"
+                    c:identifier="CALLY_STAGE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Stage"
+           c:symbol-prefix="stage"
+           c:type="CallyStage"
+           version="1.4"
+           parent="Actor"
+           glib:type-name="CallyStage"
+           glib:get-type="cally_stage_get_type"
+           glib:type-struct="StageClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-stage.h"
+           line="44">The &lt;structname&gt;CallyStage&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="75"/>
+      <implements name="Atk.Action"/>
+      <implements name="Atk.Component"/>
+      <implements name="Atk.Window"/>
+      <constructor name="new" c:identifier="cally_stage_new" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-stage.c"
+             line="91">Creates a new #CallyStage for the given @actor. @actor should be a
+#ClutterStage.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-stage.c"
+               line="98">the newly created #AtkObject</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-stage.c"
+                 line="93">a #ClutterActor</doc>
+            <type name="Clutter.Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <field name="parent" readable="0" private="1">
+        <type name="Actor" c:type="CallyActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="StagePrivate" c:type="CallyStagePrivate*"/>
+      </field>
+    </class>
+    <record name="StageClass"
+            c:type="CallyStageClass"
+            glib:is-gtype-struct-for="Stage"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-stage.h"
+           line="60">The &lt;structname&gt;CallyStageClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="CallyActorClass"/>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="16">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="StagePrivate" c:type="CallyStagePrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-stage.h"
+                       line="42"/>
+    </record>
+    <function-macro name="TEXT" c:identifier="CALLY_TEXT" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_CLASS"
+                    c:identifier="CALLY_TEXT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_GET_CLASS"
+                    c:identifier="CALLY_TEXT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Text"
+           c:symbol-prefix="text"
+           c:type="CallyText"
+           version="1.4"
+           parent="Actor"
+           glib:type-name="CallyText"
+           glib:get-type="cally_text_get_type"
+           glib:type-struct="TextClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-text.h"
+           line="44">The &lt;structname&gt;CallyText&lt;/structname&gt; structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="75"/>
+      <implements name="Atk.Action"/>
+      <implements name="Atk.Component"/>
+      <implements name="Atk.EditableText"/>
+      <implements name="Atk.Text"/>
+      <constructor name="new" c:identifier="cally_text_new" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally-text.c"
+             line="255">Creates a new #CallyText for the given @actor. @actor must be a
+#ClutterText.</doc>
+        <source-position filename="../clutter/clutter/cally/cally-text.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/cally/cally-text.c"
+               line="262">the newly created #AtkObject</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/cally/cally-text.c"
+                 line="257">a #ClutterActor</doc>
+            <type name="Clutter.Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <field name="parent" readable="0" private="1">
+        <type name="Actor" c:type="CallyActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="TextPrivate" c:type="CallyTextPrivate*"/>
+      </field>
+    </class>
+    <record name="TextClass"
+            c:type="CallyTextClass"
+            glib:is-gtype-struct-for="Text"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-text.h"
+           line="60">The &lt;structname&gt;CallyTextClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="CallyActorClass"/>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="TextPrivate" c:type="CallyTextPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-text.h"
+                       line="42"/>
+    </record>
+    <function-macro name="UTIL" c:identifier="CALLY_UTIL" introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="UTIL_CLASS"
+                    c:identifier="CALLY_UTIL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="UTIL_GET_CLASS"
+                    c:identifier="CALLY_UTIL_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Util"
+           c:symbol-prefix="util"
+           c:type="CallyUtil"
+           version="1.4"
+           parent="Atk.Util"
+           glib:type-name="CallyUtil"
+           glib:get-type="cally_util_get_type"
+           glib:type-struct="UtilClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-util.h"
+           line="44">The &lt;structname&gt;CallyUtil&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="75"/>
+      <field name="parent" readable="0" private="1">
+        <type name="Atk.Util" c:type="AtkUtil"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="UtilPrivate" c:type="CallyUtilPrivate*"/>
+      </field>
+    </class>
+    <record name="UtilClass"
+            c:type="CallyUtilClass"
+            glib:is-gtype-struct-for="Util"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-util.h"
+           line="60">The &lt;structname&gt;CallyUtilClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="Atk.UtilClass" c:type="AtkUtilClass"/>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="UtilPrivate" c:type="CallyUtilPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/cally/cally-util.h"
+                       line="42"/>
+    </record>
+    <function name="accessibility_init"
+              c:identifier="cally_accessibility_init"
+              version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally.c"
+           line="57">Initializes the accessibility support.</doc>
+      <source-position filename="../clutter/clutter/cally/cally-main.h"
+                       line="40"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally.c"
+             line="62">%TRUE if accessibility support has been correctly
+initialized.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <docsection name="cally">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally.c"
+           line="23">Cally initialization methods.</doc>
+    </docsection>
+    <docsection name="cally-actor">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-actor.c"
+           line="25">#CallyActor implements the required ATK interfaces of #ClutterActor
+exposing the common elements on each actor (position, extents, etc).</doc>
+    </docsection>
+    <docsection name="cally-clone">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-clone.c"
+           line="23">#CallyClone implements the required ATK interfaces of #ClutterClone
+
+In particular it sets a proper role for the clone, as just a image,
+as it is the sanest and simplest approach.</doc>
+    </docsection>
+    <docsection name="cally-root">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-root.c"
+           line="23">#CallyRoot is the root object of the accessibility tree-like
+hierarchy, exposing the application level.
+
+Somewhat equivalent to #GailTopLevel. We consider that this class
+expose the a11y information of the #ClutterStageManager, as the
+children of this object are the different ClutterStage managed (so
+the #GObject used in the atk_object_initialize() is the
+#ClutterStageManager).</doc>
+    </docsection>
+    <docsection name="cally-stage">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-stage.c"
+           line="23">#CallyStage implements the required ATK interfaces for #ClutterStage
+
+Some implementation details: at this moment #CallyStage is used as
+the most similar Window object in this toolkit (ie: emitting window
+related signals), although the real purpose of #ClutterStage is
+being a canvas. Anyway, this is required for applications using
+just clutter, or directly #ClutterStage</doc>
+    </docsection>
+    <docsection name="cally-text">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-text.c"
+           line="31">#CallyText implements the required ATK interfaces of
+#ClutterText, #AtkText and #AtkEditableText</doc>
+    </docsection>
+    <docsection name="cally-util">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally-util.c"
+           line="26">#CallyUtil implements #AtkUtil abstract methods. Although it
+includes the name "Util" it is in fact one of the most important
+interfaces to be implemented in any ATK toolkit implementation.
+
+For instance, it defines atk_get_root(), the method that returns
+the root object in the hierarchy. Without it, you don't have
+available any accessible object.</doc>
+    </docsection>
+    <function name="get_cally_initialized"
+              c:identifier="cally_get_cally_initialized"
+              version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/cally/cally.c"
+           line="84">Returns if the accessibility support using cally is enabled.</doc>
+      <source-position filename="../clutter/clutter/cally/cally-main.h"
+                       line="38"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/cally/cally.c"
+             line="89">%TRUE if accessibility support has been correctly
+initialized.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/Clutter-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/Clutter-7.gir
new file mode 100644
index 00000000..b4045ac2
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/Clutter-7.gir
@@ -0,0 +1,73160 @@
+<?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="Atk" version="1.0"/>
+  <include name="Cogl" version="7"/>
+  <include name="CoglPango" version="7"/>
+  <include name="GL" version="1.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Json" version="1.0"/>
+  <include name="cairo" version="1.0"/>
+  <package name="mutter-clutter-7"/>
+  <c:include name="clutter/clutter.h"/>
+  <namespace name="Clutter"
+             version="7"
+             shared-library="libmutter-clutter-7.so.0"
+             c:identifier-prefixes="Clutter"
+             c:symbol-prefixes="clutter">
+    <alias name="Matrix" c:type="ClutterMatrix">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="105">A type representing a 4x4 matrix.
+
+It is identicaly to #CoglMatrix.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="90"/>
+      <type name="Cogl.Matrix" c:type="CoglMatrix"/>
+    </alias>
+    <function-macro name="ACTOR"
+                    c:identifier="CLUTTER_ACTOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="48"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_BOX_INIT"
+                    c:identifier="CLUTTER_ACTOR_BOX_INIT"
+                    version="1.10"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="146">A simple macro for initializing a #ClutterActorBox when declaring
+it, e.g.:
+
+|[
+  ClutterActorBox box = CLUTTER_ACTOR_BOX_INIT (0, 0, 400, 600);
+]|</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="162"/>
+      <parameters>
+        <parameter name="x_1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="148">the X coordinate of the top left corner</doc>
+        </parameter>
+        <parameter name="y_1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="149">the Y coordinate of the top left corner</doc>
+        </parameter>
+        <parameter name="x_2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="150">the X coordinate of the bottom right corner</doc>
+        </parameter>
+        <parameter name="y_2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="151">the Y coordinate of the bottom right corner</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_CLASS"
+                    c:identifier="CLUTTER_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="49"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_GET_CLASS"
+                    c:identifier="CLUTTER_ACTOR_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="52"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_IS_MAPPED"
+                    c:identifier="CLUTTER_ACTOR_IS_MAPPED"
+                    version="0.2"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.c"
+           line="530">Evaluates to %TRUE if the %CLUTTER_ACTOR_MAPPED flag is set.
+
+The mapped state is set when the actor is visible and all its parents up
+to a top-level (e.g. a #ClutterStage) are visible, realized, and mapped.
+
+This check can be used to see if an actor is going to be painted, as only
+actors with the %CLUTTER_ACTOR_MAPPED flag set are going to be painted.
+
+The %CLUTTER_ACTOR_MAPPED flag is managed by Clutter itself, and it should
+not be checked directly; instead, the recommended usage is to connect a
+handler on the #GObject::notify signal for the #ClutterActor:mapped
+property of #ClutterActor, and check the presence of
+the %CLUTTER_ACTOR_MAPPED flag on state changes.
+
+It is also important to note that Clutter may delay the changes of
+the %CLUTTER_ACTOR_MAPPED flag on top-levels due to backend-specific
+limitations, or during the reparenting of an actor, to optimize
+unnecessary (and potentially expensive) state changes.</doc>
+      <doc-deprecated xml:space="preserve">Use clutter_actor_is_mapped() or the #ClutterActor:mapped
+  property instead of this macro.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="84"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="532">a #ClutterActor</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_IS_REACTIVE"
+                    c:identifier="CLUTTER_ACTOR_IS_REACTIVE"
+                    version="0.6"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.c"
+           line="601">Evaluates to %TRUE if the %CLUTTER_ACTOR_REACTIVE flag is set.
+
+Only reactive actors will receive event-related signals.</doc>
+      <doc-deprecated xml:space="preserve">Use clutter_actor_get_reactive() or the
+  #ClutterActor:reactive property instead of this macro.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="96"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="603">a #ClutterActor</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_IS_REALIZED"
+                    c:identifier="CLUTTER_ACTOR_IS_REALIZED"
+                    version="0.2"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.c"
+           line="559">Evaluates to %TRUE if the %CLUTTER_ACTOR_REALIZED flag is set.
+
+The realized state has an actor-dependant interpretation. If an
+actor wants to delay allocating resources until it is attached to a
+stage, it may use the realize state to do so. However it is
+perfectly acceptable for an actor to allocate Cogl resources before
+being realized because there is only one drawing context used by Clutter
+so any resources will work on any stage.  If an actor is mapped it
+must also be realized, but an actor can be realized and unmapped
+(this is so hiding an actor temporarily doesn't do an expensive
+unrealize/realize).
+
+To be realized an actor must be inside a stage, and all its parents
+must be realized.</doc>
+      <doc-deprecated xml:space="preserve">Use clutter_actor_is_realized() or the #ClutterActor:realized
+  property instead of this macro.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="88"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="561">a #ClutterActor</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_IS_VISIBLE"
+                    c:identifier="CLUTTER_ACTOR_IS_VISIBLE"
+                    version="0.2"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.c"
+           line="584">Evaluates to %TRUE if the actor has been shown, %FALSE if it's hidden.
+Equivalent to the ClutterActor::visible object property.
+
+Note that an actor is only painted onscreen if it's mapped, which
+means it's visible, and all its parents are visible, and one of the
+parents is a toplevel stage; see also %CLUTTER_ACTOR_IS_MAPPED.</doc>
+      <doc-deprecated xml:space="preserve">Use clutter_actor_is_visible() or the #ClutterActor:visible
+  property instead of this macro.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="92"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="586">a #ClutterActor</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_NODE"
+                    c:identifier="CLUTTER_ACTOR_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="147"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_SET_FLAGS"
+                    c:identifier="CLUTTER_ACTOR_SET_FLAGS"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="54">Sets the given flags on a #ClutterActor</doc>
+      <doc-deprecated xml:space="preserve">Changing flags directly is heavily discouraged in
+  newly written code. #ClutterActor will take care of setting the
+  internal state.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="65"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="56">a #ClutterActor</doc>
+        </parameter>
+        <parameter name="f">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="57">the #ClutterActorFlags to set</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ACTOR_UNSET_FLAGS"
+                    c:identifier="CLUTTER_ACTOR_UNSET_FLAGS"
+                    introspectable="0"
+                    deprecated="1"
+                    deprecated-version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="69">Unsets the given flags on a #ClutterActor</doc>
+      <doc-deprecated xml:space="preserve">Changing flags directly is heavily discouraged in
+  newly written code. #ClutterActor will take care of unsetting the
+  internal state.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="80"/>
+      <parameters>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="71">a #ClutterActor</doc>
+        </parameter>
+        <parameter name="f">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="72">the #ClutterActorFlags to unset</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ALIGN_CONSTRAINT"
+                    c:identifier="CLUTTER_ALIGN_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Action"
+           c:symbol-prefix="action"
+           c:type="ClutterAction"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterAction"
+           glib:get-type="clutter_action_get_type"
+           glib:type-struct="ActionClass">
+      <source-position filename="../clutter/clutter/clutter-action.h"
+                       line="62"/>
+      <field name="parent_instance">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="ActionClass"
+            c:type="ClutterActionClass"
+            glib:is-gtype-struct-for="Action"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-action.h"
+           line="42">The ClutterActionClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-action.h"
+                       line="62"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="_clutter_action1" introspectable="0">
+        <callback name="_clutter_action1">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="54"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action2" introspectable="0">
+        <callback name="_clutter_action2">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="55"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action3" introspectable="0">
+        <callback name="_clutter_action3">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="56"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action4" introspectable="0">
+        <callback name="_clutter_action4">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="57"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action5" introspectable="0">
+        <callback name="_clutter_action5">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="58"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action6" introspectable="0">
+        <callback name="_clutter_action6">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="59"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action7" introspectable="0">
+        <callback name="_clutter_action7">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="60"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action8" introspectable="0">
+        <callback name="_clutter_action8">
+          <source-position filename="../clutter/clutter/clutter-action.h"
+                           line="61"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="Actor"
+           c:symbol-prefix="actor"
+           c:type="ClutterActor"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterActor"
+           glib:get-type="clutter_actor_get_type"
+           glib:type-struct="ActorClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="121">Base class for actors.</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="309"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_actor_new" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8090">Creates a new #ClutterActor.
+
+A newly created actor has a floating reference, which will be sunk
+when it is added to another actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="336"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="8098">the newly created #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="allocate" invoker="allocate" version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9502">Assigns the size of a #ClutterActor from the given @box.
+
+This function should only be called on the children of an actor when
+overriding the #ClutterActorClass.allocate() virtual function.
+
+This function will adjust the stored allocation to take into account
+the alignment flags set in the #ClutterActor:x-align and
+#ClutterActor:y-align properties, as well as the margin values set in
+the #ClutterActor:margin-top, #ClutterActor:margin-right,
+#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties.
+
+This function will respect the easing state of the #ClutterActor and
+interpolate between the current allocation and the new one if the
+easing state duration is a positive value.
+
+Actors can know from their allocation box whether they have moved
+with respect to their parent actor. The @flags parameter describes
+additional information about the allocation, for instance whether
+the parent has moved with respect to the stage, for example because
+a grandparent's origin has moved.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="255"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9504">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9505">new allocation of the actor, in parent-relative coordinates</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="apply_transform">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="259"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <type name="Matrix" c:type="ClutterMatrix*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="button_press_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="265"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="button_release_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="267"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="calculate_resource_scale">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="303"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="phase" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="captured_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="281"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="destroy" invoker="destroy">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8108">Destroys an actor.  When an actor is destroyed, it will break any
+references it holds to other objects.  If the actor is inside a
+container, the actor will be removed.
+
+When you destroy a container, its children will be destroyed as well.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="238"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8110">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="enter_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="277"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="263"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_accessible" invoker="get_accessible">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="5719">Returns the accessible object that describes the actor to an
+assistive technology.
+
+If no class-specific #AtkObject implementation is available for the
+actor instance in question, it will inherit an #AtkObject
+implementation from the first ancestor class for which such an
+implementation is defined.
+
+The documentation of the &lt;ulink
+url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
+library contains more information about accessible objects and
+their uses.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="289"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="5736">the #AtkObject associated with @actor</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="5721">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_paint_volume">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="291"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="volume" transfer-ownership="none">
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_height"
+                      invoker="get_preferred_height"
+                      version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9108">Computes the requested minimum and natural heights for an actor,
+or if they are already computed, returns the cached values.
+
+An actor may not get its request - depending on the layout
+manager that's in effect.
+
+A request should not incorporate the actor's scale or translation;
+those transformations do not affect layout, only rendering.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="251"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9110">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9111">available width to assume in computing desired height,
+  or a negative value to indicate that no width is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9113">return location for minimum height,
+  or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9115">return location for natural
+  height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_width"
+                      invoker="get_preferred_width"
+                      version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8942">Computes the requested minimum and natural widths for an actor,
+optionally depending on the specified height, or if they are
+already computed, returns the cached values.
+
+An actor may not get its request - depending on the layout
+manager that's in effect.
+
+A request should not incorporate the actor's scaleor translation;
+those transformations do not affect layout, only rendering.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="247"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8944">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8945">available height when computing the preferred width,
+  or a negative value to indicate that no height is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8947">return location for minimum width,
+  or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8949">return location for the natural
+  width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="has_accessible" invoker="has_accessible">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="301"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="has_overlaps" invoker="has_overlaps" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16433">Asks the actor's implementation whether it may contain overlapping
+primitives.
+
+For example; Clutter may use this to determine whether the painting
+should be redirected to an offscreen buffer to correctly implement
+the opacity property.
+
+Custom actors can override the default response by implementing the
+#ClutterActorClass.has_overlaps() virtual function. See
+clutter_actor_set_offscreen_redirect() for more information.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="294"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16448">%TRUE if the actor may have overlapping primitives, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16435">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide" invoker="hide">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1949">Flags an actor to be hidden. A hidden actor will not be
+rendered on the stage.
+
+Actors are visible by default.
+
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent property will be set to %FALSE
+as a side-effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="227"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1951">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_all">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="228"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="key_focus_in">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="283"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="key_focus_out">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="284"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="key_press_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="271"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="key_release_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="273"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="leave_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="279"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="map" invoker="map" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1650">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
+and realizes its children if they are visible. Does nothing if the
+actor is not visible.
+
+Calling this function is strongly discouraged: the default
+implementation of #ClutterActorClass.map() will map all the children
+of an actor when mapping its parent.
+
+When overriding map, it is mandatory to chain up to the parent
+implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="231"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1652">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="motion_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="275"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="MotionEvent" c:type="ClutterMotionEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint" invoker="paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="3730">Renders the actor to display.
+
+This function should not be called directly by applications.
+Call clutter_actor_queue_redraw() to queue paints, instead.
+
+This function is context-aware, and will either cause a
+regular paint or a pick paint.
+
+This function will emit the #ClutterActor::paint signal or
+the #ClutterActor::pick signal, depending on the context.
+
+This function does not paint the actor if the actor is set to 0,
+unless it is performing a pick paint.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="233"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="3732">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint_node">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="296"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="root" transfer-ownership="none">
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="parent_set">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="235"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="old_parent" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="pick" invoker="pick">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4037">Asks @actor to perform a pick.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="239"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4039">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="queue_redraw">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="242"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="leaf_that_queued" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="paint_volume" transfer-ownership="none">
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="queue_relayout"
+                      invoker="queue_relayout"
+                      version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8551">Indicates that the actor's size request or other layout-affecting
+properties may have changed. This function is used inside #ClutterActor
+subclass implementations, not by applications directly.
+
+Queueing a new layout automatically queues a redraw as well.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="286"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8553">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="realize"
+                      invoker="realize"
+                      deprecated="1"
+                      deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2011">Realization informs the actor that it is attached to a stage. It
+can use this to allocate resources if it wanted to delay allocation
+until it would be rendered. However it is perfectly acceptable for
+an actor to create resources before being realized because Clutter
+only ever has a single rendering context so that actor is free to
+be moved from one stage to another.
+
+This function does nothing if the actor is already realized.
+
+Because a realized actor must have realized parent actors, calling
+clutter_actor_realize() will also realize all parents of the actor.
+
+This function does not realize child actors, except in the special
+case that realizing the stage, when the stage is visible, will
+suddenly map (and thus realize) the children of the stage.</doc>
+        <doc-deprecated xml:space="preserve">Actors are automatically realized, and nothing
+  requires explicit realization.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="229"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2013">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="resource_scale_changed">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="302"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="scroll_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="269"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="ScrollEvent" c:type="ClutterScrollEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show" invoker="show">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1854">Flags an actor to be displayed. An actor that isn't shown will not
+be rendered on the stage.
+
+Actors are visible by default.
+
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent will be set to %TRUE as a side
+effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="226"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1856">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="touch_event">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="299"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="TouchEvent" c:type="ClutterTouchEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unmap" invoker="unmap" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1762">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
+unmaps its children if they were mapped.
+
+Calling this function is not encouraged: the default #ClutterActor
+implementation of #ClutterActorClass.unmap() will also unmap any
+eventual children by default when their parent is unmapped.
+
+When overriding #ClutterActorClass.unmap(), it is mandatory to
+chain up to the parent implementation.
+
+It is important to note that the implementation of the
+#ClutterActorClass.unmap() virtual function may be called after
+the #ClutterActorClass.destroy() or the #GObjectClass.dispose()
+implementation, but it is guaranteed to be called before the
+#GObjectClass.finalize() implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="232"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1764">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unrealize"
+                      invoker="unrealize"
+                      deprecated="1"
+                      deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2120">Unrealization informs the actor that it may be being destroyed or
+moved to another stage. The actor may want to destroy any
+underlying graphics resources at this point. However it is
+perfectly acceptable for it to retain the resources until the actor
+is destroyed because Clutter only ever uses a single rendering
+context and all of the graphics resources are valid on any stage.
+
+Because mapped actors must be realized, actors may not be
+unrealized if they are mapped. This function hides the actor to be
+sure it isn't mapped, an application-visible side effect that you
+may not be expecting.
+
+This function should not be called by application code.
+
+This function should not really be in the public API, because
+there isn't a good reason to call it. ClutterActor will already
+unrealize things for you when it's important to do so.
+
+If you were using clutter_actor_unrealize() in a dispose
+implementation, then don't, just chain up to ClutterActor's
+dispose.
+
+If you were using clutter_actor_unrealize() to implement
+unrealizing children of your container, then don't, ClutterActor
+will already take care of that.</doc>
+        <doc-deprecated xml:space="preserve">Actors are automatically unrealized, and nothing
+  requires explicit realization.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="230"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2122">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_action"
+              c:identifier="clutter_actor_add_action"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15071">Adds @action to the list of actions applied to @self
+
+A #ClutterAction can only belong to one actor at a time
+
+The #ClutterActor will hold a reference on @action until either
+clutter_actor_remove_action() or clutter_actor_clear_actions()
+is called</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="66"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15073">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15074">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_action_with_name"
+              c:identifier="clutter_actor_add_action_with_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15108">A convenience function for setting the name of a #ClutterAction
+while adding it to the list of actions applied to @self
+
+This function is the logical equivalent of:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name);
+  clutter_actor_add_action (self, action);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="69"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15110">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15111">the name to set on the action</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15112">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_child"
+              c:identifier="clutter_actor_add_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12072">Adds @child to the children of @self.
+
+This function will acquire a reference on @child that will only
+be released when calling clutter_actor_remove_child().
+
+This function will take into consideration the #ClutterActor:depth
+of @child, and will keep the list of children sorted.
+
+This function will emit the #ClutterContainer::actor-added signal
+on @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="681"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12074">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12075">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_constraint"
+              c:identifier="clutter_actor_add_constraint"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15276">Adds @constraint to the list of #ClutterConstraint&lt;!-- --&gt;s applied
+to @self
+
+The #ClutterActor will hold a reference on the @constraint until
+either clutter_actor_remove_constraint() or
+clutter_actor_clear_constraints() is called.</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="112"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15278">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15279">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_constraint_with_name"
+              c:identifier="clutter_actor_add_constraint_with_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15314">A convenience function for setting the name of a #ClutterConstraint
+while adding it to the list of constraints applied to @self
+
+This function is the logical equivalent of:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name);
+  clutter_actor_add_constraint (self, constraint);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="115"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15316">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15317">the name to set on the constraint</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15318">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_effect"
+              c:identifier="clutter_actor_add_effect"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15537">Adds @effect to the list of #ClutterEffect&lt;!-- --&gt;s applied to @self
+
+The #ClutterActor will hold a reference on the @effect until either
+clutter_actor_remove_effect() or clutter_actor_clear_effects() is
+called.</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="110"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15539">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15540">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_effect_with_name"
+              c:identifier="clutter_actor_add_effect_with_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15564">A convenience function for setting the name of a #ClutterEffect
+while adding it to the list of effectss applied to @self
+
+This function is the logical equivalent of:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name);
+  clutter_actor_add_effect (self, effect);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="113"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15566">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15567">the name to set on the effect</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15568">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_transition"
+              c:identifier="clutter_actor_add_transition"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18127">Adds a @transition to the #ClutterActor's list of animations.
+
+The @name string is a per-actor unique identifier of the @transition: only
+one #ClutterTransition can be associated to the specified @name.
+
+The @transition will be started once added.
+
+This function will take a reference on the @transition.
+
+This function is usually called implicitly when modifying an animatable
+property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="872"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18129">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18130">the name of the transition to add</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18131">the #ClutterTransition to add</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate"
+              c:identifier="clutter_actor_allocate"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9502">Assigns the size of a #ClutterActor from the given @box.
+
+This function should only be called on the children of an actor when
+overriding the #ClutterActorClass.allocate() virtual function.
+
+This function will adjust the stored allocation to take into account
+the alignment flags set in the #ClutterActor:x-align and
+#ClutterActor:y-align properties, as well as the margin values set in
+the #ClutterActor:margin-top, #ClutterActor:margin-right,
+#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties.
+
+This function will respect the easing state of the #ClutterActor and
+interpolate between the current allocation and the new one if the
+easing state duration is a positive value.
+
+Actors can know from their allocation box whether they have moved
+with respect to their parent actor. The @flags parameter describes
+additional information about the allocation, for instance whether
+the parent has moved with respect to the stage, for example because
+a grandparent's origin has moved.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="419"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9504">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9505">new allocation of the actor, in parent-relative coordinates</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_align_fill"
+              c:identifier="clutter_actor_allocate_align_fill"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14120">Allocates @self by taking into consideration the available allocation
+area; an alignment factor on either axis; and whether the actor should
+fill the allocation on either axis.
+
+The @box should contain the available allocation width and height;
+if the x1 and y1 members of #ClutterActorBox are not set to 0, the
+allocation will be offset by their value.
+
+This function takes into consideration the geometry request specified by
+the #ClutterActor:request-mode property, and the text direction.
+
+This function is useful for fluid layout managers using legacy alignment
+flags. Newly written layout managers should use the #ClutterActor:x-align
+and #ClutterActor:y-align properties, instead, and just call
+clutter_actor_allocate() inside their #ClutterActorClass.allocate()
+implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="432"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14122">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14123">a #ClutterActorBox, containing the available width and height</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14124">the horizontal alignment, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14125">the vertical alignment, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="x_fill" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14126">whether the actor should fill horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_fill" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14127">whether the actor should fill vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_available_size"
+              c:identifier="clutter_actor_allocate_available_size"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="13948">Allocates @self taking into account the #ClutterActor's
+preferred size, but limiting it to the maximum available width
+and height provided.
+
+This function will do the right thing when dealing with the
+actor's request mode.
+
+The implementation of this function is equivalent to:
+
+|[&lt;!-- language="C" --&gt;
+  if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
+    {
+      clutter_actor_get_preferred_width (self, available_height,
+                                         &amp;min_width,
+                                         &amp;natural_width);
+      width = CLAMP (natural_width, min_width, available_width);
+
+      clutter_actor_get_preferred_height (self, width,
+                                          &amp;min_height,
+                                          &amp;natural_height);
+      height = CLAMP (natural_height, min_height, available_height);
+    }
+  else if (request_mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT)
+    {
+      clutter_actor_get_preferred_height (self, available_width,
+                                          &amp;min_height,
+                                          &amp;natural_height);
+      height = CLAMP (natural_height, min_height, available_height);
+
+      clutter_actor_get_preferred_width (self, height,
+                                         &amp;min_width,
+                                         &amp;natural_width);
+      width = CLAMP (natural_width, min_width, available_width);
+    }
+  else if (request_mode == CLUTTER_REQUEST_CONTENT_SIZE)
+    {
+      clutter_content_get_preferred_size (content, &amp;natural_width, &amp;natural_height);
+
+      width = CLAMP (natural_width, 0, available_width);
+      height = CLAMP (natural_height, 0, available_height);
+    }
+
+  box.x1 = x; box.y1 = y;
+  box.x2 = box.x1 + available_width;
+  box.y2 = box.y1 + available_height;
+  clutter_actor_allocate (self, &amp;box);
+]|
+
+This function can be used by fluid layout managers to allocate
+an actor's preferred size without making it bigger than the area
+available for the container.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="426"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="13950">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13951">the actor's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13952">the actor's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="available_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13953">the maximum available width, or -1 to use the
+  actor's natural width</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="available_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13955">the maximum available height, or -1 to use the
+  actor's natural height</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_preferred_size"
+              c:identifier="clutter_actor_allocate_preferred_size"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14076">Allocates the natural size of @self.
+
+This function is a utility call for #ClutterActor implementations
+that allocates the actor's preferred natural size. It can be used
+by fixed layout managers (like #ClutterGroup or so called
+'composite actors') inside the ClutterActor::allocate
+implementation to give each child exactly how much space it
+requires, regardless of the size of the parent.
+
+This function is not meant to be used by applications. It is also
+not meant to be used outside the implementation of the
+#ClutterActorClass.allocate virtual function.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="422"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14078">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14079">the actor's X coordinate</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14080">the actor's Y coordinate</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply_relative_transform_to_point"
+              c:identifier="clutter_actor_apply_relative_transform_to_point"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2818">Transforms @point in coordinates relative to the actor into
+ancestor-relative coordinates using the relevant transform
+stack (i.e. scale, rotation, etc).
+
+If @ancestor is %NULL the ancestor will be the #ClutterStage. In
+this case, the coordinates returned will be the coordinates on
+the stage before the projection is applied. This is different from
+the behaviour of clutter_actor_apply_transform_to_point().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="843"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2820">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="ancestor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2821">A #ClutterActor ancestor, or %NULL to use the
+  default #ClutterStage</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2823">A point as #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="const graphene_point3d_t*"/>
+          </parameter>
+          <parameter name="vertex"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2824">The translated #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="graphene_point3d_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply_transform_to_point"
+              c:identifier="clutter_actor_apply_transform_to_point"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2910">Transforms @point in coordinates relative to the actor
+into screen-relative coordinates with the current actor
+transformation (i.e. scale, rotation, etc)</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="839"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2912">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2913">A point as #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="const graphene_point3d_t*"/>
+          </parameter>
+          <parameter name="vertex"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2914">The translated #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="graphene_point3d_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bind_model"
+              c:identifier="clutter_actor_bind_model"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19669">Binds a #GListModel to a #ClutterActor.
+
+If the #ClutterActor was already bound to a #GListModel, the previous
+binding is destroyed.
+
+The existing children of #ClutterActor are destroyed when setting a
+model, and new children are created and added, representing the contents
+of the @model. The #ClutterActor is updated whenever the @model changes.
+If @model is %NULL, the #ClutterActor is left empty.
+
+When a #ClutterActor is bound to a model, adding and removing children
+directly is undefined behaviour.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="915"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19671">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="model"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19672">a #GListModel</doc>
+            <type name="Gio.ListModel" c:type="GListModel*"/>
+          </parameter>
+          <parameter name="create_child_func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19673">a function that creates #ClutterActor instances
+  from the contents of the @model</doc>
+            <type name="ActorCreateChildFunc"
+                  c:type="ClutterActorCreateChildFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19675">user data passed to @create_child_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19676">function called when unsetting the @model</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bind_model_with_properties"
+              c:identifier="clutter_actor_bind_model_with_properties"
+              version="1.24"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19786">Binds a #GListModel to a #ClutterActor.
+
+Unlike clutter_actor_bind_model(), this function automatically creates
+a child #ClutterActor of type @child_type, and binds properties on the
+items inside the @model to the corresponding properties on the child,
+for instance:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_actor_bind_model_with_properties (actor, model,
+                                            MY_TYPE_CHILD_VIEW,
+                                            "label", "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE,
+                                            "icon", "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE,
+                                            "selected", "selected", G_BINDING_BIDIRECTIONAL,
+                                            "active", "active", G_BINDING_BIDIRECTIONAL,
+                                            NULL);
+]|
+
+is the equivalent of calling clutter_actor_bind_model() with a
+#ClutterActorCreateChildFunc of:
+
+|[&lt;!-- language="C" --&gt;
+  ClutterActor *res = g_object_new (MY_TYPE_CHILD_VIEW, NULL);
+
+  g_object_bind_property (item, "label", res, "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
+  g_object_bind_property (item, "icon", res, "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
+  g_object_bind_property (item, "selected", res, "selected", G_BINDING_BIDIRECTIONAL);
+  g_object_bind_property (item, "active", res, "active", G_BINDING_BIDIRECTIONAL);
+
+  return res;
+]|
+
+If the #ClutterActor was already bound to a #GListModel, the previous
+binding is destroyed.
+
+When a #ClutterActor is bound to a model, adding and removing children
+directly is undefined behaviour.
+
+See also: clutter_actor_bind_model()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="921"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19788">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="model" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19789">a #GListModel</doc>
+            <type name="Gio.ListModel" c:type="GListModel*"/>
+          </parameter>
+          <parameter name="child_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19790">the type of #ClutterActor to use when creating
+  children mapping to items inside the @model</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="first_model_property" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19792">the first property of @model to bind</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19793">tuples of property names on the @model, on the child, and the
+  #GBindingFlags used to bind them, terminated by %NULL</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_actions"
+              c:identifier="clutter_actor_clear_actions"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15257">Clears the list of actions applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="84"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15259">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="clear_constraints"
+              c:identifier="clutter_actor_clear_constraints"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15465">Clears the list of constraints applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="130"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15467">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="clear_effects"
+              c:identifier="clutter_actor_clear_effects"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15707">Clears the list of effects applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="128"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15709">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="contains"
+              c:identifier="clutter_actor_contains"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12453">Determines if @descendant is contained inside @self (either as an
+immediate child, or as a deeper descendant). If @self and
+@descendant point to the same actor then it will also return %TRUE.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="724"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="12462">whether @descendent is contained within @self</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12455">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="descendant" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12456">A #ClutterActor, possibly contained in @self</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="continue_paint"
+              c:identifier="clutter_actor_continue_paint"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="3942">Run the next stage of the paint sequence. This function should only
+be called within the implementation of the ‘run’ virtual of a
+#ClutterEffect. It will cause the run method of the next effect to
+be applied, or it will paint the actual actor if the current effect
+is the last effect in the chain.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="362"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="3944">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="continue_pick" c:identifier="clutter_actor_continue_pick">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4116">Run the next stage of the pick sequence. This function should only
+be called within the implementation of the ‘pick’ virtual of a
+#ClutterEffect. It will cause the run method of the next effect to
+be applied, or it will pick the actual actor if the current effect
+is the last effect in the chain.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="368"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4118">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_pango_context"
+              c:identifier="clutter_actor_create_pango_context"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14386">Creates a #PangoContext for the given actor. The #PangoContext
+is already configured using the appropriate font map, resolution
+and font options.
+
+See also clutter_actor_get_pango_context().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="669"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14396">the newly created #PangoContext.
+  Use g_object_unref() on the returned value to deallocate its
+  resources</doc>
+          <type name="Pango.Context" c:type="PangoContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14388">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="create_pango_layout"
+              c:identifier="clutter_actor_create_pango_layout"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14417">Creates a new #PangoLayout from the same #PangoContext used
+by the #ClutterActor. The #PangoLayout is already configured
+with the font map, resolution and font options, and the
+given @text.
+
+If you want to keep around a #PangoLayout created by this
+function you will have to connect to the #ClutterBackend::font-changed
+and #ClutterBackend::resolution-changed signals, and call
+pango_layout_context_changed() in response to them.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="671"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14432">the newly created #PangoLayout.
+  Use g_object_unref() when done</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14419">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="text"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14420">the text to set on the #PangoLayout, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy" c:identifier="clutter_actor_destroy">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8108">Destroys an actor.  When an actor is destroyed, it will break any
+references it holds to other objects.  If the actor is inside a
+container, the actor will be removed.
+
+When you destroy a container, its children will be destroyed as well.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="378"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8110">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="destroy_all_children"
+              c:identifier="clutter_actor_destroy_all_children"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12332">Destroys all children of @self.
+
+This function releases the reference added by inserting a child
+actor in the list of children of @self, and ensures that the
+#ClutterActor::destroy signal is emitted on each child of the
+actor.
+
+By default, #ClutterActor will emit the #ClutterActor::destroy signal
+when its reference count drops to 0; the default handler of the
+#ClutterActor::destroy signal will destroy all the children of an
+actor. This function ensures that all children are destroyed, instead
+of just removed from @self, unlike clutter_actor_remove_all_children()
+which will merely release the reference and remove each child.
+
+Unless you acquired an additional reference on each child of @self
+prior to calling clutter_actor_remove_all_children() and want to reuse
+the actors, you should use clutter_actor_destroy_all_children() in
+order to make sure that children are destroyed and signal handlers
+are disconnected even in cases where circular references prevent this
+from automatically happening through reference counting alone.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="705"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12334">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="event" c:identifier="clutter_actor_event" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12624">This function is used to emit an event on the main stage.
+You should rarely need to use this function, except for
+synthetising events.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="659"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="12634">the return value from the signal emission: %TRUE
+  if the actor handled the event, or %FALSE if the event was
+  not handled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12626">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12627">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+          <parameter name="capture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12628">%TRUE if event in in capture phase, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_abs_allocation_vertices"
+              c:identifier="clutter_actor_get_abs_allocation_vertices"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2997">Calculates the transformed screen coordinates of the four corners of
+the actor; the returned vertices relate to the #ClutterActorBox
+coordinates  as follows:
+
+ - v[0] contains (x1, y1)
+ - v[1] contains (x2, y1)
+ - v[2] contains (x1, y2)
+ - v[3] contains (x2, y2)</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="836"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2999">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="verts"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="3000">Pointer to a location of an array
+  of 4 #graphene_point3d_t where to store the result.</doc>
+            <array zero-terminated="0"
+                   c:type="graphene_point3d_t*"
+                   fixed-size="4">
+              <type name="Graphene.Point3D" c:type="graphene_point3d_t"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_accessible"
+              c:identifier="clutter_actor_get_accessible">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="5719">Returns the accessible object that describes the actor to an
+assistive technology.
+
+If no class-specific #AtkObject implementation is available for the
+actor instance in question, it will inherit an #AtkObject
+implementation from the first ancestor class for which such an
+implementation is defined.
+
+The documentation of the &lt;ulink
+url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
+library contains more information about accessible objects and
+their uses.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="385"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="5736">the #AtkObject associated with @actor</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="5721">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_action"
+              c:identifier="clutter_actor_get_action"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15230">Retrieves the #ClutterAction with the given name in the list
+of actions applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15238">a #ClutterAction for the given
+  name, or %NULL. The returned #ClutterAction is owned by the
+  actor and it should not be unreferenced directly</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15232">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15233">the name of the action to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actions"
+              c:identifier="clutter_actor_get_actions"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15206">Retrieves the list of actions applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="82"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15212">a copy
+  of the list of #ClutterAction&lt;!-- --&gt;s. The contents of the list are
+  owned by the #ClutterActor. Use g_list_free() to free the resources
+  allocated by the returned #GList</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Action"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15208">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_allocation_box"
+              c:identifier="clutter_actor_get_allocation_box"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9272">Gets the layout box an actor has been assigned. The allocation can
+only be assumed valid inside a paint() method; anywhere else, it
+may be out-of-date.
+
+An allocation does not incorporate the actor's scale or translation;
+those transformations do not affect layout, only rendering.
+
+Do not call any of the clutter_actor_get_allocation_*() family
+of functions inside the implementation of the get_preferred_width()
+or get_preferred_height() virtual functions.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="442"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9274">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9275">the function fills this in with the actor's allocation</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_background_color"
+              c:identifier="clutter_actor_get_background_color"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17368">Retrieves the color set using clutter_actor_set_background_color().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="638"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17370">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17371">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_at_index"
+              c:identifier="clutter_actor_get_child_at_index"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16545">Retrieves the actor at the given @index_ inside the list of
+children of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="711"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16553">a pointer to a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16547">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16548">the position in the list of children</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_transform"
+              c:identifier="clutter_actor_get_child_transform"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19433">Retrieves the child transformation matrix set using
+clutter_actor_set_child_transform(); if none is currently set,
+the @transform matrix will be initialized to the identity matrix.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="814"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19435">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="transform"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19436">a #ClutterMatrix</doc>
+            <type name="Matrix" c:type="ClutterMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_children"
+              c:identifier="clutter_actor_get_children"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11598">Retrieves the list of children of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="707"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11604">A newly
+  allocated #GList of #ClutterActor&lt;!-- --&gt;s. Use g_list_free() when
+  done.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Actor"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11600">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_clip"
+              c:identifier="clutter_actor_get_clip"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11553">Gets the clip area for @self, if any is set.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="569"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11555">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="xoff"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11556">return location for the X offset of
+  the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="yoff"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11558">return location for the Y offset of
+  the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11560">return location for the width of
+  the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11562">return location for the height of
+  the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_clip_to_allocation"
+              c:identifier="clutter_actor_get_clip_to_allocation"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15519">Retrieves the value set using clutter_actor_set_clip_to_allocation()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="578"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15525">%TRUE if the #ClutterActor is clipped to its allocation</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15521">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_constraint"
+              c:identifier="clutter_actor_get_constraint"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15438">Retrieves the #ClutterConstraint with the given name in the list
+of constraints applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="127"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15446">a #ClutterConstraint for the given
+  name, or %NULL. The returned #ClutterConstraint is owned by the
+  actor and it should not be unreferenced directly</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15440">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15441">the name of the constraint to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_constraints"
+              c:identifier="clutter_actor_get_constraints"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15414">Retrieves the list of constraints applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="125"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15420">a copy
+  of the list of #ClutterConstraint&lt;!-- --&gt;s. The contents of the list are
+  owned by the #ClutterActor. Use g_list_free() to free the resources
+  allocated by the returned #GList</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Constraint"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15416">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_content"
+              c:identifier="clutter_actor_get_content"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18641">Retrieves the contents of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="612"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18647">a pointer to the #ClutterContent instance,
+  or %NULL if none was set</doc>
+          <type name="Content" c:type="ClutterContent*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18643">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_content_box"
+              c:identifier="clutter_actor_get_content_box"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18723">Retrieves the bounding box for the #ClutterContent of @self.
+
+The bounding box is relative to the actor's allocation.
+
+If no #ClutterContent is set for @self, or if @self has not been
+allocated yet, then the result is undefined.
+
+The content box is guaranteed to be, at most, as big as the allocation
+of the #ClutterActor.
+
+If the #ClutterContent used by the actor has a preferred size, then
+it is possible to modify the content box by using the
+#ClutterActor:content-gravity property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="632"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18725">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18726">the return location for the bounding
+  box for the #ClutterContent</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_content_gravity"
+              c:identifier="clutter_actor_get_content_gravity"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18703">Retrieves the content gravity as set using
+clutter_actor_set_content_gravity().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="617"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18710">the content gravity</doc>
+          <type name="ContentGravity" c:type="ClutterContentGravity"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18705">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_content_repeat"
+              c:identifier="clutter_actor_get_content_repeat"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19297">Retrieves the repeat policy for a #ClutterActor set by
+clutter_actor_set_content_repeat().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="630"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="19304">the content repeat policy</doc>
+          <type name="ContentRepeat" c:type="ClutterContentRepeat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19299">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_content_scaling_filters"
+              c:identifier="clutter_actor_get_content_scaling_filters"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18975">Retrieves the values set using clutter_actor_set_content_scaling_filters().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="623"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18977">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="min_filter"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18978">return location for the minification
+  filter, or %NULL</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter*"/>
+          </parameter>
+          <parameter name="mag_filter"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18980">return location for the magnification
+  filter, or %NULL</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_default_paint_volume"
+              c:identifier="clutter_actor_get_default_paint_volume"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="5896">Retrieves the default paint volume for @self.
+
+This function provides the same #ClutterPaintVolume that would be
+computed by the default implementation inside #ClutterActor of the
+#ClutterActorClass.get_paint_volume() virtual function.
+
+This function should only be used by #ClutterActor subclasses that
+cannot chain up to the parent implementation when computing their
+paint volume.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="646"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="5910">a pointer to the default
+  #ClutterPaintVolume, relative to the #ClutterActor, or %NULL if
+  the actor could not compute a valid paint volume. The returned value
+  is not guaranteed to be stable across multiple frames, so if you
+  want to retain it, you will need to copy it using
+  clutter_paint_volume_copy().</doc>
+          <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="5898">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_easing_delay"
+              c:identifier="clutter_actor_get_easing_delay"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18395">Retrieves the delay that should be applied when tweening animatable
+properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="867"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18402">a delay, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18397">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_easing_duration"
+              c:identifier="clutter_actor_get_easing_duration"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18279">Retrieves the duration of the tweening for animatable
+properties of @self for the current easing state.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="862"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18286">the duration of the tweening, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18281">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_easing_mode"
+              c:identifier="clutter_actor_get_easing_mode"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18338">Retrieves the easing mode for the tweening of animatable properties
+of @self for the current easing state.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="857"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18345">an easing mode</doc>
+          <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18340">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_effect"
+              c:identifier="clutter_actor_get_effect"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15680">Retrieves the #ClutterEffect with the given name in the list
+of effects applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="125"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15688">a #ClutterEffect for the given
+  name, or %NULL. The returned #ClutterEffect is owned by the
+  actor and it should not be unreferenced directly</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15682">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15683">the name of the effect to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_effects"
+              c:identifier="clutter_actor_get_effects"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15652">Retrieves the #ClutterEffect&lt;!-- --&gt;s applied on @self, if any</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="123"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15658">a list
+  of #ClutterEffect&lt;!-- --&gt;s, or %NULL. The elements of the returned
+  list are owned by Clutter and they should not be freed. You should
+  free the returned list using g_list_free() when done</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Effect"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15654">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_first_child"
+              c:identifier="clutter_actor_get_first_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17433">Retrieves the first child of @self.
+
+The returned pointer is only valid until the scene graph changes; it
+is not safe to modify the list of children of @self while iterating
+it.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="718"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17443">a pointer to a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17435">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_fixed_position"
+              c:identifier="clutter_actor_get_fixed_position">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10287">This function gets the fixed position of the actor, if set. If there
+is no fixed position set, this function returns %FALSE and doesn't set
+the x and y coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="459"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10297">%TRUE if the fixed position is set, %FALSE if it isn't</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10289">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10290">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10291">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fixed_position_set"
+              c:identifier="clutter_actor_get_fixed_position_set"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9724">Checks whether an actor has a fixed position set (and will thus be
+unaffected by any layout manager).</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="467"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="9731">%TRUE if the fixed position is set on the actor</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9726">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_flags"
+              c:identifier="clutter_actor_get_flags"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14611">Retrieves the flags set on @self</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="345"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14617">a bitwise or of #ClutterActorFlags or 0</doc>
+          <type name="ActorFlags" c:type="ClutterActorFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14613">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_height" c:identifier="clutter_actor_get_height">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10542">Retrieves the height of a #ClutterActor.
+
+If the actor has a valid allocation, this function will return the
+height of the allocated area given to the actor.
+
+If the actor does not have a valid allocation, this function will
+return the actor's natural height, that is the preferred height of
+the actor.
+
+If you care whether you get the preferred height or the height that
+has been assigned to the actor, you should probably call a different
+function like clutter_actor_get_allocation_box() to retrieve the
+allocated size or clutter_actor_get_preferred_height() to retrieve the
+preferred height.
+
+If an actor has a fixed height, for instance a height that has been
+assigned using clutter_actor_set_height(), the height returned will
+be the same value.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="480"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10565">the height of the actor, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10544">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_last_child"
+              c:identifier="clutter_actor_get_last_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17455">Retrieves the last child of @self.
+
+The returned pointer is only valid until the scene graph changes; it
+is not safe to modify the list of children of @self while iterating
+it.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="720"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17465">a pointer to a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17457">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout_manager"
+              c:identifier="clutter_actor_get_layout_manager"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16817">Retrieves the #ClutterLayoutManager used by @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="506"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16823">a pointer to the #ClutterLayoutManager,
+  or %NULL</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16819">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_margin"
+              c:identifier="clutter_actor_get_margin"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17087">Retrieves all the components of the margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="541"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17089">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17090">return location for a #ClutterMargin</doc>
+            <type name="Margin" c:type="ClutterMargin*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_margin_bottom"
+              c:identifier="clutter_actor_get_margin_bottom"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17188">Retrieves the bottom margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="526"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17194">the bottom margin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17190">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_margin_left"
+              c:identifier="clutter_actor_get_margin_left"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17236">Retrieves the left margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="531"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17242">the left margin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17238">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_margin_right"
+              c:identifier="clutter_actor_get_margin_right"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17284">Retrieves the right margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="536"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17290">the right margin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17286">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_margin_top"
+              c:identifier="clutter_actor_get_margin_top"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17140">Retrieves the top margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="521"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17146">the top margin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17142">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_children"
+              c:identifier="clutter_actor_get_n_children"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16527">Retrieves the number of children of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="709"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16533">the number of children of an actor</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16529">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="clutter_actor_get_name">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11281">Retrieves the name of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="383"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11287">the name of the actor, or %NULL. The returned string is
+  owned by the actor and should not be modified or freed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11283">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_next_sibling"
+              c:identifier="clutter_actor_get_next_sibling"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17410">Retrieves the sibling of @self that comes after it in the list
+of children of @self's parent.
+
+The returned pointer is only valid until the scene graph changes; it
+is not safe to modify the list of children of @self while iterating
+it.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="716"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17421">a pointer to a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17412">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_offscreen_redirect"
+              c:identifier="clutter_actor_get_offscreen_redirect"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11242">Retrieves whether to redirect the actor to an offscreen buffer, as
+set by clutter_actor_set_offscreen_redirect().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="592"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11249">the value of the offscreen-redirect property of the actor</doc>
+          <type name="OffscreenRedirect" c:type="ClutterOffscreenRedirect"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11244">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_opacity" c:identifier="clutter_actor_get_opacity">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11128">Retrieves the opacity value of an actor, as set by
+clutter_actor_set_opacity().
+
+For retrieving the absolute opacity of the actor inside a paint
+virtual function, see clutter_actor_get_paint_opacity().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="583"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11138">the opacity of the actor</doc>
+          <type name="guint8" c:type="guint8"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11130">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_opacity_override"
+              c:identifier="clutter_actor_get_opacity_override"
+              version="1.22"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14484">See clutter_actor_set_opacity_override()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="888"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14490">the override value for the actor's opacity, or -1 if no override
+  is set.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14486">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_paint_box"
+              c:identifier="clutter_actor_get_paint_box"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16030">Retrieves the paint volume of the passed #ClutterActor, and
+transforms it into a 2D bounding box in stage coordinates.
+
+This function is useful to determine the on screen area occupied by
+the actor. The box is only an approximation and may often be
+considerably larger due to the optimizations used to calculate the
+box. The box is never smaller though, so it can reliably be used
+for culling.
+
+There are times when a 2D paint box can't be determined, e.g.
+because the actor isn't yet parented under a stage or because
+the actor is unable to determine a paint volume.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="598"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16048">%TRUE if a 2D paint box could be determined, else
+%FALSE.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16032">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16033">return location for a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_paint_opacity"
+              c:identifier="clutter_actor_get_paint_opacity"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11104">Retrieves the absolute opacity of the actor, as it appears on the stage.
+
+This function traverses the hierarchy chain and composites the opacity of
+the actor with that of its parents.
+
+This function is intended for subclasses to use in the paint virtual
+function, to paint themselves with the correct opacity.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="585"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11116">The actor opacity value.</doc>
+          <type name="guint8" c:type="guint8"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11106">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_paint_visibility"
+              c:identifier="clutter_actor_get_paint_visibility"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12241">Retrieves the 'paint' visibility of an actor recursively checking for non
+visible parents.
+
+This is by definition the same as %CLUTTER_ACTOR_IS_MAPPED.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="587"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="12250">%TRUE if the actor is visible and will be painted.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12243">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_paint_volume"
+              c:identifier="clutter_actor_get_paint_volume"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15939">Retrieves the paint volume of the passed #ClutterActor, or %NULL
+when a paint volume can't be determined.
+
+The paint volume is defined as the 3D space occupied by an actor
+when being painted.
+
+This function will call the #ClutterActorClass.get_paint_volume()
+virtual function of the #ClutterActor class. Sub-classes of #ClutterActor
+should not usually care about overriding the default implementation,
+unless they are, for instance: painting outside their allocation, or
+actors with a depth factor (not in terms of #ClutterActor:depth but real
+3D depth).
+
+Note: 2D actors overriding #ClutterActorClass.get_paint_volume()
+should ensure that their volume has a depth of 0. (This will be true
+as long as you don't call clutter_paint_volume_set_depth().)</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="641"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15960">a pointer to a #ClutterPaintVolume,
+  or %NULL if no volume could be determined. The returned pointer
+  is not guaranteed to be valid across multiple frames; if you want
+  to keep it, you will need to copy it using clutter_paint_volume_copy().</doc>
+          <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15941">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pango_context"
+              c:identifier="clutter_actor_get_pango_context"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14337">Retrieves the #PangoContext for @self. The actor's #PangoContext
+is already configured using the appropriate font map, resolution
+and font options.
+
+Unlike clutter_actor_create_pango_context(), this context is owend
+by the #ClutterActor and it will be updated each time the options
+stored by the #ClutterBackend change.
+
+You can use the returned #PangoContext to create a #PangoLayout
+and render text using cogl_pango_show_layout() to reuse the
+glyphs cache also used by Clutter.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="667"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14353">the #PangoContext for a #ClutterActor.
+  The returned #PangoContext is owned by the actor and should not be
+  unreferenced by the application code</doc>
+          <type name="Pango.Context" c:type="PangoContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14339">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_parent" c:identifier="clutter_actor_get_parent">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12224">Retrieves the parent of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="722"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="12230">The #ClutterActor parent, or %NULL
+ if no parent is set</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12226">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pivot_point"
+              c:identifier="clutter_actor_get_pivot_point"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11393">Retrieves the coordinates of the #ClutterActor:pivot-point.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="766"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11395">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pivot_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11396">return location for the normalized X
+  coordinate of the pivot point, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="pivot_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11398">return location for the normalized Y
+  coordinate of the pivot point, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pivot_point_z"
+              c:identifier="clutter_actor_get_pivot_point_z"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11449">Retrieves the Z component of the #ClutterActor:pivot-point.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="773"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11451">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_position"
+              c:identifier="clutter_actor_get_position"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10257">This function tries to "do what you mean" and tell you where the
+actor is, prior to any transformations. Retrieves the fixed
+position of an actor in pixels, if one has been set; otherwise, if
+the allocation is valid, returns the actor's allocated position;
+otherwise, returns 0,0.
+
+The returned position is in pixels.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="463"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10259">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10260">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10261">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_height"
+              c:identifier="clutter_actor_get_preferred_height"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9108">Computes the requested minimum and natural heights for an actor,
+or if they are already computed, returns the cached values.
+
+An actor may not get its request - depending on the layout
+manager that's in effect.
+
+A request should not incorporate the actor's scale or translation;
+those transformations do not affect layout, only rendering.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="408"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9110">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9111">available width to assume in computing desired height,
+  or a negative value to indicate that no width is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9113">return location for minimum height,
+  or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9115">return location for natural
+  height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_size"
+              c:identifier="clutter_actor_get_preferred_size"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8572">Computes the preferred minimum and natural size of an actor, taking into
+account the actor's geometry management (either height-for-width
+or width-for-height).
+
+The width and height used to compute the preferred height and preferred
+width are the actor's natural ones.
+
+If you need to control the height for the preferred width, or the width for
+the preferred height, you should use clutter_actor_get_preferred_width()
+and clutter_actor_get_preferred_height(), and check the actor's preferred
+geometry management using the #ClutterActor:request-mode property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="413"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8574">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8575">return location for the minimum
+  width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8577">return location for the minimum
+  height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8579">return location for the natural
+  width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8581">return location for the natural
+  height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_width"
+              c:identifier="clutter_actor_get_preferred_width"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8942">Computes the requested minimum and natural widths for an actor,
+optionally depending on the specified height, or if they are
+already computed, returns the cached values.
+
+An actor may not get its request - depending on the layout
+manager that's in effect.
+
+A request should not incorporate the actor's scaleor translation;
+those transformations do not affect layout, only rendering.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="403"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8944">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8945">available height when computing the preferred width,
+  or a negative value to indicate that no height is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8947">return location for minimum width,
+  or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8949">return location for the natural
+  width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_previous_sibling"
+              c:identifier="clutter_actor_get_previous_sibling"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17387">Retrieves the sibling of @self that comes before it in the list
+of children of @self's parent.
+
+The returned pointer is only valid until the scene graph changes; it
+is not safe to modify the list of children of @self while iterating
+it.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="714"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17398">a pointer to a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17389">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_reactive"
+              c:identifier="clutter_actor_get_reactive"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12779">Checks whether @actor is marked as reactive.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="653"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="12785">%TRUE if the actor is reactive</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12781">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_request_mode"
+              c:identifier="clutter_actor_get_request_mode"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10079">Retrieves the geometry request mode of @self</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="401"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10085">the request mode for the actor</doc>
+          <type name="RequestMode" c:type="ClutterRequestMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10081">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_resource_scale"
+              c:identifier="clutter_actor_get_resource_scale">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16157">Retrieves the resource scale for this actor.
+
+The resource scale refers to the scale the actor should use for its resources.
+For example if an actor draws a a picture of size 100 x 100 in the stage
+coordinate space, it should use a texture of twice the size (i.e. 200 x 200)
+if the resource scale is 2.
+
+The resource scale is determined by calculating the highest #ClutterStageView
+scale the actor will get painted on.
+
+Note that the scale returned by this function is only guaranteed to be
+correct when queried during the paint cycle, in all other cases this
+function will only return a best guess. If your implementation really
+needs to get a resource scale outside of the paint cycle, make sure to
+subscribe to the "resource-scale-changed" signal to get notified about
+the new, correct resource scale before painting.
+
+Also avoid getting the resource scale for actors that are not attached
+to a stage. There's no sane way for Clutter to guess which #ClutterStageView
+the actor is going to be painted on, so you'll probably end up receiving
+the "resource-scale-changed" signal and having to rebuild your resources.
+
+The best guess this function may return is usually just the last resource
+scale the actor got painted with. If this resource scale couldn't be found
+because the actor was never painted so far or Clutter was unable to
+determine its position and size, this function will return the resource
+scale of a parent.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="602"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16189">The resource scale the actor should use for its textures</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16159">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_rotation_angle"
+              c:identifier="clutter_actor_get_rotation_angle"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4750">Retrieves the angle of rotation set by clutter_actor_set_rotation_angle().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="779"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="4757">the angle of rotation, in degrees</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4752">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4753">the axis of the rotation</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scale"
+              c:identifier="clutter_actor_get_scale"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10968">Retrieves an actors scale factors.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="786"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10970">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="scale_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10971">Location to store horizontal
+  scale factor, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="scale_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10973">Location to store vertical
+  scale factor, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scale_z"
+              c:identifier="clutter_actor_get_scale_z"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10998">Retrieves the scaling factor along the Z axis, as set using
+clutter_actor_set_scale_z().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="793"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11005">the scaling factor along the Z axis</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11000">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="clutter_actor_get_size"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10225">This function tries to "do what you mean" and return
+the size an actor will have. If the actor has a valid
+allocation, the allocation will be returned; otherwise,
+the actors natural size request will be returned.
+
+If you care whether you get the request vs. the allocation, you
+should probably call a different function like
+clutter_actor_get_allocation_box() or
+clutter_actor_get_preferred_width().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="451"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10227">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10228">return location for the width, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10229">return location for the height, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_stage"
+              c:identifier="clutter_actor_get_stage"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="13929">Retrieves the #ClutterStage where @actor is contained.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="727"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="13935">the stage
+  containing the actor, or %NULL</doc>
+          <type name="Stage" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13931">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_text_direction"
+              c:identifier="clutter_actor_get_text_direction"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14987">Retrieves the value set using clutter_actor_set_text_direction()
+
+If no text direction has been previously set, the default text
+direction, as returned by clutter_get_default_text_direction(), will
+be returned instead</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="677"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14997">the #ClutterTextDirection for the actor</doc>
+          <type name="TextDirection" c:type="ClutterTextDirection"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14989">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_transform"
+              c:identifier="clutter_actor_get_transform"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14811">Retrieves the current transformation matrix of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="808"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14813">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="transform"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14814">a #ClutterMatrix</doc>
+            <type name="Matrix" c:type="ClutterMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_extents"
+              c:identifier="clutter_actor_get_transformed_extents">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10324">Gets the transformed bounding rect of an actor, in pixels relative to the 
stage.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="818"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10326">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10327">return location for the transformed bounding rect</doc>
+            <type name="Graphene.Rect" c:type="graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_paint_volume"
+              c:identifier="clutter_actor_get_transformed_paint_volume"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15975">Retrieves the 3D paint volume of an actor like
+clutter_actor_get_paint_volume() does (Please refer to the
+documentation of clutter_actor_get_paint_volume() for more
+details.) and it additionally transforms the paint volume into the
+coordinate space of @relative_to_ancestor. (Or the stage if %NULL
+is passed for @relative_to_ancestor)
+
+This can be used by containers that base their paint volume on
+the volume of their children. Such containers can query the
+transformed paint volume of all of its children and union them
+together using clutter_paint_volume_union().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="643"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15993">a pointer to a #ClutterPaintVolume,
+  or %NULL if no volume could be determined. The returned pointer is
+  not guaranteed to be valid across multiple frames; if you wish to
+  keep it, you will have to copy it using clutter_paint_volume_copy().</doc>
+          <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15977">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="relative_to_ancestor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15978">A #ClutterActor that is an ancestor of @self
+   (or %NULL for the stage)</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_position"
+              c:identifier="clutter_actor_get_transformed_position"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10356">Gets the absolute position of an actor, in pixels relative to the stage.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="822"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10358">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10359">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10360">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_size"
+              c:identifier="clutter_actor_get_transformed_size"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10384">Gets the absolute size of an actor in pixels, taking into account the
+scaling factors.
+
+If the actor has a valid allocation, the allocated size will be used.
+If the actor has not a valid allocation then the preferred size will
+be transformed and returned.
+
+If you want the transformed allocation, see
+clutter_actor_get_abs_allocation_vertices() instead.
+
+When the actor (or one of its ancestors) is rotated around the
+X or Y axis, it no longer appears as on the stage as a rectangle, but
+as a generic quadrangle; in that case this function returns the size
+of the smallest rectangle that encapsulates the entire quad. Please
+note that in this case no assumptions can be made about the relative
+position of this envelope to the absolute position of the actor, as
+returned by clutter_actor_get_transformed_position(); if you need this
+information, you need to use clutter_actor_get_abs_allocation_vertices()
+to get the coords of the actual quadrangle.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="826"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10386">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10387">return location for the width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10388">return location for the height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transition"
+              c:identifier="clutter_actor_get_transition"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18421">Retrieves the #ClutterTransition of a #ClutterActor by using the
+transition @name.
+
+Transitions created for animatable properties use the name of the
+property itself, for instance the code below:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_actor_set_easing_duration (actor, 1000);
+  clutter_actor_set_rotation_angle (actor, CLUTTER_Y_AXIS, 360.0);
+
+  transition = clutter_actor_get_transition (actor, "rotation-angle-y");
+  g_signal_connect (transition, "stopped",
+                    G_CALLBACK (on_transition_stopped),
+                    actor);
+]|
+
+will call the `on_transition_stopped` callback when the transition
+is finished.
+
+If you just want to get notifications of the completion of a transition,
+you should use the #ClutterActor::transition-stopped signal, using the
+transition name as the signal detail.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="869"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="18449">a #ClutterTransition, or %NULL is none
+  was found to match the passed name; the returned instance is owned
+  by Clutter and it should not be freed</doc>
+          <type name="Transition" c:type="ClutterTransition*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18423">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18424">the name of the transition</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_translation"
+              c:identifier="clutter_actor_get_translation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4626">Retrieves the translation set using clutter_actor_set_translation().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="800"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4628">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="translate_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4629">return location for the X component
+  of the translation, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="translate_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4631">return location for the Y component
+  of the translation, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="translate_z"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4633">return location for the Z component
+  of the translation, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width" c:identifier="clutter_actor_get_width">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10480">Retrieves the width of a #ClutterActor.
+
+If the actor has a valid allocation, this function will return the
+width of the allocated area given to the actor.
+
+If the actor does not have a valid allocation, this function will
+return the actor's natural width, that is the preferred width of
+the actor.
+
+If you care whether you get the preferred width or the width that
+has been assigned to the actor, you should probably call a different
+function like clutter_actor_get_allocation_box() to retrieve the
+allocated size or clutter_actor_get_preferred_width() to retrieve the
+preferred width.
+
+If an actor has a fixed width, for instance a width that has been
+assigned using clutter_actor_set_width(), the width returned will
+be the same value.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="478"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10503">the width of the actor, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10482">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_x" c:identifier="clutter_actor_get_x">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10822">Retrieves the X coordinate of a #ClutterActor.
+
+This function tries to "do what you mean", by returning the
+correct value depending on the actor's state.
+
+If the actor has a valid allocation, this function will return
+the X coordinate of the origin of the allocation box.
+
+If the actor has any fixed coordinate set using clutter_actor_set_x(),
+clutter_actor_set_position(), this function will return that coordinate.
+
+If both the allocation and a fixed position are missing, this function
+will return 0.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="488"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10840">the X coordinate, in pixels, ignoring any
+  transformation (i.e. scaling, rotation)</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10824">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_x_align"
+              c:identifier="clutter_actor_get_x_align"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16962">Retrieves the horizontal alignment policy set using
+clutter_actor_set_x_align().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="511"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16969">the horizontal alignment policy.</doc>
+          <type name="ActorAlign" c:type="ClutterActorAlign"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16964">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_x_expand"
+              c:identifier="clutter_actor_get_x_expand"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19075">Retrieves the value set with clutter_actor_set_x_expand().
+
+See also: clutter_actor_needs_expand()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="547"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="19083">%TRUE if the actor has been set to expand</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19077">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_y" c:identifier="clutter_actor_get_y">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10869">Retrieves the Y coordinate of a #ClutterActor.
+
+This function tries to "do what you mean", by returning the
+correct value depending on the actor's state.
+
+If the actor has a valid allocation, this function will return
+the Y coordinate of the origin of the allocation box.
+
+If the actor has any fixed coordinate set using clutter_actor_set_y(),
+clutter_actor_set_position(), this function will return that coordinate.
+
+If both the allocation and a fixed position are missing, this function
+will return 0.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="490"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="10887">the Y coordinate, in pixels, ignoring any
+  transformation (i.e. scaling, rotation)</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10871">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_y_align"
+              c:identifier="clutter_actor_get_y_align"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17013">Retrieves the vertical alignment policy set using
+clutter_actor_set_y_align().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="516"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17020">the vertical alignment policy.</doc>
+          <type name="ActorAlign" c:type="ClutterActorAlign"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17015">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_y_expand"
+              c:identifier="clutter_actor_get_y_expand"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19134">Retrieves the value set with clutter_actor_set_y_expand().
+
+See also: clutter_actor_needs_expand()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="552"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="19142">%TRUE if the actor has been set to expand</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19136">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_z_position"
+              c:identifier="clutter_actor_get_z_position"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11344">Retrieves the actor's position on the Z axis.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="501"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11350">the position on the Z axis.</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11346">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="grab_key_focus"
+              c:identifier="clutter_actor_grab_key_focus"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14273">Sets the key focus of the #ClutterStage including @self
+to this #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="657"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14275">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_accessible"
+              c:identifier="clutter_actor_has_accessible">
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="387"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_actions"
+              c:identifier="clutter_actor_has_actions"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16505">Returns whether the actor has any actions applied.</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16511">%TRUE if the actor has any actions,
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16507">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_allocation"
+              c:identifier="clutter_actor_has_allocation"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15038">Checks if the actor has an up-to-date allocation assigned to
+it. This means that the actor should have an allocation: it's
+visible and has a parent. It also means that there is no
+outstanding relayout request in progress for the actor or its
+children (There might be other outstanding layout requests in
+progress that will cause the actor to get a new allocation
+when the stage is laid out, however).
+
+If this function returns %FALSE, then the actor will normally
+be allocated before it is next drawn on the screen.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="445"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15053">%TRUE if the actor has an up-to-date allocation</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15040">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_clip"
+              c:identifier="clutter_actor_has_clip"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11535">Determines whether the actor has a clip area set or not.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="567"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="11541">%TRUE if the actor has a clip area set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11537">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_constraints"
+              c:identifier="clutter_actor_has_constraints"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16483">Returns whether the actor has any constraints applied.</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="133"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16489">%TRUE if the actor has any constraints,
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16485">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_damage" c:identifier="clutter_actor_has_damage">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_effects"
+              c:identifier="clutter_actor_has_effects"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16461">Returns whether the actor has any effects applied.</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="131"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16467">%TRUE if the actor has any effects,
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16463">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_key_focus"
+              c:identifier="clutter_actor_has_key_focus"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15728">Checks whether @self is the #ClutterActor that has key focus</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="655"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15734">%TRUE if the actor has key focus, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15730">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_mapped_clones"
+              c:identifier="clutter_actor_has_mapped_clones">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19558">Returns whether a #ClutterActor or any parent actors have mapped clones
+that are clone-painting @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="883"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="19565">%TRUE if the actor has mapped clones, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19560">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_overlaps"
+              c:identifier="clutter_actor_has_overlaps"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16433">Asks the actor's implementation whether it may contain overlapping
+primitives.
+
+For example; Clutter may use this to determine whether the painting
+should be redirected to an offscreen buffer to correctly implement
+the opacity property.
+
+Custom actors can override the default response by implementing the
+#ClutterActorClass.has_overlaps() virtual function. See
+clutter_actor_set_offscreen_redirect() for more information.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="605"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16448">%TRUE if the actor may have overlapping primitives, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16435">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_pointer"
+              c:identifier="clutter_actor_has_pointer"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15018">Checks whether an actor contains the pointer of a
+#ClutterInputDevice</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="663"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="15025">%TRUE if the actor contains the pointer, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15020">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_transitions"
+              c:identifier="clutter_actor_has_transitions"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide" c:identifier="clutter_actor_hide">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1949">Flags an actor to be hidden. A hidden actor will not be
+rendered on the stage.
+
+Actors are visible by default.
+
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent property will be set to %FALSE
+as a side-effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="349"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1951">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="inhibit_culling"
+              c:identifier="clutter_actor_inhibit_culling">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14505">Increases the culling inhibitor counter. Inhibiting culling
+forces the actor to be painted even when outside the visible
+bounds of the stage view.
+
+This is usually necessary when an actor is being painted on
+another paint context.
+
+Pair with clutter_actor_uninhibit_culling() when the actor doesn't
+need to be painted anymore.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="891"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14507">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="insert_child_above"
+              c:identifier="clutter_actor_insert_child_above"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12142">Inserts @child into the list of children of @self, above another
+child of @self or, if @sibling is %NULL, above all the children
+of @self.
+
+This function will acquire a reference on @child that will only
+be released when calling clutter_actor_remove_child().
+
+This function will not take into consideration the #ClutterActor:depth
+of @child.
+
+This function will emit the #ClutterContainer::actor-added signal
+on @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="688"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12144">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12145">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12146">a child of @self, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_child_at_index"
+              c:identifier="clutter_actor_insert_child_at_index"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12105">Inserts @child into the list of children of @self, using the
+given @index_. If @index_ is greater than the number of children
+in @self, or is less than 0, then the new child is added at the end.
+
+This function will acquire a reference on @child that will only
+be released when calling clutter_actor_remove_child().
+
+This function will not take into consideration the #ClutterActor:depth
+of @child.
+
+This function will emit the #ClutterContainer::actor-added signal
+on @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="684"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12107">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12108">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12109">the index</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_child_below"
+              c:identifier="clutter_actor_insert_child_below"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12183">Inserts @child into the list of children of @self, below another
+child of @self or, if @sibling is %NULL, below all the children
+of @self.
+
+This function will acquire a reference on @child that will only
+be released when calling clutter_actor_remove_child().
+
+This function will not take into consideration the #ClutterActor:depth
+of @child.
+
+This function will emit the #ClutterContainer::actor-added signal
+on @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="692"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12185">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12186">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12187">a child of @self, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_transform"
+              c:identifier="clutter_actor_invalidate_transform">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19965">Invalidate the cached transformation matrix of @self.
+This is needed for implementations overriding the apply_transform()
+vfunc and has to be called if the matrix returned by apply_transform()
+would change.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="936"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19967">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_effectively_on_stage_view"
+              c:identifier="clutter_actor_is_effectively_on_stage_view">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_in_clone_paint"
+              c:identifier="clutter_actor_is_in_clone_paint"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14839">Checks whether @self is being currently painted by a #ClutterClone
+
+This function is useful only inside the ::paint virtual function
+implementations or within handlers for the #ClutterActor::paint
+signal
+
+This function should not be used by applications</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="596"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="14851">%TRUE if the #ClutterActor is currently being painted
+  by a #ClutterClone, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14841">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_mapped"
+              c:identifier="clutter_actor_is_mapped"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1681">Checks whether a #ClutterActor has been set as mapped.
+
+See also %CLUTTER_ACTOR_IS_MAPPED and #ClutterActor:mapped</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="392"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="1689">%TRUE if the actor is mapped</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="1683">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_realized"
+              c:identifier="clutter_actor_is_realized"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2042">Checks whether a #ClutterActor is realized.
+
+See also %CLUTTER_ACTOR_IS_REALIZED and #ClutterActor:realized.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="394"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="2050">%TRUE if the actor is realized</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2044">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_rotated"
+              c:identifier="clutter_actor_is_rotated"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="13870">Checks whether any rotation is applied to the actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="758"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="13876">%TRUE if the actor is rotated.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13872">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_scaled"
+              c:identifier="clutter_actor_is_scaled"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="13895">Checks whether the actor is scaled in either dimension.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="760"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="13901">%TRUE if the actor is scaled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13897">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_visible"
+              c:identifier="clutter_actor_is_visible"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1914">Checks whether an actor is marked as visible.
+
+See also %CLUTTER_ACTOR_IS_VISIBLE and #ClutterActor:visible.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="390"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="1922">%TRUE if the actor visible</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="1916">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="map" c:identifier="clutter_actor_map" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1650">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
+and realizes its children if they are visible. Does nothing if the
+actor is not visible.
+
+Calling this function is strongly discouraged: the default
+implementation of #ClutterActorClass.map() will map all the children
+of an actor when mapping its parent.
+
+When overriding map, it is mandatory to chain up to the parent
+implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="355"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1652">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="move_by"
+              c:identifier="clutter_actor_move_by"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9782">Moves an actor by the specified distance relative to its current
+position in pixels.
+
+This function modifies the fixed position of an actor and thus removes
+it from any layout management. Another way to move an actor is with an
+additional translation, using clutter_actor_set_translation().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="472"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9784">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9785">Distance to move Actor on X axis.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9786">Distance to move Actor on Y axis.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="needs_expand"
+              c:identifier="clutter_actor_needs_expand"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19228">Checks whether an actor, or any of its children, is set to expand
+horizontally or vertically.
+
+This function should only be called by layout managers that can
+assign extra space to their children.
+
+If you want to know whether the actor was explicitly set to expand,
+use clutter_actor_get_x_expand() or clutter_actor_get_y_expand().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="554"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="19242">%TRUE if the actor should expand</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19230">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19231">the direction of expansion</doc>
+            <type name="Orientation" c:type="ClutterOrientation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paint" c:identifier="clutter_actor_paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="3730">Renders the actor to display.
+
+This function should not be called directly by applications.
+Call clutter_actor_queue_redraw() to queue paints, instead.
+
+This function is context-aware, and will either cause a
+regular paint or a pick paint.
+
+This function will emit the #ClutterActor::paint signal or
+the #ClutterActor::pick signal, depending on the context.
+
+This function does not paint the actor if the actor is set to 0,
+unless it is performing a pick paint.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="359"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="3732">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_stage_views"
+              c:identifier="clutter_actor_peek_stage_views">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16314">Retrieves the list of #ClutterStageView&lt;!-- --&gt;s the actor is being
+painted on.
+
+If this function is called during the paint cycle, the list is guaranteed
+to be up-to-date, if called outside the paint cycle, the list will
+contain the views the actor was painted on last.
+
+The list returned by this function is not updated when the actors
+visibility changes: If an actor gets hidden and is not being painted
+anymore, this function will return the list of views the actor was
+painted on last.
+
+If an actor is not attached to a stage (realized), this function will
+always return an empty list.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="933"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16333">The list of
+  #ClutterStageView&lt;!-- --&gt;s the actor is being painted on. The list and
+  its contents are owned by the #ClutterActor and the list may not be
+  freed or modified.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="StageView"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16316">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="pick" c:identifier="clutter_actor_pick">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4037">Asks @actor to perform a pick.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="365"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4039">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pick_box" c:identifier="clutter_actor_pick_box">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1302">Logs (does a virtual paint of) a rectangle for picking. Note that @box is
+in the actor's own local coordinates, so is usually {0,0,width,height}
+to include the whole actor. That is unless the actor has a shaped input
+region in which case you may wish to log the (multiple) smaller rectangles
+that make up the input region.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="928"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1304">The #ClutterActor being "pick" painted.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pick_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="1305">The #ClutterPickContext</doc>
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="1306">A rectangle in the actor's own local coordinates.</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pick_frame_clock"
+              c:identifier="clutter_actor_pick_frame_clock"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16380">Pick the most suitable frame clock for driving animations for this actor.
+
+The #ClutterActor used for picking the frame clock is written @out_actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="72"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="16389">a #ClutterFrameClock</doc>
+          <type name="FrameClock" c:type="ClutterFrameClock*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16382">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="out_actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16383">a pointer to an #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="queue_redraw" c:identifier="clutter_actor_queue_redraw">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8400">Queues up a redraw of an actor and any children. The redraw occurs
+once the main loop becomes idle (after the current batch of events
+has been processed, roughly).
+
+Applications rarely need to call this, as redraws are handled
+automatically by modification functions.
+
+This function will not do anything if @self is not visible, or
+if the actor is inside an invisible part of the scenegraph.
+
+Also be aware that painting is a NOP for actors with an opacity of
+0
+
+When you are implementing a custom actor you must queue a redraw
+whenever some private state changes that will affect painting or
+picking of your actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="371"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8402">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="queue_redraw_with_clip"
+              c:identifier="clutter_actor_queue_redraw_with_clip"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8508">Queues a redraw on @self limited to a specific, actor-relative
+rectangular area.
+
+If @clip is %NULL this function is equivalent to
+clutter_actor_queue_redraw().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="373"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8510">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="clip"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="8511">a rectangular clip region, or %NULL</doc>
+            <type name="cairo.RectangleInt"
+                  c:type="const cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="queue_relayout"
+              c:identifier="clutter_actor_queue_relayout"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8551">Indicates that the actor's size request or other layout-affecting
+properties may have changed. This function is used inside #ClutterActor
+subclass implementations, not by applications directly.
+
+Queueing a new layout automatically queues a redraw as well.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="376"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="8553">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="realize"
+              c:identifier="clutter_actor_realize"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2011">Realization informs the actor that it is attached to a stage. It
+can use this to allocate resources if it wanted to delay allocation
+until it would be rendered. However it is perfectly acceptable for
+an actor to create resources before being realized because Clutter
+only ever has a single rendering context so that actor is free to
+be moved from one stage to another.
+
+This function does nothing if the actor is already realized.
+
+Because a realized actor must have realized parent actors, calling
+clutter_actor_realize() will also realize all parents of the actor.
+
+This function does not realize child actors, except in the special
+case that realizing the stage, when the stage is visible, will
+suddenly map (and thus realize) the children of the stage.</doc>
+        <doc-deprecated xml:space="preserve">Actors are automatically realized, and nothing
+  requires explicit realization.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="351"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2013">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_action"
+              c:identifier="clutter_actor_remove_action"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15139">Removes @action from the list of actions applied to @self
+
+The reference held by @self on the #ClutterAction will be released</doc>
+        <source-position filename="../clutter/clutter/clutter-action.h"
+                         line="73"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15141">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15142">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action_by_name"
+              c:identifier="clutter_actor_remove_action_by_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15172">Removes the #ClutterAction with the given name from the list
+of actions applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-action.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="../clutter/clutter/clutter-actor.c"
+                 line="15174">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15175">the name of the action to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all_children"
+              c:identifier="clutter_actor_remove_all_children"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12293">Removes all children of @self.
+
+This function releases the reference added by inserting a child actor
+in the list of children of @self.
+
+If the reference count of a child drops to zero, the child will be
+destroyed. If you want to ensure the destruction of all the children
+of @self, use clutter_actor_destroy_all_children().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="703"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12295">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_all_transitions"
+              c:identifier="clutter_actor_remove_all_transitions"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18226">Removes all transitions associated to @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="879"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18228">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_child"
+              c:identifier="clutter_actor_remove_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12262">Removes @child from the children of @self.
+
+This function will release the reference added by
+clutter_actor_add_child(), so if you want to keep using @child
+you will have to acquire a referenced on it before calling this
+function.
+
+This function will emit the #ClutterContainer::actor-removed
+signal on @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="700"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12264">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12265">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_clip" c:identifier="clutter_actor_remove_clip">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11514">Removes clip area from @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="565"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11516">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_constraint"
+              c:identifier="clutter_actor_remove_constraint"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15345">Removes @constraint from the list of constraints applied to @self
+
+The reference held by @self on the #ClutterConstraint will be released</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="119"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15347">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15348">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_constraint_by_name"
+              c:identifier="clutter_actor_remove_constraint_by_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15381">Removes the #ClutterConstraint with the given name from the list
+of constraints applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="122"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15383">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15384">the name of the constraint to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_effect"
+              c:identifier="clutter_actor_remove_effect"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15595">Removes @effect from the list of effects applied to @self
+
+The reference held by @self on the #ClutterEffect will be released</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="117"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15597">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15598">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_effect_by_name"
+              c:identifier="clutter_actor_remove_effect_by_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15620">Removes the #ClutterEffect with the given name from the list
+of effects applied to @self</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="120"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15622">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15623">the name of the effect to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_transition"
+              c:identifier="clutter_actor_remove_transition"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18159">Removes the transition stored inside a #ClutterActor using @name
+identifier.
+
+If the transition is currently in progress, it will be stopped.
+
+This function releases the reference acquired when the transition
+was added to the #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="876"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18161">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18162">the name of the transition to remove</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="replace_child"
+              c:identifier="clutter_actor_replace_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12414">Replaces @old_child with @new_child in the list of children of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="696"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12416">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="old_child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12417">the child of @self to replace</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="new_child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12418">the #ClutterActor to replace @old_child</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="restore_easing_state"
+              c:identifier="clutter_actor_restore_easing_state"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18528">Restores the easing state as it was prior to a call to
+clutter_actor_save_easing_state().</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="852"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18530">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="save_easing_state"
+              c:identifier="clutter_actor_save_easing_state"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18493">Saves the current easing state for animatable properties, and creates
+a new state with the default values for easing mode and duration.
+
+New transitions created after calling this function will inherit the
+duration, easing mode, and delay of the new easing state; this also
+applies to transitions modified in flight.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="850"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18495">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_allocation"
+              c:identifier="clutter_actor_set_allocation"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9648">Stores the allocation of @self as defined by @box.
+
+This function can only be called from within the implementation of
+the #ClutterActorClass.allocate() virtual function.
+
+The allocation @box should have been adjusted to take into account
+constraints, alignment, and margin properties.
+
+This function should only be used by subclasses of #ClutterActor
+that wish to store their allocation but cannot chain up to the
+parent's implementation; the default implementation of the
+#ClutterActorClass.allocate() virtual function will call this
+function.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="439"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9650">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9651">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_background_color"
+              c:identifier="clutter_actor_set_background_color"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17323">Sets the background color of a #ClutterActor.
+
+The background color will be used to cover the whole allocation of the
+actor. The default background color of an actor is transparent.
+
+To check whether an actor has a background color, you can use the
+#ClutterActor:background-color-set actor property.
+
+The #ClutterActor:background-color property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="635"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17325">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17326">a #ClutterColor, or %NULL to unset a previously
+ set color</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_child_above_sibling"
+              c:identifier="clutter_actor_set_child_above_sibling"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12482">Sets @child to be above @sibling in the list of children of @self.
+
+If @sibling is %NULL, @child will be the new last child of @self.
+
+This function is logically equivalent to removing @child and using
+clutter_actor_insert_child_above(), but it will not emit signals
+or change state on @child.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="733"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12484">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12485">a #ClutterActor child of @self</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12486">a #ClutterActor child of @self, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_child_at_index"
+              c:identifier="clutter_actor_set_child_at_index"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12581">Changes the index of @child in the list of children of @self.
+
+This function is logically equivalent to removing @child and
+calling clutter_actor_insert_child_at_index(), but it will not
+emit signals or change state on @child.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="737"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12583">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12584">a #ClutterActor child of @self</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12585">the new index for @child</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_child_below_sibling"
+              c:identifier="clutter_actor_set_child_below_sibling"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12534">Sets @child to be below @sibling in the list of children of @self.
+
+If @sibling is %NULL, @child will be the new first child of @self.
+
+This function is logically equivalent to removing @self and using
+clutter_actor_insert_child_below(), but it will not emit signals
+or change state on @child.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="729"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12536">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12537">a #ClutterActor child of @self</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12538">a #ClutterActor child of @self, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_child_transform"
+              c:identifier="clutter_actor_set_child_transform"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19397">Sets the transformation matrix to be applied to all the children
+of @self prior to their own transformations. The default child
+transformation is the identity matrix.
+
+If @transform is %NULL, the child transform will be unset.
+
+The #ClutterActor:child-transform property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="811"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19399">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="transform"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19400">a #ClutterMatrix, or %NULL</doc>
+            <type name="Matrix" c:type="const ClutterMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clip"
+              c:identifier="clutter_actor_set_clip"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11465">Sets clip area for @self. The clip area is always computed from the
+upper left corner of the actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="559"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11467">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="xoff" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11468">X offset of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="yoff" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11469">Y offset of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11470">Width of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11471">Height of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clip_to_allocation"
+              c:identifier="clutter_actor_set_clip_to_allocation"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="15486">Sets whether @self should be clipped to the same size as its
+allocation</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="575"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="15488">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="clip_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="15489">%TRUE to apply a clip tracking the allocation</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content"
+              c:identifier="clutter_actor_set_content"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18566">Sets the contents of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="609"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18568">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="content"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18569">a #ClutterContent, or %NULL</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_gravity"
+              c:identifier="clutter_actor_set_content_gravity"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18660">Sets the gravity of the #ClutterContent used by @self.
+
+See the description of the #ClutterActor:content-gravity property for
+more information.
+
+The #ClutterActor:content-gravity property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="614"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18662">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="gravity" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18663">the #ClutterContentGravity</doc>
+            <type name="ContentGravity" c:type="ClutterContentGravity"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_repeat"
+              c:identifier="clutter_actor_set_content_repeat"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19272">Sets the policy for repeating the #ClutterActor:content of a
+#ClutterActor. The behaviour is deferred to the #ClutterContent
+implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="627"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19274">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="repeat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19275">the repeat policy</doc>
+            <type name="ContentRepeat" c:type="ClutterContentRepeat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_scaling_filters"
+              c:identifier="clutter_actor_set_content_scaling_filters"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18920">Sets the minification and magnification filter to be applied when
+scaling the #ClutterActor:content of a #ClutterActor.
+
+The #ClutterActor:minification-filter will be used when reducing
+the size of the content; the #ClutterActor:magnification-filter
+will be used when increasing the size of the content.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="619"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18922">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="min_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18923">the minification filter for the content</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter"/>
+          </parameter>
+          <parameter name="mag_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18924">the magnification filter for the content</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_delay"
+              c:identifier="clutter_actor_set_easing_delay"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18364">Sets the delay that should be applied before tweening animatable
+properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="864"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18366">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18367">the delay before the start of the tweening, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_duration"
+              c:identifier="clutter_actor_set_easing_duration"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18248">Sets the duration of the tweening for animatable properties
+of @self for the current easing state.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="859"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18250">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18251">the duration of the easing, or %NULL</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_mode"
+              c:identifier="clutter_actor_set_easing_mode"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="18305">Sets the easing mode for the tweening of animatable properties
+of @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="854"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="18307">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="18308">an easing mode, excluding %CLUTTER_CUSTOM_MODE</doc>
+            <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fixed_position_set"
+              c:identifier="clutter_actor_set_fixed_position_set"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9743">Sets whether an actor has a fixed position set (and will thus be
+unaffected by any layout manager).</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="469"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9745">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="is_set" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9746">whether to use fixed position</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_flags"
+              c:identifier="clutter_actor_set_flags"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14629">Sets @flags on @self
+
+This function will emit notifications for the changed properties</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="339"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14631">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14632">the flags to set</doc>
+            <type name="ActorFlags" c:type="ClutterActorFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_height"
+              c:identifier="clutter_actor_set_height"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10650">Forces a height on an actor, causing the actor's preferred width
+and height (if any) to be ignored.
+
+If @height is -1 the actor will use its preferred height instead of
+overriding it, i.e. you can "unset" the height with -1.
+
+This function sets both the minimum and natural size of the actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="485"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10652">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10653">Requested new height for the actor, in pixels, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layout_manager"
+              c:identifier="clutter_actor_set_layout_manager"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16767">Sets the #ClutterLayoutManager delegate object that will be used to
+lay out the children of @self.
+
+The #ClutterActor will take a reference on the passed @manager which
+will be released either when the layout manager is removed, or when
+the actor is destroyed.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="503"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="16769">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="manager"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16770">a #ClutterLayoutManager, or %NULL to unset it</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_margin"
+              c:identifier="clutter_actor_set_margin"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17054">Sets all the components of the margin of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="538"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17056">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17057">a #ClutterMargin</doc>
+            <type name="Margin" c:type="const ClutterMargin*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_margin_bottom"
+              c:identifier="clutter_actor_set_margin_bottom"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17158">Sets the margin from the bottom of a #ClutterActor.
+
+The #ClutterActor:margin-bottom property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="523"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17160">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17161">the bottom margin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_margin_left"
+              c:identifier="clutter_actor_set_margin_left"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17206">Sets the margin from the left of a #ClutterActor.
+
+The #ClutterActor:margin-left property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="528"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17208">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17209">the left margin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_margin_right"
+              c:identifier="clutter_actor_set_margin_right"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17254">Sets the margin from the right of a #ClutterActor.
+
+The #ClutterActor:margin-right property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="533"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17256">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17257">the right margin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_margin_top"
+              c:identifier="clutter_actor_set_margin_top"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17110">Sets the margin from the top of a #ClutterActor.
+
+The #ClutterActor:margin-top property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="518"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="17112">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="margin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17113">the top margin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name" c:identifier="clutter_actor_set_name">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11261">Sets the given name to @self. The name can be used to identify
+a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="380"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11263">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11264">Textual tag to apply to actor</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_offscreen_redirect"
+              c:identifier="clutter_actor_set_offscreen_redirect"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11148">Defines the circumstances where the actor should be redirected into
+an offscreen image. The offscreen image is used to flatten the
+actor into a single image while painting for two main reasons.
+Firstly, when the actor is painted a second time without any of its
+contents changing it can simply repaint the cached image without
+descending further down the actor hierarchy. Secondly, it will make
+the opacity look correct even if there are overlapping primitives
+in the actor.
+
+Caching the actor could in some cases be a performance win and in
+some cases be a performance lose so it is important to determine
+which value is right for an actor before modifying this value. For
+example, there is never any reason to flatten an actor that is just
+a single texture (such as a #ClutterTexture) because it is
+effectively already cached in an image so the offscreen would be
+redundant. Also if the actor contains primitives that are far apart
+with a large transparent area in the middle (such as a large
+CluterGroup with a small actor in the top left and a small actor in
+the bottom right) then the cached image will contain the entire
+image of the large area and the paint will waste time blending all
+of the transparent pixels in the middle.
+
+The default method of implementing opacity on a container simply
+forwards on the opacity to all of the children. If the children are
+overlapping then it will appear as if they are two separate glassy
+objects and there will be a break in the color where they
+overlap. By redirecting to an offscreen buffer it will be as if the
+two opaque objects are combined into one and then made transparent
+which is usually what is expected.
+
+The image below demonstrates the difference between redirecting and
+not. The image shows two Clutter groups, each containing a red and
+a green rectangle which overlap. The opacity on the group is set to
+128 (which is 50%). When the offscreen redirect is not used, the
+red rectangle can be seen through the blue rectangle as if the two
+rectangles were separately transparent. When the redirect is used
+the group as a whole is transparent instead so the red rectangle is
+not visible where they overlap.
+
+&lt;figure id="offscreen-redirect"&gt;
+  &lt;title&gt;Sample of using an offscreen redirect for transparency&lt;/title&gt;
+  &lt;graphic fileref="offscreen-redirect.png" format="PNG"/&gt;
+&lt;/figure&gt;
+
+The default value for this property is 0, so we effectively will
+never redirect an actor offscreen by default. This means that there
+are times that transparent actors may look glassy as described
+above. The reason this is the default is because there is a
+performance trade off between quality and performance here. In many
+cases the default form of glassy opacity looks good enough, but if
+it's not you will need to set the
+%CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY flag to enable
+redirection for opacity.
+
+Custom actors that don't contain any overlapping primitives are
+recommended to override the has_overlaps() virtual to return %FALSE
+for maximum efficiency.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="589"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11150">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="redirect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11151">New offscreen redirect flags for the actor.</doc>
+            <type name="OffscreenRedirect" c:type="ClutterOffscreenRedirect"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_opacity" c:identifier="clutter_actor_set_opacity">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11042">Sets the actor's opacity, with zero being completely transparent and
+255 (0xff) being fully opaque.
+
+The #ClutterActor:opacity property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="580"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11044">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="opacity" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11045">New opacity value for the actor.</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_opacity_override"
+              c:identifier="clutter_actor_set_opacity_override"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14455">Allows overriding the calculated paint opacity (as returned by
+clutter_actor_get_paint_opacity()). This is used internally by
+ClutterClone and ClutterOffscreenEffect, and should be used by
+actors that need to mimic those.
+
+In almost all cases this should not used by applications.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="885"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14457">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="opacity" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14458">the override opacity value, or -1 to reset</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pivot_point"
+              c:identifier="clutter_actor_set_pivot_point"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11362">Sets the position of the #ClutterActor:pivot-point around which the
+scaling and rotation transformations occur.
+
+The pivot point's coordinates are in normalized space, with the (0, 0)
+point being the top left corner of the actor, and the (1, 1) point being
+the bottom right corner.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="762"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11364">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pivot_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11365">the normalized X coordinate of the pivot point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="pivot_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11366">the normalized Y coordinate of the pivot point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pivot_point_z"
+              c:identifier="clutter_actor_set_pivot_point_z"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11423">Sets the component on the Z axis of the #ClutterActor:pivot-point around
+which the scaling and rotation transformations occur.
+
+The @pivot_z value is expressed as a distance along the Z axis.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="770"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11425">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="pivot_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11426">the Z coordinate of the actor's pivot point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_position" c:identifier="clutter_actor_set_position">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="9691">Sets the actor's fixed position in pixels relative to any parent
+actor.
+
+If a layout manager is in use, this position will override the
+layout manager and force a fixed position.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="455"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="9693">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9694">New left position of actor in pixels.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="9695">New top position of actor in pixels.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_reactive"
+              c:identifier="clutter_actor_set_reactive"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="12753">Sets @actor as reactive. Reactive actors will receive events.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="650"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="12755">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="reactive" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="12756">whether the actor should be reactive to events</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_request_mode"
+              c:identifier="clutter_actor_set_request_mode"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10043">Sets the geometry request mode of @self.
+
+The @mode determines the order for invoking
+clutter_actor_get_preferred_width() and
+clutter_actor_get_preferred_height()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="398"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10045">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10046">the request mode</doc>
+            <type name="RequestMode" c:type="ClutterRequestMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_rotation_angle"
+              c:identifier="clutter_actor_set_rotation_angle"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4696">Sets the @angle of rotation of a #ClutterActor on the given @axis.
+
+This function is a convenience for setting the rotation properties
+#ClutterActor:rotation-angle-x, #ClutterActor:rotation-angle-y,
+and #ClutterActor:rotation-angle-z.
+
+The center of rotation is established by the #ClutterActor:pivot-point
+property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="775"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4698">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4699">the axis to set the angle one</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4700">the angle of rotation, in degrees</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scale"
+              c:identifier="clutter_actor_set_scale"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10916">Scales an actor with the given factors.
+
+The scale transformation is relative the the #ClutterActor:pivot-point.
+
+The #ClutterActor:scale-x and #ClutterActor:scale-y properties are
+animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="782"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10918">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="scale_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10919">double factor to scale actor by horizontally.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="scale_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10920">double factor to scale actor by vertically.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scale_z"
+              c:identifier="clutter_actor_set_scale_z"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10946">Scales an actor on the Z axis by the given @scale_z factor.
+
+The scale transformation is relative the the #ClutterActor:pivot-point.
+
+The #ClutterActor:scale-z property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="790"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10948">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="scale_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10949">the scaling factor along the Z axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_size" c:identifier="clutter_actor_set_size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10167">Sets the actor's size request in pixels. This overrides any
+"normal" size request the actor would have. For example
+a text actor might normally request the size of the text;
+this function would force a specific size instead.
+
+If @width and/or @height are -1 the actor will use its
+"normal" size request instead of overriding it, i.e.
+you can "unset" the size with -1.
+
+This function sets or unsets both the minimum and natural size.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="447"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10169">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10170">New width of actor in pixels, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10171">New height of actor in pixels, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text_direction"
+              c:identifier="clutter_actor_set_text_direction"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14909">Sets the #ClutterTextDirection for an actor
+
+The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT
+
+If @self implements #ClutterContainer then this function will recurse
+inside all the children of @self (including the internal ones).
+
+Composite actors not implementing #ClutterContainer, or actors requiring
+special handling when the text direction changes, should connect to
+the #GObject::notify signal for the #ClutterActor:text-direction property</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="674"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14911">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="text_dir" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14912">the text direction for @self</doc>
+            <type name="TextDirection" c:type="ClutterTextDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_transform"
+              c:identifier="clutter_actor_set_transform"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14776">Overrides the transformations of a #ClutterActor with a custom
+matrix, which will be applied relative to the origin of the
+actor's allocation and to the actor's pivot point.
+
+The #ClutterActor:transform property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="805"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14778">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="transform"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14779">a #ClutterMatrix, or %NULL to
+  unset a custom transformation</doc>
+            <type name="Matrix" c:type="const ClutterMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_translation"
+              c:identifier="clutter_actor_set_translation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="4597">Sets an additional translation transformation on a #ClutterActor,
+relative to the #ClutterActor:pivot-point.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="795"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="4599">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="translate_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4600">the translation along the X axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="translate_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4601">the translation along the Y axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="translate_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="4602">the translation along the Z axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_width"
+              c:identifier="clutter_actor_set_width"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10603">Forces a width on an actor, causing the actor's preferred width
+and height (if any) to be ignored.
+
+If @width is -1 the actor will use its preferred width request
+instead of overriding it, i.e. you can "unset" the width with -1.
+
+This function sets both the minimum and natural size of the actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="482"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10605">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10606">Requested new width for the actor, in pixels, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_x" c:identifier="clutter_actor_set_x" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10768">Sets the actor's X coordinate, relative to its parent, in pixels.
+
+Overrides any layout manager and forces a fixed position for
+the actor.
+
+The #ClutterActor:x property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="492"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10770">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10771">the actor's position on the X axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_x_align"
+              c:identifier="clutter_actor_set_x_align"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16930">Sets the horizontal alignment policy of a #ClutterActor, in case the
+actor received extra horizontal space.
+
+See also the #ClutterActor:x-align property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="508"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="16932">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16933">the horizontal alignment policy</doc>
+            <type name="ActorAlign" c:type="ClutterActorAlign"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_x_expand"
+              c:identifier="clutter_actor_set_x_expand"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19036">Sets whether a #ClutterActor should expand horizontally; this means
+that layout manager should allocate extra space for the actor, if
+possible.
+
+Setting an actor to expand will also make all its parent expand, so
+that it's possible to build an actor tree and only set this flag on
+its leaves and not on every single actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="544"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19038">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="expand" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19039">whether the actor should expand horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_y" c:identifier="clutter_actor_set_y" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="10795">Sets the actor's Y coordinate, relative to its parent, in pixels.#
+
+Overrides any layout manager and forces a fixed position for
+the actor.
+
+The #ClutterActor:y property is animatable.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="495"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="10797">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="10798">the actor's position on the Y axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_y_align"
+              c:identifier="clutter_actor_set_y_align"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="16981">Sets the vertical alignment policy of a #ClutterActor, in case the
+actor received extra vertical space.
+
+See also the #ClutterActor:y-align property.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="513"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="16983">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16984">the vertical alignment policy</doc>
+            <type name="ActorAlign" c:type="ClutterActorAlign"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_y_expand"
+              c:identifier="clutter_actor_set_y_expand"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="19095">Sets whether a #ClutterActor should expand horizontally; this means
+that layout manager should allocate extra space for the actor, if
+possible.
+
+Setting an actor to expand will also make all its parent expand, so
+that it's possible to build an actor tree and only set this flag on
+its leaves and not on every single actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="549"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="19097">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="expand" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="19098">whether the actor should expand vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_z_position"
+              c:identifier="clutter_actor_set_z_position"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="11318">Sets the actor's position on the Z axis.
+
+See #ClutterActor:z-position.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="498"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="11320">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="z_position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="11321">the position on the Z axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="should_pick_paint"
+              c:identifier="clutter_actor_should_pick_paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2347">Should be called inside the implementation of the
+#ClutterActor::pick virtual function in order to check whether
+the actor should paint itself in pick mode or not.
+
+This function should never be called directly by applications.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="594"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="2357">%TRUE if the actor should paint its silhouette,
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="2349">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="show" c:identifier="clutter_actor_show">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1854">Flags an actor to be displayed. An actor that isn't shown will not
+be rendered on the stage.
+
+Actors are visible by default.
+
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent will be set to %TRUE as a side
+effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="347"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1856">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="transform_stage_point"
+              c:identifier="clutter_actor_transform_stage_point"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="13696">This function translates screen coordinates (@x, @y) to
+coordinates relative to the actor. For example, it can be used to translate
+screen events from global screen coordinates into actor-local coordinates.
+
+The conversion can fail, notably if the transform stack results in the
+actor being projected on the screen as a mere line.
+
+The conversion should not be expected to be pixel-perfect due to the
+nature of the operation. In general the error grows when the skewing
+of the actor rectangle on screen increases.
+
+This function can be computationally intensive.
+
+This function only works when the allocation is up-to-date, i.e. inside of
+the #ClutterActorClass.paint() implementation</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="830"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="13720">%TRUE if conversion was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13698">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13699">x screen coordinate of the point to unproject</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13700">y screen coordinate of the point to unproject</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="x_out"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13701">return location for the unprojected x coordinance</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y_out"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="13702">return location for the unprojected y coordinance</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="uninhibit_culling"
+              c:identifier="clutter_actor_uninhibit_culling">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14532">Decreases the culling inhibitor counter. See clutter_actor_inhibit_culling()
+for when inhibit culling is necessary.
+
+Calling this function without a matching call to
+clutter_actor_inhibit_culling() is a programming error.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="893"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14534">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unmap" c:identifier="clutter_actor_unmap" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="1762">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
+unmaps its children if they were mapped.
+
+Calling this function is not encouraged: the default #ClutterActor
+implementation of #ClutterActorClass.unmap() will also unmap any
+eventual children by default when their parent is unmapped.
+
+When overriding #ClutterActorClass.unmap(), it is mandatory to
+chain up to the parent implementation.
+
+It is important to note that the implementation of the
+#ClutterActorClass.unmap() virtual function may be called after
+the #ClutterActorClass.destroy() or the #GObjectClass.dispose()
+implementation, but it is guaranteed to be called before the
+#GObjectClass.finalize() implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="357"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="1764">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unrealize"
+              c:identifier="clutter_actor_unrealize"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="2120">Unrealization informs the actor that it may be being destroyed or
+moved to another stage. The actor may want to destroy any
+underlying graphics resources at this point. However it is
+perfectly acceptable for it to retain the resources until the actor
+is destroyed because Clutter only ever uses a single rendering
+context and all of the graphics resources are valid on any stage.
+
+Because mapped actors must be realized, actors may not be
+unrealized if they are mapped. This function hides the actor to be
+sure it isn't mapped, an application-visible side effect that you
+may not be expecting.
+
+This function should not be called by application code.
+
+This function should not really be in the public API, because
+there isn't a good reason to call it. ClutterActor will already
+unrealize things for you when it's important to do so.
+
+If you were using clutter_actor_unrealize() in a dispose
+implementation, then don't, just chain up to ClutterActor's
+dispose.
+
+If you were using clutter_actor_unrealize() to implement
+unrealizing children of your container, then don't, ClutterActor
+will already take care of that.</doc>
+        <doc-deprecated xml:space="preserve">Actors are automatically unrealized, and nothing
+  requires explicit realization.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="353"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="2122">A #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unset_flags"
+              c:identifier="clutter_actor_unset_flags"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="14690">Unsets @flags on @self
+
+This function will emit notifications for the changed properties</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="342"/>
+        <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="../clutter/clutter/clutter-actor.c"
+                 line="14692">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </instance-parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="14693">the flags to unset</doc>
+            <type name="ActorFlags" c:type="ClutterActorFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="actions"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6991">Adds a #ClutterAction to the actor</doc>
+        <type name="Action"/>
+      </property>
+      <property name="allocation" version="0.8" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6369">The allocation for the actor, in pixels
+
+This is property is read-only, but you might monitor it to know when an
+actor moves or resizes</doc>
+        <type name="ActorBox"/>
+      </property>
+      <property name="background-color"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7215">Paints a solid fill of the actor's allocation using the specified
+color.
+
+The #ClutterActor:background-color property is animatable.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="background-color-set"
+                version="1.10"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7201">Whether the #ClutterActor:background-color property has been set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="child-transform"
+                version="1.12"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6888">Applies a transformation matrix on each child of an actor.
+
+Setting this property with a #ClutterMatrix will set the
+#ClutterActor:child-transform-set property to %TRUE as a side effect;
+setting this property with %NULL will set the
+#ClutterActor:child-transform-set property to %FALSE.
+
+The #ClutterActor:child-transform property is animatable.</doc>
+        <type/>
+      </property>
+      <property name="child-transform-set"
+                version="1.12"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6911">Whether the #ClutterActor:child-transform property is set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="clip-rect"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6590">The visible region of the actor, in actor-relative coordinates,
+expressed as a #graphene_rect_t.
+
+Setting this property to %NULL will unset the existing clip.
+
+Setting this property will change the #ClutterActor:has-clip
+property as a side effect.</doc>
+        <type name="Graphene.Rect"/>
+      </property>
+      <property name="clip-to-allocation"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6943">Whether the clip region should track the allocated area
+of the actor.
+
+This property is ignored if a clip area has been explicitly
+set using clutter_actor_set_clip().</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="constraints"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7005">Adds a #ClutterConstraint to the actor</doc>
+        <type name="Constraint"/>
+      </property>
+      <property name="content"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7262">The #ClutterContent implementation that controls the content
+of the actor.</doc>
+        <type name="Content"/>
+      </property>
+      <property name="content-box" version="1.10" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7304">The bounding box for the #ClutterContent used by the actor.
+
+The value of this property is controlled by the #ClutterActor:allocation
+and #ClutterActor:content-gravity properties of #ClutterActor.
+
+The bounding box for the content is guaranteed to never exceed the
+allocation's of the actor.</doc>
+        <type name="ActorBox"/>
+      </property>
+      <property name="content-gravity"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7277">The alignment that should be honoured by the #ClutterContent
+set with the #ClutterActor:content property.
+
+Changing the value of this property will change the bounding box of
+the content; you can use the #ClutterActor:content-box property to
+get the position and size of the content within the actor's
+allocation.
+
+This property is meaningful only for #ClutterContent implementations
+that have a preferred size, and if the preferred size is smaller than
+the actor's allocation.
+
+The #ClutterActor:content-gravity property is animatable.</doc>
+        <type name="ContentGravity"/>
+      </property>
+      <property name="content-repeat"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7342">The repeat policy for the actor's #ClutterActor:content.</doc>
+        <type name="ContentRepeat"/>
+      </property>
+      <property name="effect"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7019">Adds #ClutterEffect to the list of effects be applied on a #ClutterActor</doc>
+        <type name="Effect"/>
+      </property>
+      <property name="first-child" version="1.10" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7234">The actor's first child.</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="fixed-position-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6217">This flag controls whether the #ClutterActor:fixed-x and
+#ClutterActor:fixed-y properties are used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="fixed-x"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6181">The fixed X position of the actor in pixels.
+
+Writing this property sets #ClutterActor:fixed-position-set
+property as well, as a side effect</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="fixed-y"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6199">The fixed Y position of the actor in pixels.
+
+Writing this property sets the #ClutterActor:fixed-position-set
+property as well, as a side effect</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="has-clip" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6578">Whether the actor has the #ClutterActor:clip property set or not</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="has-pointer" version="1.2" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6976">Whether the actor contains the pointer of a #ClutterInputDevice
+or not.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="height" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6141">Height of the actor (in pixels).  If written, forces the minimum and
+natural size request of the actor to the given height. If read, returns
+the allocated height if available, otherwise the height request.
+
+The #ClutterActor:height property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="last-child" version="1.10" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7248">The actor's last child.</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="layout-manager"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7033">A delegate object for controlling the layout of the children of
+an actor.</doc>
+        <type name="LayoutManager"/>
+      </property>
+      <property name="magnification-filter"
+                writable="1"
+                transfer-ownership="none">
+        <type name="ScalingFilter"/>
+      </property>
+      <property name="mapped" version="1.0" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6533">Whether the actor is mapped (will be painted when the stage
+to which it belongs is mapped)</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="margin-bottom"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7135">The margin (in pixels) from the bottom of the actor.
+
+This property adds a margin to the actor's preferred size; the margin
+will be automatically taken into account when allocating the actor.
+
+The #ClutterActor:margin-bottom property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="margin-left"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7157">The margin (in pixels) from the left of the actor.
+
+This property adds a margin to the actor's preferred size; the margin
+will be automatically taken into account when allocating the actor.
+
+The #ClutterActor:margin-left property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="margin-right"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7179">The margin (in pixels) from the right of the actor.
+
+This property adds a margin to the actor's preferred size; the margin
+will be automatically taken into account when allocating the actor.
+
+The #ClutterActor:margin-right property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="margin-top"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7113">The margin (in pixels) from the top of the actor.
+
+This property adds a margin to the actor's preferred size; the margin
+will be automatically taken into account when allocating the actor.
+
+The #ClutterActor:margin-top property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="min-height"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6252">A forced minimum height request for the actor, in pixels
+
+Writing this property sets the #ClutterActor:min-height-set property
+as well, as a side effect. This property overrides the usual height
+request of the actor.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="min-height-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6324">This flag controls whether the #ClutterActor:min-height property
+is used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="min-width"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6232">A forced minimum width request for the actor, in pixels
+
+Writing this property sets the #ClutterActor:min-width-set property
+as well, as a side effect.
+
+This property overrides the usual width request of the actor.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="min-width-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6309">This flag controls whether the #ClutterActor:min-width property
+is used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="minification-filter"
+                writable="1"
+                transfer-ownership="none">
+        <type name="ScalingFilter"/>
+      </property>
+      <property name="name"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6611">The name of the actor</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="natural-height"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6290">A forced natural height request for the actor, in pixels
+
+Writing this property sets the #ClutterActor:natural-height-set
+property as well, as a side effect. This property overrides the
+usual height request of the actor</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="natural-height-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6354">This flag controls whether the #ClutterActor:natural-height property
+is used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="natural-width"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6271">A forced natural width request for the actor, in pixels
+
+Writing this property sets the #ClutterActor:natural-width-set
+property as well, as a side effect. This property overrides the
+usual width request of the actor</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="natural-width-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6339">This flag controls whether the #ClutterActor:natural-width property
+is used</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="offscreen-redirect"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6500">Determines the conditions in which the actor will be redirected
+to an offscreen framebuffer while being painted. For example this
+can be used to cache an actor in a framebuffer or for improved
+handling of transparent actors. See
+clutter_actor_set_offscreen_redirect() for details.</doc>
+        <type name="OffscreenRedirect"/>
+      </property>
+      <property name="opacity" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6482">Opacity of an actor, between 0 (fully transparent) and
+255 (fully opaque)
+
+The #ClutterActor:opacity property is animatable.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="pivot-point"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6625">The point around which the scaling and rotation transformations occur.
+
+The pivot point is expressed in normalized coordinates space, with (0, 0)
+being the top left corner of the actor and (1, 1) the bottom right corner
+of the actor.
+
+The default pivot point is located at (0, 0).
+
+The #ClutterActor:pivot-point property is animatable.</doc>
+        <type name="Graphene.Point"/>
+      </property>
+      <property name="pivot-point-z"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6649">The Z component of the #ClutterActor:pivot-point, expressed as a value
+along the Z axis.
+
+The #ClutterActor:pivot-point-z property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="position"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6100">The position of the origin of the actor.
+
+This property is a shorthand for setting and getting the
+#ClutterActor:x and #ClutterActor:y properties at the same
+time.
+
+The #ClutterActor:position property is animatable.</doc>
+        <type name="Graphene.Point"/>
+      </property>
+      <property name="reactive"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6562">Whether the actor is reactive to events or not
+
+Only reactive actors will emit event-related signals</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="realized" version="1.0" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6548">Whether the actor has been realized</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="request-mode"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6388">Request mode for the #ClutterActor. The request mode determines the
+type of geometry management used by the actor, either height for width
+(the default) or width for height.
+
+For actors implementing height for width, the parent container should get
+the preferred width first, and then the preferred height for that width.
+
+For actors implementing width for height, the parent container should get
+the preferred height first, and then the preferred width for that height.
+
+For instance:
+
+|[&lt;!-- language="C" --&gt;
+  ClutterRequestMode mode;
+  gfloat natural_width, min_width;
+  gfloat natural_height, min_height;
+
+  mode = clutter_actor_get_request_mode (child);
+  if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
+    {
+      clutter_actor_get_preferred_width (child, -1,
+                                         &amp;min_width,
+                                         &amp;natural_width);
+      clutter_actor_get_preferred_height (child, natural_width,
+                                          &amp;min_height,
+                                          &amp;natural_height);
+    }
+  else if (mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT)
+    {
+      clutter_actor_get_preferred_height (child, -1,
+                                          &amp;min_height,
+                                          &amp;natural_height);
+      clutter_actor_get_preferred_width (child, natural_height,
+                                         &amp;min_width,
+                                         &amp;natural_width);
+    }
+  else if (mode == CLUTTER_REQUEST_CONTENT_SIZE)
+    {
+      ClutterContent *content = clutter_actor_get_content (child);
+
+      min_width, min_height = 0;
+      natural_width = natural_height = 0;
+
+      if (content != NULL)
+        clutter_content_get_preferred_size (content, &amp;natural_width, &amp;natural_height);
+    }
+]|
+
+will retrieve the minimum and natural width and height depending on the
+preferred request mode of the #ClutterActor "child".
+
+The clutter_actor_get_preferred_size() function will implement this
+check for you.</doc>
+        <type name="RequestMode"/>
+      </property>
+      <property name="rotation-angle-x"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6726">The rotation angle on the X axis.
+
+The #ClutterActor:rotation-angle-x property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="rotation-angle-y"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6745">The rotation angle on the Y axis
+
+The #ClutterActor:rotation-angle-y property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="rotation-angle-z"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6764">The rotation angle on the Z axis
+
+The #ClutterActor:rotation-angle-z property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="scale-x"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6669">The horizontal scale of the actor.
+
+The #ClutterActor:scale-x property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="scale-y"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6688">The vertical scale of the actor.
+
+The #ClutterActor:scale-y property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="scale-z"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6707">The scale factor of the actor along the Z axis.
+
+The #ClutterActor:scale-y property is animatable.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="show-on-set-parent"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6926">If %TRUE, the actor is automatically shown when parented.
+
+Calling clutter_actor_hide() on an actor which has not been
+parented will set this property to %FALSE as a side effect.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="size"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6160">The size of the actor.
+
+This property is a shorthand for setting and getting the
+#ClutterActor:width and #ClutterActor:height at the same time.
+
+The #ClutterActor:size property is animatable.</doc>
+        <type name="Graphene.Size"/>
+      </property>
+      <property name="text-direction"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6961">The direction of the text inside a #ClutterActor.</doc>
+        <type name="TextDirection"/>
+      </property>
+      <property name="transform"
+                version="1.12"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6843">Overrides the transformations of a #ClutterActor with a custom
+matrix.
+
+The matrix specified by the #ClutterActor:transform property is
+applied to the actor and its children relative to the actor's
+#ClutterActor:allocation and #ClutterActor:pivot-point.
+
+Application code should rarely need to use this function directly.
+
+Setting this property with a #ClutterMatrix will set the
+#ClutterActor:transform-set property to %TRUE as a side effect;
+setting this property with %NULL will set the
+#ClutterActor:transform-set property to %FALSE.
+
+The #ClutterActor:transform property is animatable.</doc>
+        <type/>
+      </property>
+      <property name="transform-set" version="1.12" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6873">Whether the #ClutterActor:transform property is set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="translation-x"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6783">An additional translation applied along the X axis, relative
+to the actor's #ClutterActor:pivot-point.
+
+The #ClutterActor:translation-x property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="translation-y"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6803">An additional translation applied along the Y axis, relative
+to the actor's #ClutterActor:pivot-point.
+
+The #ClutterActor:translation-y property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="translation-z"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6823">An additional translation applied along the Z axis, relative
+to the actor's #ClutterActor:pivot-point.
+
+The #ClutterActor:translation-z property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="visible" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6519">Whether the actor is set to be visible or not
+
+See also #ClutterActor:mapped</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="width" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6122">Width of the actor (in pixels). If written, forces the minimum and
+natural size request of the actor to the given width. If read, returns
+the allocated width if available, otherwise the width request.
+
+The #ClutterActor:width property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="x" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6062">X coordinate of the actor in pixels. If written, forces a fixed
+position for the actor. If read, returns the fixed position if any,
+otherwise the allocation if available, otherwise 0.
+
+The #ClutterActor:x property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="x-align"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7080">The alignment of an actor on the X axis, if the actor has been given
+extra space for its allocation. See also the #ClutterActor:x-expand
+property.</doc>
+        <type name="ActorAlign"/>
+      </property>
+      <property name="x-expand"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7048">Whether a layout manager should assign more space to the actor on
+the X axis.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="y" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6081">Y coordinate of the actor in pixels. If written, forces a fixed
+position for the actor.  If read, returns the fixed position if
+any, otherwise the allocation if available, otherwise 0.
+
+The #ClutterActor:y property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="y-align"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7097">The alignment of an actor on the Y axis, if the actor has been given
+extra space for its allocation.</doc>
+        <type name="ActorAlign"/>
+      </property>
+      <property name="y-expand"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7064">Whether a layout manager should assign more space to the actor on
+the Y axis.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="z-position"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="6455">The actor's position on the Z axis, relative to the parent's
+transformations.
+
+Positive values will bring the actor's position nearer to the user,
+whereas negative values will bring the actor's position farther from
+the user.
+
+The #ClutterActor:z-position does not affect the paint or allocation
+order.
+
+The #ClutterActor:z-position property is animatable.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="flags">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.h"
+             line="123">#ClutterActorFlags</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="private_flags" readable="0" private="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ActorPrivate" c:type="ClutterActorPrivate*"/>
+      </field>
+      <glib:signal name="button-press-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7559">The ::button-press-event signal is emitted each time a mouse button
+is pressed on @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7567">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7562">a #ClutterButtonEvent</doc>
+            <type name="ButtonEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="button-release-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7584">The ::button-release-event signal is emitted each time a mouse button
+is released on @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7592">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7587">a #ClutterButtonEvent</doc>
+            <type name="ButtonEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="captured-event"
+                   when="last"
+                   detailed="1"
+                   version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7793">The ::captured-event signal is emitted when an event is captured
+by Clutter. This signal will be emitted starting from the top-level
+container (the #ClutterStage) to the actor which received the event
+going down the hierarchy. This signal can be used to intercept every
+event before the specialized events (like
+ClutterActor::button-press-event or ::key-released-event) are
+emitted.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7806">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7796">a #ClutterEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="destroy"
+                   when="cleanup"
+                   no-recurse="1"
+                   no-hooks="1"
+                   version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7360">The ::destroy signal notifies that all references held on the
+actor which emitted it should be released.
+
+The ::destroy signal should be used by all holders of a reference
+on @actor.
+
+This signal might result in the finalization of the #ClutterActor
+if all references are released.
+
+Composite actors and actors implementing the #ClutterContainer
+interface should override the default implementation of the
+class handler of this signal and call clutter_actor_destroy() on
+their children. When overriding the default class handler, it is
+required to chain up to the parent's implementation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="enter-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7743">The ::enter-event signal is emitted when the pointer enters the @actor</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7750">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7746">a #ClutterCrossingEvent</doc>
+            <type name="CrossingEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7532">The ::event signal is emitted each time an event is received
+by the @actor. This signal will be emitted on every actor,
+following the hierarchy chain, until it reaches the top-level
+container (the #ClutterStage).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7542">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7535">a #ClutterEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="hide" when="first" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7404">The ::hide signal is emitted when an actor is no longer rendered
+on the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-focus-in" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7711">The ::key-focus-in signal is emitted when @actor receives key focus.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-focus-out" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7727">The ::key-focus-out signal is emitted when @actor loses key focus.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-press-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7634">The ::key-press-event signal is emitted each time a keyboard button
+is pressed while @actor has key focus (see clutter_stage_set_key_focus()).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7642">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7637">a #ClutterKeyEvent</doc>
+            <type name="KeyEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="key-release-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7659">The ::key-release-event signal is emitted each time a keyboard button
+is released while @actor has key focus (see
+clutter_stage_set_key_focus()).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7668">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7662">a #ClutterKeyEvent</doc>
+            <type name="KeyEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="leave-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7768">The ::leave-event signal is emitted when the pointer leaves the @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7775">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7771">a #ClutterCrossingEvent</doc>
+            <type name="CrossingEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="motion-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7685">The ::motion-event signal is emitted each time the mouse pointer is
+moved over @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7693">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7688">a #ClutterMotionEvent</doc>
+            <type name="MotionEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="paint"
+                   when="last"
+                   no-hooks="1"
+                   version="0.8"
+                   deprecated="1"
+                   deprecated-version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7824">The ::paint signal is emitted each time an actor is being painted.
+
+Subclasses of #ClutterActor should override the #ClutterActorClass.paint
+virtual function paint themselves in that function.
+
+It is strongly discouraged to connect a signal handler to
+the #ClutterActor::paint signal; if you want to change the paint
+sequence of an existing #ClutterActor instance, either create a new
+#ClutterActor class and override the #ClutterActorClass.paint virtual
+function, or use a #ClutterEffect. The #ClutterActor::paint signal
+will be removed in a future version of Clutter.</doc>
+        <doc-deprecated xml:space="preserve">Override the #ClutterActorClass.paint virtual
+  function, use a #ClutterContent implementation, or a #ClutterEffect
+  instead of connecting to this signal.</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="paint_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7827">a #ClutterPaintContext</doc>
+            <type name="PaintContext"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="parent-set" when="last" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7420">This signal is emitted when the parent of the actor changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_parent"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7423">the previous parent of the actor, or %NULL</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="pick"
+                   when="last"
+                   version="1.0"
+                   deprecated="1"
+                   deprecated-version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7896">The ::pick signal is emitted each time an actor is being painted
+in "pick mode". The pick mode is used to identify the actor during
+the event handling phase, or by clutter_stage_get_actor_at_pos().
+
+Subclasses of #ClutterActor should override the class signal handler
+and paint themselves in that function.
+
+It is possible to connect a handler to the ::pick signal in order
+to set up some custom aspect of a paint in pick mode.</doc>
+        <doc-deprecated xml:space="preserve">Override the #ClutterActorClass.pick virtual function
+  instead.</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pick_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7899">a #ClutterPickContext</doc>
+            <type name="PickContext"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="queue-redraw" when="last" no-hooks="1" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7438">The ::queue_redraw signal is emitted when clutter_actor_queue_redraw()
+is called on @origin.
+
+The default implementation for #ClutterActor chains up to the
+parent actor and queues a redraw on the parent, thus "bubbling"
+the redraw queue up through the actor graph. The default
+implementation for #ClutterStage queues a clutter_stage_ensure_redraw()
+in a main loop idle handler.
+
+Note that the @origin actor may be the stage, or a container; it
+does not have to be a leaf node in the actor graph.
+
+Toolkits embedding a #ClutterStage which require a redraw and
+relayout cycle can stop the emission of this signal using the
+GSignal API, redraw the UI and then call clutter_stage_ensure_redraw()
+themselves, like:
+
+|[&lt;!-- language="C" --&gt;
+  static void
+  on_redraw_complete (gpointer data)
+  {
+    ClutterStage *stage = data;
+
+    // execute the Clutter drawing pipeline
+    clutter_stage_ensure_redraw (stage);
+  }
+
+  static void
+  on_stage_queue_redraw (ClutterStage *stage)
+  {
+    // this prevents the default handler to run
+    g_signal_stop_emission_by_name (stage, "queue-redraw");
+
+    // queue a redraw with the host toolkit and call
+    // a function when the redraw has been completed
+    queue_a_redraw (G_CALLBACK (on_redraw_complete), stage);
+  }
+]|
+
+Note: This signal is emitted before the Clutter paint
+pipeline is executed. If you want to know when the pipeline has
+been completed you should use clutter_threads_add_repaint_func()
+or clutter_threads_add_repaint_func_full().</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="origin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7441">the actor which initiated the redraw request</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="volume" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7442">paint volume to redraw</doc>
+            <type name="PaintVolume"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="queue-relayout"
+                   when="last"
+                   no-hooks="1"
+                   version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7506">The ::queue_layout signal is emitted when clutter_actor_queue_relayout()
+is called on an actor.
+
+The default implementation for #ClutterActor chains up to the
+parent actor and queues a relayout on the parent, thus "bubbling"
+the relayout queue up through the actor graph.
+
+The main purpose of this signal is to allow relayout to be propagated
+properly in the procense of #ClutterClone actors. Applications will
+not normally need to connect to this signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="realize"
+                   when="last"
+                   version="0.8"
+                   deprecated="1"
+                   deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7857">The ::realize signal is emitted each time an actor is being
+realized.</doc>
+        <doc-deprecated xml:space="preserve">The signal should not be used in newly
+  written code</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="resource-scale-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="8016">The ::resource-scale-changed signal is emitted when the resource scale
+value returned by clutter_actor_get_resource_scale() changes.
+
+This signal can be used to get notified about the correct resource scale
+when the scale had to be queried outside of the paint cycle.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="scroll-event" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7609">The ::scroll-event signal is emitted each time the mouse is
+scrolled on @actor</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7617">%TRUE if the event has been handled by the actor,
+  or %FALSE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7612">a #ClutterScrollEvent</doc>
+            <type name="ScrollEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show" when="first" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7388">The ::show signal is emitted when an actor is visible and
+rendered on the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="stage-views-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7996">The ::stage-views-changed signal is emitted when the position or
+size an actor is being painted at have changed so that it's visible
+on different stage views.
+
+This signal is also emitted when the actor gets detached from the stage
+or when the views of the stage have been invalidated and will be
+replaced; it's not emitted when the actor gets hidden.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="touch-event" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7970">The ::touch-event signal is emitted each time a touch
+begin/end/update/cancel event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="7978">%CLUTTER_EVENT_STOP if the event has been handled by
+  the actor, or %CLUTTER_EVENT_PROPAGATE to continue the emission.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7973">a #ClutterEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="transition-stopped"
+                   when="last"
+                   no-recurse="1"
+                   detailed="1"
+                   no-hooks="1"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7941">The ::transition-stopped signal is emitted once a transition
+is stopped; a transition is stopped once it reached its total
+duration (including eventual repeats), it has been stopped
+using clutter_timeline_stop(), or it has been removed from the
+transitions applied on @actor, using clutter_actor_remove_transition().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7944">the name of the transition</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="is_finished" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="7945">whether the transition was finished, or stopped</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="transitions-completed" when="last" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7924">The ::transitions-completed signal is emitted once all transitions
+involving @actor are complete.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unrealize"
+                   when="last"
+                   version="0.8"
+                   deprecated="1"
+                   deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="7876">The ::unrealize signal is emitted each time an actor is being
+unrealized.</doc>
+        <doc-deprecated xml:space="preserve">The signal should not be used in newly
+  written code</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <enumeration name="ActorAlign"
+                 version="1.10"
+                 glib:type-name="ClutterActorAlign"
+                 glib:get-type="clutter_actor_align_get_type"
+                 c:type="ClutterActorAlign">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1287">Controls how a #ClutterActor should align itself inside the extra space
+assigned to it during the allocation.
+
+Alignment only matters if the allocated space given to an actor is
+bigger than its natural size; for example, when the #ClutterActor:x-expand
+or the #ClutterActor:y-expand properties of #ClutterActor are set to %TRUE.</doc>
+      <member name="fill"
+              value="0"
+              c:identifier="CLUTTER_ACTOR_ALIGN_FILL"
+              glib:nick="fill">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1289">Stretch to cover the whole allocated space</doc>
+      </member>
+      <member name="start"
+              value="1"
+              c:identifier="CLUTTER_ACTOR_ALIGN_START"
+              glib:nick="start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1290">Snap to left or top side, leaving space
+  to the right or bottom. For horizontal layouts, in right-to-left
+  locales this should be reversed.</doc>
+      </member>
+      <member name="center"
+              value="2"
+              c:identifier="CLUTTER_ACTOR_ALIGN_CENTER"
+              glib:nick="center">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1293">Center the actor inside the allocation</doc>
+      </member>
+      <member name="end"
+              value="3"
+              c:identifier="CLUTTER_ACTOR_ALIGN_END"
+              glib:nick="end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1294">Snap to right or bottom side, leaving space
+  to the left or top. For horizontal layouts, in right-to-left locales
+  this should be reversed.</doc>
+      </member>
+    </enumeration>
+    <record name="ActorBox"
+            c:type="ClutterActorBox"
+            glib:type-name="ClutterActorBox"
+            glib:get-type="clutter_actor_box_get_type"
+            c:symbol-prefix="actor_box">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="126">Bounding box of an actor. The coordinates of the top left and right bottom
+corners of an actor. The coordinates of the two points are expressed in
+pixels with sub-pixel precision</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="144"/>
+      <field name="x1" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="128">X coordinate of the top left corner</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y1" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="129">Y coordinate of the top left corner</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="x2" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="130">X coordinate of the bottom right corner</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y2" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="131">Y coordinate of the bottom right corner</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="clutter_actor_box_new"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="10">Allocates a new #ClutterActorBox using the passed coordinates
+for the top left and bottom right points.
+
+This function is the logical equivalent of:
+
+|[
+  clutter_actor_box_init (clutter_actor_box_alloc (),
+                          x_1, y_1,
+                          x_2, y_2);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="195"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="28">the newly allocated #ClutterActorBox.
+  Use clutter_actor_box_free() to free the resources</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="12">X coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="13">Y coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="14">X coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="15">Y coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="clamp_to_pixel"
+              c:identifier="clutter_actor_box_clamp_to_pixel"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="436">Clamps the components of @box to the nearest integer</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="251"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box"
+                              direction="inout"
+                              caller-allocates="0"
+                              transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="438">the #ClutterActorBox to clamp</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="contains"
+              c:identifier="clutter_actor_box_contains"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="316">Checks whether a point with @x, @y coordinates is contained
+within @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="239"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="325">%TRUE if the point is contained by the #ClutterActorBox</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="318">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="319">X coordinate of the point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="320">Y coordinate of the point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="clutter_actor_box_copy" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="118">Copies @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="214"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="124">a newly allocated copy of #ClutterActorBox. Use
+  clutter_actor_box_free() to free the allocated resources</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="120">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="equal"
+              c:identifier="clutter_actor_box_equal"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="154">Checks @box_a and @box_b for equality</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="218"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="161">%TRUE if the passed #ClutterActorBox are equal</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box_a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="156">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="box_b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="157">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_actor_box_free" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="138">Frees a #ClutterActorBox allocated using clutter_actor_box_new()
+or clutter_actor_box_copy()</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="216"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="140">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="from_vertices"
+              c:identifier="clutter_actor_box_from_vertices"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="340">Calculates the bounding box represented by the four vertices; for details
+of the vertex array see clutter_actor_get_abs_allocation_vertices().</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="243"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="342">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="verts" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="343">array of four #graphene_point3d_t</doc>
+            <array zero-terminated="0"
+                   c:type="const graphene_point3d_t*"
+                   fixed-size="4">
+              <type name="Graphene.Point3D" c:type="graphene_point3d_t"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_area"
+              c:identifier="clutter_actor_box_get_area"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="298">Retrieves the area of @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="237"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="304">the area of a #ClutterActorBox, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="300">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_height"
+              c:identifier="clutter_actor_box_get_height"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="232">Retrieves the height of the @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="227"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="238">the height of the box</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="234">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_origin"
+              c:identifier="clutter_actor_box_get_origin"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="250">Retrieves the origin of @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="229"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="252">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="253">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="254">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="clutter_actor_box_get_size"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="274">Retrieves the size of @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="233"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="276">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="277">return location for the width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="278">return location for the height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="clutter_actor_box_get_width"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="214">Retrieves the width of the @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="225"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="220">the width of the box</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="216">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_x"
+              c:identifier="clutter_actor_box_get_x"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="178">Retrieves the X coordinate of the origin of @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="221"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="184">the X coordinate of the origin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="180">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_y"
+              c:identifier="clutter_actor_box_get_y"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="196">Retrieves the Y coordinate of the origin of @box</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="223"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="202">the Y coordinate of the origin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="198">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="init" c:identifier="clutter_actor_box_init" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="60">Initializes @box with the given coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="202"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="70">the initialized #ClutterActorBox</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="62">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="63">X coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="64">Y coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="65">X coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="66">Y coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_rect"
+              c:identifier="clutter_actor_box_init_rect"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="91">Initializes @box with the given origin and size.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="208"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="93">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="94">X coordinate of the origin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="95">Y coordinate of the origin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="96">width of the box</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="97">height of the box</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="interpolate"
+              c:identifier="clutter_actor_box_interpolate"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="408">Interpolates between @initial and @final #ClutterActorBox&lt;!-- --&gt;es
+using @progress</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="246"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="initial" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="410">the initial #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="411">the final #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="412">the interpolation progress</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="413">return location for the interpolation</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_initialized"
+              c:identifier="clutter_actor_box_is_initialized">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="618">Checks if @box has been initialized, a #ClutterActorBox is uninitialized
+if it has a size of -1 at an origin of 0, 0.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="271"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="625">%TRUE if the box is uninitialized, %FALSE if it isn't</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="620">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="scale"
+              c:identifier="clutter_actor_box_scale"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="597">Rescale the @box by provided @scale factor.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="267"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="599">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="scale" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="600">scale factor for resizing this box</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_origin"
+              c:identifier="clutter_actor_box_set_origin"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="500">Changes the origin of @box, maintaining the size of the #ClutterActorBox.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="258"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="502">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="503">the X coordinate of the new origin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="504">the Y coordinate of the new origin</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_size"
+              c:identifier="clutter_actor_box_set_size"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="525">Sets the size of @box, maintaining the origin of the #ClutterActorBox.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="262"/>
+        <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="../clutter/clutter/clutter-actor-box.c"
+                 line="527">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="528">the new width</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="529">the new height</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union"
+              c:identifier="clutter_actor_box_union"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="455">Unions the two boxes @a and @b and stores the result in @result.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="253"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="457">the first #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="458">the second #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-box.c"
+                 line="459">the #ClutterActorBox representing a union
+  of @a and @b</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <function name="alloc"
+                c:identifier="clutter_actor_box_alloc"
+                version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="44">Allocates a new #ClutterActorBox.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="200"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-box.c"
+               line="49">the newly allocated #ClutterActorBox.
+  Use clutter_actor_box_free() to free its resources</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+      </function>
+    </record>
+    <record name="ActorClass"
+            c:type="ClutterActorClass"
+            glib:is-gtype-struct-for="Actor">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="141">Base class for actors.</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="309"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="show">
+        <callback name="show">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="226"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="1856">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide">
+        <callback name="hide">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="227"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="1951">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_all">
+        <callback name="hide_all">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="228"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="realize">
+        <callback name="realize">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="229"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="2013">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unrealize">
+        <callback name="unrealize">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="230"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="2122">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="map">
+        <callback name="map">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="231"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="1652">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unmap">
+        <callback name="unmap">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="232"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="1764">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint">
+        <callback name="paint">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="233"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="3732">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parent_set">
+        <callback name="parent_set">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="235"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="old_parent" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy">
+        <callback name="destroy">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="238"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="8110">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pick">
+        <callback name="pick">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="239"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="4039">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="pick_context" transfer-ownership="none">
+              <type name="PickContext" c:type="ClutterPickContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="queue_redraw">
+        <callback name="queue_redraw">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="242"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="leaf_that_queued" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="paint_volume" transfer-ownership="none">
+              <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_width">
+        <callback name="get_preferred_width">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="247"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="8944">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="for_height" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="8945">available height when computing the preferred width,
+  or a negative value to indicate that no height is defined</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="8947">return location for minimum width,
+  or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="8949">return location for the natural
+  width, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_height">
+        <callback name="get_preferred_height">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="251"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="9110">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="for_width" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="9111">available width to assume in computing desired height,
+  or a negative value to indicate that no width is defined</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="9113">return location for minimum height,
+  or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="9115">return location for natural
+  height, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="allocate">
+        <callback name="allocate">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="255"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="9504">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="box" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="9505">new allocation of the actor, in parent-relative coordinates</doc>
+              <type name="ActorBox" c:type="const ClutterActorBox*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="apply_transform">
+        <callback name="apply_transform">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="259"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="matrix" transfer-ownership="none">
+              <type name="Matrix" c:type="ClutterMatrix*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="event">
+        <callback name="event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="263"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="button_press_event">
+        <callback name="button_press_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="265"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="button_release_event">
+        <callback name="button_release_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="267"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_event">
+        <callback name="scroll_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="269"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ScrollEvent" c:type="ClutterScrollEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_press_event">
+        <callback name="key_press_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="271"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_release_event">
+        <callback name="key_release_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="273"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="motion_event">
+        <callback name="motion_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="275"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="MotionEvent" c:type="ClutterMotionEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="enter_event">
+        <callback name="enter_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="277"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="leave_event">
+        <callback name="leave_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="279"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="captured_event">
+        <callback name="captured_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="281"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_focus_in">
+        <callback name="key_focus_in">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="283"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_focus_out">
+        <callback name="key_focus_out">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="284"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="queue_relayout">
+        <callback name="queue_relayout">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="286"/>
+          <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="../clutter/clutter/clutter-actor.c"
+                   line="8553">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_accessible">
+        <callback name="get_accessible">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="289"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="5736">the #AtkObject associated with @actor</doc>
+            <type name="Atk.Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="5721">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_paint_volume">
+        <callback name="get_paint_volume">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="291"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="volume" transfer-ownership="none">
+              <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="has_overlaps">
+        <callback name="has_overlaps">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="294"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="16448">%TRUE if the actor may have overlapping primitives, and
+  %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor.c"
+                   line="16435">A #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint_node">
+        <callback name="paint_node">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="296"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="root" transfer-ownership="none">
+              <type name="PaintNode" c:type="ClutterPaintNode*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="touch_event">
+        <callback name="touch_event">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="299"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="TouchEvent" c:type="ClutterTouchEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="has_accessible">
+        <callback name="has_accessible">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="301"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="resource_scale_changed">
+        <callback name="resource_scale_changed">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="302"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="calculate_resource_scale">
+        <callback name="calculate_resource_scale">
+          <source-position filename="../clutter/clutter/clutter-actor.h"
+                           line="303"/>
+          <return-value transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="phase" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="25">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <callback name="ActorCreateChildFunc"
+              c:type="ClutterActorCreateChildFunc"
+              version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="895">Creates a #ClutterActor using the @item in the model.
+
+The usual way to implement this function is to create a #ClutterActor
+instance and then bind the #GObject properties to the actor properties
+of interest, using g_object_bind_property(). This way, when the @item
+in the #GListModel changes, the #ClutterActor changes as well.</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="911"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.h"
+             line="907">The newly created child #ClutterActor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="item" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="897">the item in the model</doc>
+          <type name="GObject.Object" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="898">Data passed to clutter_actor_bind_model()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="ActorFlags"
+              glib:type-name="ClutterActorFlags"
+              glib:get-type="clutter_actor_flags_get_type"
+              c:type="ClutterActorFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="510">Flags used to signal the state of an actor.</doc>
+      <member name="mapped"
+              value="2"
+              c:identifier="CLUTTER_ACTOR_MAPPED"
+              glib:nick="mapped">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="512">the actor will be painted (is visible, and inside
+  a toplevel, and all parents visible)</doc>
+      </member>
+      <member name="realized"
+              value="4"
+              c:identifier="CLUTTER_ACTOR_REALIZED"
+              glib:nick="realized">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="514">the resources associated to the actor have been
+  allocated</doc>
+      </member>
+      <member name="reactive"
+              value="8"
+              c:identifier="CLUTTER_ACTOR_REACTIVE"
+              glib:nick="reactive">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="516">the actor 'reacts' to mouse events emitting event
+  signals</doc>
+      </member>
+      <member name="visible"
+              value="16"
+              c:identifier="CLUTTER_ACTOR_VISIBLE"
+              glib:nick="visible">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="518">the actor has been shown by the application program</doc>
+      </member>
+      <member name="no_layout"
+              value="32"
+              c:identifier="CLUTTER_ACTOR_NO_LAYOUT"
+              glib:nick="no-layout">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="519">the actor provides an explicit layout management
+  policy for its children; this flag will prevent Clutter from automatic
+  queueing of relayout and will defer all layouting to the actor itself</doc>
+      </member>
+    </bitfield>
+    <record name="ActorIter" c:type="ClutterActorIter" version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="311">An iterator structure that allows to efficiently iterate over a
+section of the scene graph.
+
+The contents of the #ClutterActorIter structure
+are private and should only be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="330"/>
+      <field name="dummy1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="dummy2" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="dummy3" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <field name="dummy4" readable="0" private="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="dummy5" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <method name="destroy"
+              c:identifier="clutter_actor_iter_destroy"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17678">Safely destroys the #ClutterActor currently pointer to by the iterator
+from its parent.
+
+This function can only be called after clutter_actor_iter_next() or
+clutter_actor_iter_prev() returned %TRUE, and cannot be called more
+than once for the same actor.
+
+This function will call clutter_actor_destroy() internally.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="752"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17680">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="ClutterActorIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="init"
+              c:identifier="clutter_actor_iter_init"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17489">Initializes a #ClutterActorIter, which can then be used to iterate
+efficiently over a section of the scene graph, and associates it
+with @root.
+
+Modifying the scene graph section that contains @root will invalidate
+the iterator.
+
+|[&lt;!-- language="C" --&gt;
+  ClutterActorIter iter;
+  ClutterActor *child;
+
+  clutter_actor_iter_init (&amp;iter, container);
+  while (clutter_actor_iter_next (&amp;iter, &amp;child))
+    {
+      // do something with child
+    }
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="741"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17491">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="ClutterActorIter*"/>
+          </instance-parameter>
+          <parameter name="root" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17492">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_valid"
+              c:identifier="clutter_actor_iter_is_valid"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17528">Checks whether a #ClutterActorIter is still valid.
+
+An iterator is considered valid if it has been initialized, and
+if the #ClutterActor that it refers to hasn't been modified after
+the initialization.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="754"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17538">%TRUE if the iterator is valid, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17530">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="const ClutterActorIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="next"
+              c:identifier="clutter_actor_iter_next"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17555">Advances the @iter and retrieves the next child of the root #ClutterActor
+that was used to initialize the #ClutterActorIterator.
+
+If the iterator can advance, this function returns %TRUE and sets the
+@child argument.
+
+If the iterator cannot advance, this function returns %FALSE, and
+the contents of @child are undefined.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="744"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17569">%TRUE if the iterator could advance, and %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17557">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="ClutterActorIter*"/>
+          </instance-parameter>
+          <parameter name="child"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17558">return location for a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="prev"
+              c:identifier="clutter_actor_iter_prev"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17596">Advances the @iter and retrieves the previous child of the root
+#ClutterActor that was used to initialize the #ClutterActorIterator.
+
+If the iterator can advance, this function returns %TRUE and sets the
+@child argument.
+
+If the iterator cannot advance, this function returns %FALSE, and
+the contents of @child are undefined.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="747"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.c"
+               line="17610">%TRUE if the iterator could advance, and %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17598">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="ClutterActorIter*"/>
+          </instance-parameter>
+          <parameter name="child"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17599">return location for a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="clutter_actor_iter_remove"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor.c"
+             line="17637">Safely removes the #ClutterActor currently pointer to by the iterator
+from its parent.
+
+This function can only be called after clutter_actor_iter_next() or
+clutter_actor_iter_prev() returned %TRUE, and cannot be called more
+than once for the same actor.
+
+This function will call clutter_actor_remove_child() internally.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor.h"
+                         line="750"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="iter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor.c"
+                 line="17639">a #ClutterActorIter</doc>
+            <type name="ActorIter" c:type="ClutterActorIter*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="ActorMeta"
+           c:symbol-prefix="actor_meta"
+           c:type="ClutterActorMeta"
+           parent="GObject.InitiallyUnowned"
+           abstract="1"
+           glib:type-name="ClutterActorMeta"
+           glib:get-type="clutter_actor_meta_get_type"
+           glib:type-struct="ActorMetaClass">
+      <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                       line="82"/>
+      <virtual-method name="set_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.h"
+             line="61">Virtual function, called when @meta is attached or detached
+from a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.h"
+                 line="63">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+          <parameter name="actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.h"
+                 line="64">the actor attached to @meta, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_enabled" invoker="set_enabled" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="319">Sets whether @meta should be enabled or not</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="72"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="321">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+          <parameter name="is_enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="322">whether @meta is enabled</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_actor"
+              c:identifier="clutter_actor_meta_get_actor"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="387">Retrieves a pointer to the #ClutterActor that owns @meta</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-meta.c"
+               line="393">a pointer to a #ClutterActor or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="389">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_enabled"
+              c:identifier="clutter_actor_meta_get_enabled"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="345">Retrieves whether @meta is enabled</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-meta.c"
+               line="351">%TRUE if the #ClutterActorMeta instance is enabled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="347">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name"
+              c:identifier="clutter_actor_meta_get_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="294">Retrieves the name set using clutter_actor_meta_set_name()</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="88"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor-meta.c"
+               line="300">the name of the #ClutterActorMeta
+  instance, or %NULL if none was set. The returned string is owned
+  by the #ClutterActorMeta instance and it should not be modified
+  or freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="296">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_enabled"
+              c:identifier="clutter_actor_meta_set_enabled"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="319">Sets whether @meta should be enabled or not</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="321">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+          <parameter name="is_enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="322">whether @meta is enabled</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name"
+              c:identifier="clutter_actor_meta_set_name"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="264">Sets the name of @meta
+
+The name can be used to identify the #ClutterActorMeta instance</doc>
+        <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="meta" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="266">a #ClutterActorMeta</doc>
+            <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-actor-meta.c"
+                 line="267">the name of @meta</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="actor" version="1.4" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="204">The #ClutterActor attached to the #ClutterActorMeta instance</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="enabled"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="232">Whether or not the #ClutterActorMeta is enabled</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="name"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-meta.c"
+             line="218">The unique name to access the #ClutterActorMeta</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+    </class>
+    <record name="ActorMetaClass"
+            c:type="ClutterActorMetaClass"
+            glib:is-gtype-struct-for="ActorMeta"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor-meta.h"
+           line="44">The #ClutterActorMetaClass structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                       line="82"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="set_actor">
+        <callback name="set_actor">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="69"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="meta" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor-meta.h"
+                   line="63">a #ClutterActorMeta</doc>
+              <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+            </parameter>
+            <parameter name="actor"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor-meta.h"
+                   line="64">the actor attached to @meta, or %NULL</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_enabled">
+        <callback name="set_enabled">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="72"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="meta" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor-meta.c"
+                   line="321">a #ClutterActorMeta</doc>
+              <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+            </parameter>
+            <parameter name="is_enabled" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-actor-meta.c"
+                   line="322">whether @meta is enabled</doc>
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_meta1" introspectable="0">
+        <callback name="_clutter_meta1">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="76"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta2" introspectable="0">
+        <callback name="_clutter_meta2">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="77"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta3" introspectable="0">
+        <callback name="_clutter_meta3">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta4" introspectable="0">
+        <callback name="_clutter_meta4">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta5" introspectable="0">
+        <callback name="_clutter_meta5">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta6" introspectable="0">
+        <callback name="_clutter_meta6">
+          <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                           line="81"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ActorMetaPrivate"
+            c:type="ClutterActorMetaPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-actor-meta.h"
+                       line="42"/>
+    </record>
+    <class name="ActorNode"
+           c:symbol-prefix="actor_node"
+           c:type="ClutterActorNode"
+           parent="PaintNode"
+           glib:type-name="ClutterActorNode"
+           glib:get-type="clutter_actor_node_get_type"
+           glib:type-struct="ActorNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="150">The #ClutterActorNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="157"/>
+      <constructor name="new" c:identifier="clutter_actor_node_new">
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="163"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="ActorNodeClass"
+            c:type="ClutterActorNodeClass"
+            glib:is-gtype-struct-for="ActorNode">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="157"/>
+    </record>
+    <record name="ActorPrivate" c:type="ClutterActorPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="101"/>
+    </record>
+    <enumeration name="AlignAxis"
+                 version="1.4"
+                 glib:type-name="ClutterAlignAxis"
+                 glib:get-type="clutter_align_axis_get_type"
+                 c:type="ClutterAlignAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="557">Specifies the axis on which #ClutterAlignConstraint should maintain
+the alignment.</doc>
+      <member name="x_axis"
+              value="0"
+              c:identifier="CLUTTER_ALIGN_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="559">Maintain the alignment on the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="1"
+              c:identifier="CLUTTER_ALIGN_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="560">Maintain the alignment on the Y axis</doc>
+      </member>
+      <member name="both"
+              value="2"
+              c:identifier="CLUTTER_ALIGN_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="561">Maintain the alignment on both the X and Y axis</doc>
+      </member>
+    </enumeration>
+    <class name="AlignConstraint"
+           c:symbol-prefix="align_constraint"
+           c:type="ClutterAlignConstraint"
+           version="1.4"
+           parent="Constraint"
+           glib:type-name="ClutterAlignConstraint"
+           glib:get-type="clutter_align_constraint_get_type"
+           glib:type-struct="AlignConstraintClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-align-constraint.h"
+           line="40">#ClutterAlignConstraint is an opaque structure
+whose members cannot be directly accesses</doc>
+      <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_align_constraint_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="378">Creates a new constraint, aligning a #ClutterActor's position with
+regards of the size of the actor to @source, with the given
+alignment @factor</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-align-constraint.c"
+               line="389">the newly created #ClutterAlignConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="380">the #ClutterActor to use as the source of the
+  alignment, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="382">the axis to be used to compute the alignment</doc>
+            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+          </parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="383">the alignment factor, between 0.0 and 1.0</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_align_axis"
+              c:identifier="clutter_align_constraint_get_align_axis"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="518">Retrieves the value set using clutter_align_constraint_set_align_axis()</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-align-constraint.c"
+               line="524">the alignment axis</doc>
+          <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="520">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_factor"
+              c:identifier="clutter_align_constraint_get_factor"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="624">Retrieves the factor set using clutter_align_constraint_set_factor()</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-align-constraint.c"
+               line="630">the alignment factor</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="626">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pivot_point"
+              c:identifier="clutter_align_constraint_get_pivot_point">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="572">Gets the pivot point used by the constraint set with
+clutter_align_constraint_set_pivot_point(). If no custom pivot
+point is set, -1 is set.</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="574">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+          <parameter name="pivot_point"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="575">return location for a #GraphenePoint</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_align_constraint_get_source"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="473">Retrieves the source of the alignment</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-align-constraint.c"
+               line="479">the #ClutterActor used as the source
+  of the alignment</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="475">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_align_axis"
+              c:identifier="clutter_align_constraint_set_align_axis"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="492">Sets the axis to which the alignment refers to</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="494">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="495">the axis to which the alignment refers to</doc>
+            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_factor"
+              c:identifier="clutter_align_constraint_set_factor"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="591">Sets the alignment factor of the constraint
+
+The factor depends on the #ClutterAlignConstraint:align-axis property
+and it is a value between 0.0 (meaning left, when
+#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
+meaning top, when #ClutterAlignConstraint:align-axis is set to
+%CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when
+#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
+meaning bottom, when #ClutterAlignConstraint:align-axis is set to
+%CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either
+cases</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="593">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="594">the alignment factor, between 0.0 and 1.0</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pivot_point"
+              c:identifier="clutter_align_constraint_set_pivot_point">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="537">Sets the pivot point used by the constraint, the pivot point is the
+point in the constraint actor around which the aligning is applied,
+with (0, 0) being the top left corner of the actor and (1, 1) the
+bottom right corner of the actor.
+
+If -1 is used, the pivot point is unset and the constrained actor
+will be aligned to always stay inside the source actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="539">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+          <parameter name="pivot_point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="540">A #GraphenePoint</doc>
+            <type name="Graphene.Point" c:type="const graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_align_constraint_set_source"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="407">Sets the source of the alignment constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="409">a #ClutterAlignConstraint</doc>
+            <type name="AlignConstraint" c:type="ClutterAlignConstraint*"/>
+          </instance-parameter>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-align-constraint.c"
+                 line="410">a #ClutterActor, or %NULL to unset the source</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="align-axis"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="302">The axis to be used to compute the alignment</doc>
+        <type name="AlignAxis"/>
+      </property>
+      <property name="factor"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="341">The alignment factor, as a normalized value between 0.0 and 1.0
+
+The factor depends on the #ClutterAlignConstraint:align-axis property:
+with an align-axis value of %CLUTTER_ALIGN_X_AXIS, 0.0 means left and
+1.0 means right; with a value of %CLUTTER_ALIGN_Y_AXIS, 0.0 means top
+and 1.0 means bottom.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="pivot-point" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="317">The pivot point used by the constraint. The pivot point is the
+point in the constraint actor around which the aligning is applied,
+with (0, 0) being the top left corner of the actor and (1, 1) the
+bottom right corner of the actor.
+
+For example, setting the pivot point to (0.5, 0.5) and using a factor
+of 1 for both axes will align the actors horizontal and vertical
+center point with the bottom right corner of the source actor.
+
+By default, the pivot point is set to (-1, -1), which means it's not
+used and the constrained actor will be aligned to always stay inside
+the source actor.</doc>
+        <type name="Graphene.Point"/>
+      </property>
+      <property name="source"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-align-constraint.c"
+             line="285">The #ClutterActor used as the source for the alignment.
+
+The #ClutterActor must not be a child or a grandchild of the actor
+using the constraint.</doc>
+        <type name="Actor"/>
+      </property>
+    </class>
+    <record name="AlignConstraintClass"
+            c:type="ClutterAlignConstraintClass"
+            disguised="1"
+            glib:is-gtype-struct-for="AlignConstraint">
+      <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                       line="49"/>
+    </record>
+    <interface name="Animatable"
+               c:symbol-prefix="animatable"
+               c:type="ClutterAnimatable"
+               glib:type-name="ClutterAnimatable"
+               glib:get-type="clutter_animatable_get_type"
+               glib:type-struct="AnimatableInterface">
+      <source-position filename="../clutter/clutter/clutter-animatable.h"
+                       line="77"/>
+      <virtual-method name="find_property"
+                      invoker="find_property"
+                      version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="54">Finds the #GParamSpec for @property_name</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="61">The #GParamSpec for the given property
+  or %NULL</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="56">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="57">the name of the animatable property to find</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_actor" invoker="get_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="198">Get animated actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="204">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="200">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_initial_state"
+                      invoker="get_initial_state"
+                      version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="85">Retrieves the current state of @property_name and sets @value with it</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="87">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="88">the name of the animatable property to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="89">a #GValue initialized to the type of the property to retrieve</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="interpolate_value"
+                      invoker="interpolate_value"
+                      version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="143">Asks a #ClutterAnimatable implementation to interpolate a
+a named property between the initial and final values of
+a #ClutterInterval, using @progress as the interpolation
+value, and store the result inside @value.
+
+This function should be used for every property animation
+involving #ClutterAnimatable&lt;!-- --&gt;s.
+
+This function replaces clutter_animatable_animate_property().</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="163">%TRUE if the interpolation was successful,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="145">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="146">the name of the property to interpolate</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="147">a #ClutterInterval with the animation range</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="148">the progress to use to interpolate between the
+  initial and final values of the @interval</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="150">return location for an initialized #GValue
+  using the same type of the @interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_final_state"
+                      invoker="set_final_state"
+                      version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="114">Sets the current state of @property_name to @value</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="116">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="117">the name of the animatable property to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="118">the value of the animatable property to set</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="find_property"
+              c:identifier="clutter_animatable_find_property"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="54">Finds the #GParamSpec for @property_name</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="61">The #GParamSpec for the given property
+  or %NULL</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="56">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="57">the name of the animatable property to find</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actor" c:identifier="clutter_animatable_get_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="198">Get animated actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="204">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="200">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_initial_state"
+              c:identifier="clutter_animatable_get_initial_state"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="85">Retrieves the current state of @property_name and sets @value with it</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="87">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="88">the name of the animatable property to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="89">a #GValue initialized to the type of the property to retrieve</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="interpolate_value"
+              c:identifier="clutter_animatable_interpolate_value"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="143">Asks a #ClutterAnimatable implementation to interpolate a
+a named property between the initial and final values of
+a #ClutterInterval, using @progress as the interpolation
+value, and store the result inside @value.
+
+This function should be used for every property animation
+involving #ClutterAnimatable&lt;!-- --&gt;s.
+
+This function replaces clutter_animatable_animate_property().</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="91"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-animatable.c"
+               line="163">%TRUE if the interpolation was successful,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="145">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="146">the name of the property to interpolate</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="147">a #ClutterInterval with the animation range</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="148">the progress to use to interpolate between the
+  initial and final values of the @interval</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="150">return location for an initialized #GValue
+  using the same type of the @interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_final_state"
+              c:identifier="clutter_animatable_set_final_state"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-animatable.c"
+             line="114">Sets the current state of @property_name to @value</doc>
+        <source-position filename="../clutter/clutter/clutter-animatable.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="animatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="116">a #ClutterAnimatable</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="117">the name of the animatable property to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="118">the value of the animatable property to set</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="AnimatableInterface"
+            c:type="ClutterAnimatableInterface"
+            glib:is-gtype-struct-for="Animatable"
+            version="1.0">
+      <source-position filename="../clutter/clutter/clutter-animatable.h"
+                       line="77"/>
+      <field name="parent_iface" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="find_property">
+        <callback name="find_property">
+          <source-position filename="../clutter/clutter/clutter-animatable.h"
+                           line="63"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="61">The #GParamSpec for the given property
+  or %NULL</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="56">a #ClutterAnimatable</doc>
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="57">the name of the animatable property to find</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_initial_state">
+        <callback name="get_initial_state">
+          <source-position filename="../clutter/clutter/clutter-animatable.h"
+                           line="65"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="87">a #ClutterAnimatable</doc>
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="88">the name of the animatable property to retrieve</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="89">a #GValue initialized to the type of the property to retrieve</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_final_state">
+        <callback name="set_final_state">
+          <source-position filename="../clutter/clutter/clutter-animatable.h"
+                           line="68"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="116">a #ClutterAnimatable</doc>
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="117">the name of the animatable property to set</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="118">the value of the animatable property to set</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="interpolate_value">
+        <callback name="interpolate_value">
+          <source-position filename="../clutter/clutter/clutter-animatable.h"
+                           line="71"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="163">%TRUE if the interpolation was successful,
+  and %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="145">a #ClutterAnimatable</doc>
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="146">the name of the property to interpolate</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="interval" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="147">a #ClutterInterval with the animation range</doc>
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="progress" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="148">the progress to use to interpolate between the
+  initial and final values of the @interval</doc>
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="150">return location for an initialized #GValue
+  using the same type of the @interval</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_actor">
+        <callback name="get_actor">
+          <source-position filename="../clutter/clutter/clutter-animatable.h"
+                           line="76"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-animatable.c"
+                 line="204">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-animatable.c"
+                   line="200">a #ClutterAnimatable</doc>
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="AnimationMode"
+                 version="1.0"
+                 glib:type-name="ClutterAnimationMode"
+                 glib:get-type="clutter_animation_mode_get_type"
+                 c:type="ClutterAnimationMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="120">The animation modes used by #ClutterAnimatable. This
+enumeration can be expanded in later versions of Clutter.
+
+&lt;figure id="easing-modes"&gt;
+  &lt;title&gt;Easing modes provided by Clutter&lt;/title&gt;
+  &lt;graphic fileref="easing-modes.png" format="PNG"/&gt;
+&lt;/figure&gt;
+
+Every global alpha function registered using clutter_alpha_register_func()
+or clutter_alpha_register_closure() will have a logical id greater than
+%CLUTTER_ANIMATION_LAST.</doc>
+      <member name="custom_mode"
+              value="0"
+              c:identifier="CLUTTER_CUSTOM_MODE"
+              glib:nick="custom-mode">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="122">custom progress function</doc>
+      </member>
+      <member name="linear"
+              value="1"
+              c:identifier="CLUTTER_LINEAR"
+              glib:nick="linear">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="123">linear tweening</doc>
+      </member>
+      <member name="ease_in_quad"
+              value="2"
+              c:identifier="CLUTTER_EASE_IN_QUAD"
+              glib:nick="ease-in-quad">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="124">quadratic tweening</doc>
+      </member>
+      <member name="ease_out_quad"
+              value="3"
+              c:identifier="CLUTTER_EASE_OUT_QUAD"
+              glib:nick="ease-out-quad">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="125">quadratic tweening, inverse of
+   %CLUTTER_EASE_IN_QUAD</doc>
+      </member>
+      <member name="ease_in_out_quad"
+              value="4"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUAD"
+              glib:nick="ease-in-out-quad">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="127">quadratic tweening, combininig
+   %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD</doc>
+      </member>
+      <member name="ease_in_cubic"
+              value="5"
+              c:identifier="CLUTTER_EASE_IN_CUBIC"
+              glib:nick="ease-in-cubic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="129">cubic tweening</doc>
+      </member>
+      <member name="ease_out_cubic"
+              value="6"
+              c:identifier="CLUTTER_EASE_OUT_CUBIC"
+              glib:nick="ease-out-cubic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="130">cubic tweening, inverse of
+   %CLUTTER_EASE_IN_CUBIC</doc>
+      </member>
+      <member name="ease_in_out_cubic"
+              value="7"
+              c:identifier="CLUTTER_EASE_IN_OUT_CUBIC"
+              glib:nick="ease-in-out-cubic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="132">cubic tweening, combining
+   %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC</doc>
+      </member>
+      <member name="ease_in_quart"
+              value="8"
+              c:identifier="CLUTTER_EASE_IN_QUART"
+              glib:nick="ease-in-quart">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="134">quartic tweening</doc>
+      </member>
+      <member name="ease_out_quart"
+              value="9"
+              c:identifier="CLUTTER_EASE_OUT_QUART"
+              glib:nick="ease-out-quart">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="135">quartic tweening, inverse of
+   %CLUTTER_EASE_IN_QUART</doc>
+      </member>
+      <member name="ease_in_out_quart"
+              value="10"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUART"
+              glib:nick="ease-in-out-quart">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="137">quartic tweening, combining
+   %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART</doc>
+      </member>
+      <member name="ease_in_quint"
+              value="11"
+              c:identifier="CLUTTER_EASE_IN_QUINT"
+              glib:nick="ease-in-quint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="139">quintic tweening</doc>
+      </member>
+      <member name="ease_out_quint"
+              value="12"
+              c:identifier="CLUTTER_EASE_OUT_QUINT"
+              glib:nick="ease-out-quint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="140">quintic tweening, inverse of
+   %CLUTTER_EASE_IN_QUINT</doc>
+      </member>
+      <member name="ease_in_out_quint"
+              value="13"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUINT"
+              glib:nick="ease-in-out-quint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="142">fifth power tweening, combining
+   %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT</doc>
+      </member>
+      <member name="ease_in_sine"
+              value="14"
+              c:identifier="CLUTTER_EASE_IN_SINE"
+              glib:nick="ease-in-sine">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="144">sinusoidal tweening</doc>
+      </member>
+      <member name="ease_out_sine"
+              value="15"
+              c:identifier="CLUTTER_EASE_OUT_SINE"
+              glib:nick="ease-out-sine">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="145">sinusoidal tweening, inverse of
+   %CLUTTER_EASE_IN_SINE</doc>
+      </member>
+      <member name="ease_in_out_sine"
+              value="16"
+              c:identifier="CLUTTER_EASE_IN_OUT_SINE"
+              glib:nick="ease-in-out-sine">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="147">sine wave tweening, combining
+   %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE</doc>
+      </member>
+      <member name="ease_in_expo"
+              value="17"
+              c:identifier="CLUTTER_EASE_IN_EXPO"
+              glib:nick="ease-in-expo">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="149">exponential tweening</doc>
+      </member>
+      <member name="ease_out_expo"
+              value="18"
+              c:identifier="CLUTTER_EASE_OUT_EXPO"
+              glib:nick="ease-out-expo">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="150">exponential tweening, inverse of
+   %CLUTTER_EASE_IN_EXPO</doc>
+      </member>
+      <member name="ease_in_out_expo"
+              value="19"
+              c:identifier="CLUTTER_EASE_IN_OUT_EXPO"
+              glib:nick="ease-in-out-expo">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="152">exponential tweening, combining
+   %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO</doc>
+      </member>
+      <member name="ease_in_circ"
+              value="20"
+              c:identifier="CLUTTER_EASE_IN_CIRC"
+              glib:nick="ease-in-circ">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="154">circular tweening</doc>
+      </member>
+      <member name="ease_out_circ"
+              value="21"
+              c:identifier="CLUTTER_EASE_OUT_CIRC"
+              glib:nick="ease-out-circ">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="155">circular tweening, inverse of
+   %CLUTTER_EASE_IN_CIRC</doc>
+      </member>
+      <member name="ease_in_out_circ"
+              value="22"
+              c:identifier="CLUTTER_EASE_IN_OUT_CIRC"
+              glib:nick="ease-in-out-circ">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="157">circular tweening, combining
+   %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC</doc>
+      </member>
+      <member name="ease_in_elastic"
+              value="23"
+              c:identifier="CLUTTER_EASE_IN_ELASTIC"
+              glib:nick="ease-in-elastic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="159">elastic tweening, with offshoot on start</doc>
+      </member>
+      <member name="ease_out_elastic"
+              value="24"
+              c:identifier="CLUTTER_EASE_OUT_ELASTIC"
+              glib:nick="ease-out-elastic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="160">elastic tweening, with offshoot on end</doc>
+      </member>
+      <member name="ease_in_out_elastic"
+              value="25"
+              c:identifier="CLUTTER_EASE_IN_OUT_ELASTIC"
+              glib:nick="ease-in-out-elastic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="161">elastic tweening with offshoot on both ends</doc>
+      </member>
+      <member name="ease_in_back"
+              value="26"
+              c:identifier="CLUTTER_EASE_IN_BACK"
+              glib:nick="ease-in-back">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="162">overshooting cubic tweening, with
+  backtracking on start</doc>
+      </member>
+      <member name="ease_out_back"
+              value="27"
+              c:identifier="CLUTTER_EASE_OUT_BACK"
+              glib:nick="ease-out-back">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="164">overshooting cubic tweening, with
+  backtracking on end</doc>
+      </member>
+      <member name="ease_in_out_back"
+              value="28"
+              c:identifier="CLUTTER_EASE_IN_OUT_BACK"
+              glib:nick="ease-in-out-back">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="166">overshooting cubic tweening, with
+  backtracking on both ends</doc>
+      </member>
+      <member name="ease_in_bounce"
+              value="29"
+              c:identifier="CLUTTER_EASE_IN_BOUNCE"
+              glib:nick="ease-in-bounce">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="168">exponentially decaying parabolic (bounce)
+  tweening, with bounce on start</doc>
+      </member>
+      <member name="ease_out_bounce"
+              value="30"
+              c:identifier="CLUTTER_EASE_OUT_BOUNCE"
+              glib:nick="ease-out-bounce">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="170">exponentially decaying parabolic (bounce)
+  tweening, with bounce on end</doc>
+      </member>
+      <member name="ease_in_out_bounce"
+              value="31"
+              c:identifier="CLUTTER_EASE_IN_OUT_BOUNCE"
+              glib:nick="ease-in-out-bounce">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="172">exponentially decaying parabolic (bounce)
+  tweening, with bounce on both ends</doc>
+      </member>
+      <member name="steps"
+              value="32"
+              c:identifier="CLUTTER_STEPS"
+              glib:nick="steps">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="174">parametrized step function; see clutter_timeline_set_step_progress()
+  for further details. (Since 1.12)</doc>
+      </member>
+      <member name="step_start"
+              value="33"
+              c:identifier="CLUTTER_STEP_START"
+              glib:nick="step-start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="176">equivalent to %CLUTTER_STEPS with a number of steps
+  equal to 1, and a step mode of %CLUTTER_STEP_MODE_START. (Since 1.12)</doc>
+      </member>
+      <member name="step_end"
+              value="34"
+              c:identifier="CLUTTER_STEP_END"
+              glib:nick="step-end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="178">equivalent to %CLUTTER_STEPS with a number of steps
+  equal to 1, and a step mode of %CLUTTER_STEP_MODE_END. (Since 1.12)</doc>
+      </member>
+      <member name="cubic_bezier"
+              value="35"
+              c:identifier="CLUTTER_CUBIC_BEZIER"
+              glib:nick="cubic-bezier">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="180">cubic bezier between (0, 0) and (1, 1) with two
+  control points; see clutter_timeline_set_cubic_bezier_progress(). (Since 1.12)</doc>
+      </member>
+      <member name="ease"
+              value="36"
+              c:identifier="CLUTTER_EASE"
+              glib:nick="ease">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="182">equivalent to %CLUTTER_CUBIC_BEZIER with control points
+  in (0.25, 0.1) and (0.25, 1.0). (Since 1.12)</doc>
+      </member>
+      <member name="ease_in"
+              value="37"
+              c:identifier="CLUTTER_EASE_IN"
+              glib:nick="ease-in">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="184">equivalent to %CLUTTER_CUBIC_BEZIER with control points
+  in (0.42, 0) and (1.0, 1.0). (Since 1.12)</doc>
+      </member>
+      <member name="ease_out"
+              value="38"
+              c:identifier="CLUTTER_EASE_OUT"
+              glib:nick="ease-out">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="186">equivalent to %CLUTTER_CUBIC_BEZIER with control points
+  in (0, 0) and (0.58, 1.0). (Since 1.12)</doc>
+      </member>
+      <member name="ease_in_out"
+              value="39"
+              c:identifier="CLUTTER_EASE_IN_OUT"
+              glib:nick="ease-in-out">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="188">equivalent to %CLUTTER_CUBIC_BEZIER with control points
+  in (0.42, 0) and (0.58, 1.0). (Since 1.12)</doc>
+      </member>
+      <member name="animation_last"
+              value="40"
+              c:identifier="CLUTTER_ANIMATION_LAST"
+              glib:nick="animation-last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="190">last animation mode, used as a guard for
+  registered global alpha functions</doc>
+      </member>
+    </enumeration>
+    <record name="AnyEvent" c:type="ClutterAnyEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="127">Common members for a #ClutterEvent</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="145"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="129">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="130">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="131">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="132">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </record>
+    <function-macro name="BACKEND"
+                    c:identifier="CLUTTER_BACKEND"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-backend.h"
+                       line="44"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BINDING_POOL"
+                    c:identifier="CLUTTER_BINDING_POOL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BIND_CONSTRAINT"
+                    c:identifier="CLUTTER_BIND_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BIN_LAYOUT"
+                    c:identifier="CLUTTER_BIN_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BIN_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_BIN_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BIN_LAYOUT_GET_CLASS"
+                    c:identifier="CLUTTER_BIN_LAYOUT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BLUR_EFFECT"
+                    c:identifier="CLUTTER_BLUR_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-blur-effect.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BOX_LAYOUT"
+                    c:identifier="CLUTTER_BOX_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BOX_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_BOX_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BOX_LAYOUT_GET_CLASS"
+                    c:identifier="CLUTTER_BOX_LAYOUT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="44"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BRIGHTNESS_CONTRAST_EFFECT"
+                    c:identifier="CLUTTER_BRIGHTNESS_CONTRAST_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="BUTTON_MIDDLE"
+              value="2"
+              c:type="CLUTTER_BUTTON_MIDDLE"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="89">The middle button of a pointer device.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="96"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BUTTON_PRIMARY"
+              value="1"
+              c:type="CLUTTER_BUTTON_PRIMARY"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="77">The primary button of a pointer device.
+
+This is typically the left mouse button in a right-handed
+mouse configuration.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="87"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BUTTON_SECONDARY"
+              value="3"
+              c:type="CLUTTER_BUTTON_SECONDARY"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="98">The secondary button of a pointer device.
+
+This is typically the right mouse button in a right-handed
+mouse configuration.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="108"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Backend"
+           c:symbol-prefix="backend"
+           c:type="ClutterBackend"
+           version="0.4"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterBackend"
+           glib:get-type="clutter_backend_get_type"
+           glib:type-struct="BackendClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-backend.h"
+           line="47">#ClutterBackend is an opaque structure whose
+members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-backend.h"
+                       line="56"/>
+      <method name="get_cogl_context"
+              c:identifier="clutter_backend_get_cogl_context"
+              version="1.8"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="849">Retrieves the #CoglContext associated with the given clutter
+@backend. A #CoglContext is required when using some of the
+experimental 2.0 Cogl API.
+
+Since CoglContext is itself experimental API this API should
+be considered experimental too.
+
+This API is not yet supported on OSX because OSX still
+uses the stub Cogl winsys and the Clutter backend doesn't
+explicitly create a CoglContext.</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="74"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-backend.c"
+               line="864">The #CoglContext associated with @backend.</doc>
+          <type name="Cogl.Context" c:type="CoglContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="851">a #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_default_seat"
+              c:identifier="clutter_backend_get_default_seat">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="946">Returns the default seat</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-backend.c"
+               line="952">the default seat</doc>
+          <type name="Seat" c:type="ClutterSeat*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="948">the #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_font_options"
+              c:identifier="clutter_backend_get_font_options"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="802">Retrieves the font options for @backend.</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-backend.c"
+               line="808">the font options of the #ClutterBackend.
+  The returned #cairo_font_options_t is owned by the backend and should
+  not be modified or freed</doc>
+          <type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="804">a #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_input_method"
+              c:identifier="clutter_backend_get_input_method">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="912">Returns the input method used by Clutter</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-backend.c"
+               line="918">the input method</doc>
+          <type name="InputMethod" c:type="ClutterInputMethod*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="914">the #CLutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_resolution"
+              c:identifier="clutter_backend_get_resolution"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="728">Gets the resolution for font handling on the screen.
+
+The resolution is a scale factor between points specified in a
+#PangoFontDescription and cairo units. The default value is 96.0,
+meaning that a 10 point font will be 13 units
+high (10 * 96. / 72. = 13.3).
+
+Clutter will set the resolution using the current backend when
+initializing; the resolution is also stored in the
+#ClutterSettings:font-dpi property.</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-backend.c"
+               line="743">the current resolution, or -1 if no resolution
+  has been set.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="730">a #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_font_options"
+              c:identifier="clutter_backend_set_font_options"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="765">Sets the new font options for @backend. The #ClutterBackend will
+copy the #cairo_font_options_t.
+
+If @options is %NULL, the first following call to
+clutter_backend_get_font_options() will return the default font
+options for @backend.
+
+This function is intended for actors creating a Pango layout
+using the PangoCairo API.</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="767">a #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="768">Cairo font options for the backend, or %NULL</doc>
+            <type name="cairo.FontOptions"
+                  c:type="const cairo_font_options_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_input_method"
+              c:identifier="clutter_backend_set_input_method">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="926">Sets the input method to be used by Clutter</doc>
+        <source-position filename="../clutter/clutter/clutter-backend.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="928">the #ClutterBackend</doc>
+            <type name="Backend" c:type="ClutterBackend*"/>
+          </instance-parameter>
+          <parameter name="method" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-backend.c"
+                 line="929">the input method</doc>
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="font-changed" when="first" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="480">The ::font-changed signal is emitted each time the font options
+have been changed through #ClutterSettings.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="resolution-changed" when="first" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="463">The ::resolution-changed signal is emitted each time the font
+resolutions has been changed through #ClutterSettings.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="settings-changed" when="first" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="497">The ::settings-changed signal is emitted each time the #ClutterSettings
+properties have been changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="BackendClass"
+            c:type="ClutterBackendClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Backend">
+      <source-position filename="../clutter/clutter/clutter-backend.h"
+                       line="56"/>
+    </record>
+    <enumeration name="BinAlignment"
+                 version="1.2"
+                 deprecated="1"
+                 deprecated-version="1.12"
+                 glib:type-name="ClutterBinAlignment"
+                 glib:get-type="clutter_bin_alignment_get_type"
+                 c:type="ClutterBinAlignment">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="592">The alignment policies available on each axis for #ClutterBinLayout</doc>
+      <doc-deprecated xml:space="preserve">Use #ClutterActorAlign and the #ClutterActor
+  API instead</doc-deprecated>
+      <member name="fixed"
+              value="0"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_FIXED"
+              glib:nick="fixed">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="594">Fixed position alignment; the
+  #ClutterBinLayout will honour the fixed position provided
+  by the actors themselves when allocating them</doc>
+      </member>
+      <member name="fill"
+              value="1"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_FILL"
+              glib:nick="fill">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="597">Fill the allocation size</doc>
+      </member>
+      <member name="start"
+              value="2"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_START"
+              glib:nick="start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="598">Position the actors at the top
+  or left side of the container, depending on the axis</doc>
+      </member>
+      <member name="end"
+              value="3"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_END"
+              glib:nick="end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="600">Position the actors at the bottom
+  or right side of the container, depending on the axis</doc>
+      </member>
+      <member name="center"
+              value="4"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_CENTER"
+              glib:nick="center">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="602">Position the actors at the
+  center of the container, depending on the axis</doc>
+      </member>
+    </enumeration>
+    <class name="BinLayout"
+           c:symbol-prefix="bin_layout"
+           c:type="ClutterBinLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterBinLayout"
+           glib:get-type="clutter_bin_layout_get_type"
+           glib:type-struct="BinLayoutClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-bin-layout.h"
+           line="47">The #ClutterBinLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="75"/>
+      <constructor name="new"
+                   c:identifier="clutter_bin_layout_new"
+                   version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bin-layout.c"
+             line="677">Creates a new #ClutterBinLayout layout manager</doc>
+        <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-bin-layout.c"
+               line="686">the newly created layout manager</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bin-layout.c"
+                 line="679">the default alignment policy to be used on the
+  horizontal axis</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bin-layout.c"
+                 line="681">the default alignment policy to be used on the
+  vertical axis</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <property name="x-align"
+                version="1.2"
+                deprecated="1"
+                deprecated-version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bin-layout.c"
+             line="616">The default horizontal alignment policy for actors managed
+by the #ClutterBinLayout</doc>
+        <doc-deprecated xml:space="preserve">Use the #ClutterActor:x-expand and the
+  #ClutterActor:x-align properties on #ClutterActor instead.</doc-deprecated>
+        <type name="BinAlignment"/>
+      </property>
+      <property name="y-align"
+                version="1.2"
+                deprecated="1"
+                deprecated-version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bin-layout.c"
+             line="636">The default vertical alignment policy for actors managed
+by the #ClutterBinLayout</doc>
+        <doc-deprecated xml:space="preserve">Use the #ClutterActor:y-expand and the
+  #ClutterActor:y-align properties on #ClutterActor instead.</doc-deprecated>
+        <type name="BinAlignment"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="BinLayoutPrivate" c:type="ClutterBinLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="BinLayoutClass"
+            c:type="ClutterBinLayoutClass"
+            glib:is-gtype-struct-for="BinLayout"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-bin-layout.h"
+           line="63">The #ClutterBinLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="BinLayoutPrivate"
+            c:type="ClutterBinLayoutPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="44"/>
+    </record>
+    <class name="BindConstraint"
+           c:symbol-prefix="bind_constraint"
+           c:type="ClutterBindConstraint"
+           version="1.4"
+           parent="Constraint"
+           glib:type-name="ClutterBindConstraint"
+           glib:get-type="clutter_bind_constraint_get_type"
+           glib:type-struct="BindConstraintClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-bind-constraint.h"
+           line="40">#ClutterBindConstraint is an opaque structure
+whose members cannot be directly accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_bind_constraint_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="449">Creates a new constraint, binding a #ClutterActor's position to
+the given @coordinate of the position of @source</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-bind-constraint.c"
+               line="459">the newly created #ClutterBindConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="451">the #ClutterActor to use as the source of
+  the binding, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="coordinate" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="453">the coordinate to bind</doc>
+            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="454">the offset to apply to the binding, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_coordinate"
+              c:identifier="clutter_bind_constraint_get_coordinate"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="587">Retrieves the bound coordinate of the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-bind-constraint.c"
+               line="593">the bound coordinate</doc>
+          <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="589">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_offset"
+              c:identifier="clutter_bind_constraint_get_offset"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="632">Retrieves the offset set using clutter_bind_constraint_set_offset()</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-bind-constraint.c"
+               line="638">the offset, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="634">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_bind_constraint_get_source"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="543">Retrieves the #ClutterActor set using clutter_bind_constraint_set_source()</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-bind-constraint.c"
+               line="549">a pointer to the source actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="545">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_coordinate"
+              c:identifier="clutter_bind_constraint_set_coordinate"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="561">Sets the coordinate to bind in the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="563">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+          <parameter name="coordinate" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="564">the coordinate to bind</doc>
+            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_offset"
+              c:identifier="clutter_bind_constraint_set_offset"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="606">Sets the offset to be applied to the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="608">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="609">the offset to apply, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_bind_constraint_set_source"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="477">Sets the source #ClutterActor for the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="479">a #ClutterBindConstraint</doc>
+            <type name="BindConstraint" c:type="ClutterBindConstraint*"/>
+          </instance-parameter>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-bind-constraint.c"
+                 line="480">a #ClutterActor, or %NULL to unset the source</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="coordinate"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="405">The coordinate to be bound</doc>
+        <type name="BindCoordinate"/>
+      </property>
+      <property name="offset"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="420">The offset, in pixels, to be applied to the binding</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="source"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-bind-constraint.c"
+             line="388">The #ClutterActor used as the source for the binding.
+
+The #ClutterActor must not be contained inside the actor associated
+to the constraint.</doc>
+        <type name="Actor"/>
+      </property>
+    </class>
+    <record name="BindConstraintClass"
+            c:type="ClutterBindConstraintClass"
+            disguised="1"
+            glib:is-gtype-struct-for="BindConstraint">
+      <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                       line="49"/>
+    </record>
+    <enumeration name="BindCoordinate"
+                 version="1.4"
+                 glib:type-name="ClutterBindCoordinate"
+                 glib:get-type="clutter_bind_coordinate_get_type"
+                 c:type="ClutterBindCoordinate">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="621">Specifies which property should be used in a binding</doc>
+      <member name="x" value="0" c:identifier="CLUTTER_BIND_X" glib:nick="x">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="623">Bind the X coordinate</doc>
+      </member>
+      <member name="y" value="1" c:identifier="CLUTTER_BIND_Y" glib:nick="y">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="624">Bind the Y coordinate</doc>
+      </member>
+      <member name="width"
+              value="2"
+              c:identifier="CLUTTER_BIND_WIDTH"
+              glib:nick="width">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="625">Bind the width</doc>
+      </member>
+      <member name="height"
+              value="3"
+              c:identifier="CLUTTER_BIND_HEIGHT"
+              glib:nick="height">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="626">Bind the height</doc>
+      </member>
+      <member name="position"
+              value="4"
+              c:identifier="CLUTTER_BIND_POSITION"
+              glib:nick="position">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="627">Equivalent to to %CLUTTER_BIND_X and
+  %CLUTTER_BIND_Y (added in Clutter 1.6)</doc>
+      </member>
+      <member name="size"
+              value="5"
+              c:identifier="CLUTTER_BIND_SIZE"
+              glib:nick="size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="629">Equivalent to %CLUTTER_BIND_WIDTH and
+  %CLUTTER_BIND_HEIGHT (added in Clutter 1.6)</doc>
+      </member>
+      <member name="all"
+              value="6"
+              c:identifier="CLUTTER_BIND_ALL"
+              glib:nick="all">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="631">Equivalent to %CLUTTER_BIND_POSITION and
+  %CLUTTER_BIND_SIZE (added in Clutter 1.10)</doc>
+      </member>
+    </enumeration>
+    <callback name="BindingActionFunc"
+              c:type="ClutterBindingActionFunc"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-binding-pool.h"
+           line="51">The prototype for the callback function registered with
+clutter_binding_pool_install_action() and invoked by
+clutter_binding_pool_activate().</doc>
+      <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                       line="68"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.h"
+             line="63">the function should return %TRUE if the key
+  binding has been handled, and return %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.h"
+               line="53">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="action_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.h"
+               line="54">the name of the action</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="key_val" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.h"
+               line="55">the key symbol</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="modifiers" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.h"
+               line="56">bitmask of the modifier flags</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="4">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.h"
+               line="57">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="BindingPool"
+           c:symbol-prefix="binding_pool"
+           c:type="ClutterBindingPool"
+           version="1.0"
+           parent="GObject.Object"
+           glib:type-name="ClutterBindingPool"
+           glib:get-type="clutter_binding_pool_get_type"
+           glib:type-struct="BindingPoolClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-binding-pool.h"
+           line="40">Container of key bindings. The #ClutterBindingPool struct is
+private.</doc>
+      <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_binding_pool_new"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="337">Creates a new #ClutterBindingPool that can be used to store
+key bindings for an actor. The @name must be a unique identifier
+for the binding pool, so that clutter_binding_pool_find() will
+be able to return the correct binding pool.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="78"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.c"
+               line="346">the newly created binding pool with the given
+  name. Use g_object_unref() when done.</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="339">the name of the binding pool</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="find"
+                c:identifier="clutter_binding_pool_find"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="417">Finds the #ClutterBindingPool with @name.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.c"
+               line="423">a pointer to the #ClutterBindingPool, or %NULL</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="419">the name of the binding pool to find</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_for_class"
+                c:identifier="clutter_binding_pool_get_for_class"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="370">Retrieves the #ClutterBindingPool for the given #GObject class
+and, eventually, creates it. This function is a wrapper around
+clutter_binding_pool_new() and uses the class type name as the
+unique name for the binding pool.
+
+Calling this function multiple times will return the same
+#ClutterBindingPool.
+
+A binding pool for a class can also be retrieved using
+clutter_binding_pool_find() with the class type name:
+
+|[
+  pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance));
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.c"
+               line="389">the binding pool for the given class.
+  The returned #ClutterBindingPool is owned by Clutter and should not
+  be freed directly</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="klass"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="372">a #GObjectClass pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="activate"
+              c:identifier="clutter_binding_pool_activate"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="823">Activates the callback associated to the action that is
+bound to the @key_val and @modifiers pair.
+
+The callback has the following signature:
+
+|[
+  void (* callback) (GObject             *gobject,
+                     const gchar         *action_name,
+                     guint                key_val,
+                     ClutterModifierType  modifiers,
+                     gpointer             user_data);
+]|
+
+Where the #GObject instance is @gobject and the user data
+is the one passed when installing the action with
+clutter_binding_pool_install_action().
+
+If the action bound to the @key_val, @modifiers pair has been
+blocked using clutter_binding_pool_block_action(), the callback
+will not be invoked, and this function will return %FALSE.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="121"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.c"
+               line="851">%TRUE if an action was found and was activated</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="825">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="826">the key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="827">bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="gobject" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="828">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="block_action"
+              c:identifier="clutter_binding_pool_block_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="879">Blocks all the actions with name @action_name inside @pool.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="127"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="881">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="882">an action name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_action"
+              c:identifier="clutter_binding_pool_find_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="708">Retrieves the name of the action matching the given key symbol
+and modifiers bitmask.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="112"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-binding-pool.c"
+               line="717">the name of the action, if found, or %NULL. The
+  returned string is owned by the binding pool and should never
+  be modified or freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="710">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="711">a key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="712">a bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="install_action"
+              c:identifier="clutter_binding_pool_install_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="445">Installs a new action inside a #ClutterBindingPool. The action
+is bound to @key_val and @modifiers.
+
+The same action name can be used for multiple @key_val, @modifiers
+pairs.
+
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="447">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="448">the name of the action</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="449">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="450">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="4"
+                     destroy="5">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="451">function to be called
+  when the action is activated</doc>
+            <type name="BindingActionFunc" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="453">data to be passed to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="454">function to be called when the action is removed
+  from the pool</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="install_closure"
+              c:identifier="clutter_binding_pool_install_closure"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="517">A #GClosure variant of clutter_binding_pool_install_action().
+
+Installs a new action inside a #ClutterBindingPool. The action
+is bound to @key_val and @modifiers.
+
+The same action name can be used for multiple @key_val, @modifiers
+pairs.
+
+When an action has been activated using clutter_binding_pool_activate()
+the passed @closure will be invoked.
+
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="519">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="520">the name of the action</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="521">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="522">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="523">a #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="override_action"
+              c:identifier="clutter_binding_pool_override_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="583">Allows overriding the action for @key_val and @modifiers inside a
+#ClutterBindingPool. See clutter_binding_pool_install_action().
+
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="585">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="586">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="587">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="3"
+                     destroy="4">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="588">function to be called when the action is activated</doc>
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="589">data to be passed to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="590">function to be called when the action is removed
+  from the pool</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="override_closure"
+              c:identifier="clutter_binding_pool_override_closure"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="648">A #GClosure variant of clutter_binding_pool_override_action().
+
+Allows overriding the action for @key_val and @modifiers inside a
+#ClutterBindingPool. See clutter_binding_pool_install_closure().
+
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="650">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="651">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="652">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="653">a #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action"
+              c:identifier="clutter_binding_pool_remove_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="740">Removes the action matching the given @key_val, @modifiers pair,
+if any exists.</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="116"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="742">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="743">a key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="744">a bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unblock_action"
+              c:identifier="clutter_binding_pool_unblock_action"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="906">Unblockes all the actions with name @action_name inside @pool.
+
+Unblocking an action does not cause the callback bound to it to
+be invoked in case clutter_binding_pool_activate() was called on
+an action previously blocked with clutter_binding_pool_block_action().</doc>
+        <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="908">a #ClutterBindingPool</doc>
+            <type name="BindingPool" c:type="ClutterBindingPool*"/>
+          </instance-parameter>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-binding-pool.c"
+                 line="909">an action name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="name"
+                version="1.0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-binding-pool.c"
+             line="306">The unique name of the #ClutterBindingPool.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+    </class>
+    <record name="BindingPoolClass"
+            c:type="ClutterBindingPoolClass"
+            disguised="1"
+            glib:is-gtype-struct-for="BindingPool">
+      <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                       line="49"/>
+    </record>
+    <class name="BlurEffect"
+           c:symbol-prefix="blur_effect"
+           c:type="ClutterBlurEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterBlurEffect"
+           glib:get-type="clutter_blur_effect_get_type"
+           glib:type-struct="BlurEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-blur-effect.h"
+           line="40">#ClutterBlurEffect is an opaque structure
+whose members cannot be accessed directly</doc>
+      <source-position filename="../clutter/clutter/clutter-blur-effect.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_blur_effect_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-blur-effect.c"
+             line="264">Creates a new #ClutterBlurEffect to be used with
+clutter_actor_add_effect()</doc>
+        <source-position filename="../clutter/clutter/clutter-blur-effect.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-blur-effect.c"
+               line="270">the newly created #ClutterBlurEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+      </constructor>
+    </class>
+    <record name="BlurEffectClass"
+            c:type="ClutterBlurEffectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="BlurEffect">
+      <source-position filename="../clutter/clutter/clutter-blur-effect.h"
+                       line="49"/>
+    </record>
+    <enumeration name="BoxAlignment"
+                 version="1.2"
+                 glib:type-name="ClutterBoxAlignment"
+                 glib:get-type="clutter_box_alignment_get_type"
+                 c:type="ClutterBoxAlignment">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="666">The alignment policies available on each axis of the #ClutterBoxLayout</doc>
+      <member name="start"
+              value="0"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_START"
+              glib:nick="start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="668">Align the child to the top or to
+  to the left, depending on the used axis</doc>
+      </member>
+      <member name="end"
+              value="1"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_END"
+              glib:nick="end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="671">Align the child to the bottom or to
+  the right, depending on the used axis</doc>
+      </member>
+      <member name="center"
+              value="2"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_CENTER"
+              glib:nick="center">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="670">Align the child to the center</doc>
+      </member>
+    </enumeration>
+    <class name="BoxLayout"
+           c:symbol-prefix="box_layout"
+           c:type="ClutterBoxLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterBoxLayout"
+           glib:get-type="clutter_box_layout_get_type"
+           glib:type-struct="BoxLayoutClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-box-layout.h"
+           line="50">The #ClutterBoxLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="78"/>
+      <constructor name="new"
+                   c:identifier="clutter_box_layout_new"
+                   version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1045">Creates a new #ClutterBoxLayout layout manager</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-box-layout.c"
+               line="1050">the newly created #ClutterBoxLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <method name="get_homogeneous"
+              c:identifier="clutter_box_layout_get_homogeneous"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1196">Retrieves if the children sizes are allocated homogeneously.</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="101"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-box-layout.c"
+               line="1202">%TRUE if the #ClutterBoxLayout is arranging its children
+  homogeneously, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1198">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_orientation"
+              c:identifier="clutter_box_layout_get_orientation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1143">Retrieves the orientation of the @layout.</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-box-layout.c"
+               line="1149">the orientation of the layout</doc>
+          <type name="Orientation" c:type="ClutterOrientation"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1145">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pack_start"
+              c:identifier="clutter_box_layout_get_pack_start"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1250">Retrieves the value set using clutter_box_layout_set_pack_start()</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-box-layout.c"
+               line="1256">%TRUE if the #ClutterBoxLayout should pack children
+ at the beginning of the layout, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1252">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_spacing"
+              c:identifier="clutter_box_layout_get_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1093">Retrieves the spacing set using clutter_box_layout_set_spacing()</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-box-layout.c"
+               line="1099">the spacing between children of the #ClutterBoxLayout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1095">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_homogeneous"
+              c:identifier="clutter_box_layout_set_homogeneous"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1162">Sets whether the size of @layout children should be
+homogeneous</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1164">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1165">%TRUE if the layout should be homogeneous</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_orientation"
+              c:identifier="clutter_box_layout_set_orientation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1111">Sets the orientation of the #ClutterBoxLayout layout manager.</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1113">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1114">the orientation of the #ClutterBoxLayout</doc>
+            <type name="Orientation" c:type="ClutterOrientation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pack_start"
+              c:identifier="clutter_box_layout_set_pack_start"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1215">Sets whether children of @layout should be laid out by appending
+them or by prepending them</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1217">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+          <parameter name="pack_start" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1218">%TRUE if the @layout should pack children at the
+  beginning of the layout</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_spacing"
+              c:identifier="clutter_box_layout_set_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1060">Sets the spacing between children of @layout</doc>
+        <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1062">a #ClutterBoxLayout</doc>
+            <type name="BoxLayout" c:type="ClutterBoxLayout*"/>
+          </instance-parameter>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-box-layout.c"
+                 line="1063">the spacing between children of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="homogeneous"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="981">Whether the #ClutterBoxLayout should arrange its children
+homogeneously, i.e. all children get the same size</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="orientation"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="964">The orientation of the #ClutterBoxLayout, either horizontal
+or vertical</doc>
+        <type name="Orientation"/>
+      </property>
+      <property name="pack-start"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="997">Whether the #ClutterBoxLayout should pack items at the start
+or append them at the end</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-box-layout.c"
+             line="1012">The spacing between children of the #ClutterBoxLayout, in pixels</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="BoxLayoutPrivate" c:type="ClutterBoxLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="BoxLayoutClass"
+            c:type="ClutterBoxLayoutClass"
+            glib:is-gtype-struct-for="BoxLayout"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-box-layout.h"
+           line="66">The #ClutterBoxLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="78"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="BoxLayoutPrivate"
+            c:type="ClutterBoxLayoutPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="47"/>
+    </record>
+    <class name="BrightnessContrastEffect"
+           c:symbol-prefix="brightness_contrast_effect"
+           c:type="ClutterBrightnessContrastEffect"
+           version="1.10"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterBrightnessContrastEffect"
+           glib:get-type="clutter_brightness_contrast_effect_get_type"
+           glib:type-struct="BrightnessContrastEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+           line="41">#ClutterBrightnessContrastEffect is an opaque structure
+whose members cannot be directly accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                       line="50"/>
+      <constructor name="new"
+                   c:identifier="clutter_brightness_contrast_effect_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="461">Creates a new #ClutterBrightnessContrastEffect to be used with
+clutter_actor_add_effect()</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="56"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+               line="467">the newly created
+  #ClutterBrightnessContrastEffect or %NULL.  Use g_object_unref() when
+  done.</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+      </constructor>
+      <method name="get_brightness"
+              c:identifier="clutter_brightness_contrast_effect_get_brightness"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="516">Retrieves the change in brightness used by @effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="518">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="red"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="519">return location for red component of the
+   change in brightness</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="green"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="521">return location for green component of the
+   change in brightness</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="blue"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="523">return location for blue component of the
+   change in brightness</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_contrast"
+              c:identifier="clutter_brightness_contrast_effect_get_contrast"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="606">Retrieves the contrast value used by @effect.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="608">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="red"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="609">return location for red component of the
+   change in contrast</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="green"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="611">return location for green component of the
+   change in contrast</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="blue"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="613">return location for blue component of the
+   change in contrast</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_brightness"
+              c:identifier="clutter_brightness_contrast_effect_set_brightness"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="548">The range of @brightness is [-1.0, 1.0], where 0.0 designates no change;
+a value below 0.0 indicates a decrease in brightness; and a value
+above 0.0 indicates an increase of brightness.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="550">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="brightness" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="551">the brightness change for all three components (r, g, b)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_brightness_full"
+              c:identifier="clutter_brightness_contrast_effect_set_brightness_full"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="479">The range for each component is [-1.0, 1.0] where 0.0 designates no change,
+values below 0.0 mean a decrease in brightness, and values above indicate
+an increase.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="481">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="482">red component of the change in brightness</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="483">green component of the change in brightness</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="484">blue component of the change in brightness</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_contrast"
+              c:identifier="clutter_brightness_contrast_effect_set_contrast"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="638">The range for @contrast is [-1.0, 1.0], where 0.0 designates no change;
+a value below 0.0 indicates a decrease in contrast; and a value above
+0.0 indicates an increase.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="640">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="contrast" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="641">contrast change for all three channels</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_contrast_full"
+              c:identifier="clutter_brightness_contrast_effect_set_contrast_full"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="569">The range for each component is [-1.0, 1.0] where 0.0 designates no change,
+values below 0.0 mean a decrease in contrast, and values above indicate
+an increase.</doc>
+        <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="571">a #ClutterBrightnessContrastEffect</doc>
+            <type name="BrightnessContrastEffect"
+                  c:type="ClutterBrightnessContrastEffect*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="572">red component of the change in contrast</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="573">green component of the change in contrast</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+                 line="574">blue component of the change in contrast</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="brightness"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="308">The brightness change to apply to the effect.
+
+This property uses a #ClutterColor to represent the changes to each
+color channel. The range is [ 0, 255 ], with 127 as the value used
+to indicate no change; values smaller than 127 indicate a decrease
+in brightness, and values larger than 127 indicate an increase in
+brightness.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="contrast"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+             line="328">The contrast change to apply to the effect.
+
+This property uses a #ClutterColor to represent the changes to each
+color channel. The range is [ 0, 255 ], with 127 as the value used
+to indicate no change; values smaller than 127 indicate a decrease
+in contrast, and values larger than 127 indicate an increase in
+contrast.</doc>
+        <type name="Color"/>
+      </property>
+    </class>
+    <record name="BrightnessContrastEffectClass"
+            c:type="ClutterBrightnessContrastEffectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="BrightnessContrastEffect">
+      <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                       line="50"/>
+    </record>
+    <record name="ButtonEvent" c:type="ClutterButtonEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="180">Button event.
+
+The event coordinates are relative to the stage that received the
+event, and can be transformed into actor-relative coordinates by
+using clutter_actor_transform_stage_point().</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="220"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="182">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="183">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="184">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="185">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="186">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="187">event X coordinate, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="188">event Y coordinate, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="189">button modifiers</doc>
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="button" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="190">event button</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="click_count" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="191">number of button presses within the default time
+  and radius</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="axes" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="193">reserved for future use</doc>
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="194">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <enumeration name="ButtonState"
+                 glib:type-name="ClutterButtonState"
+                 glib:get-type="clutter_button_state_get_type"
+                 c:type="ClutterButtonState">
+      <member name="released"
+              value="0"
+              c:identifier="CLUTTER_BUTTON_STATE_RELEASED"
+              glib:nick="released">
+      </member>
+      <member name="pressed"
+              value="1"
+              c:identifier="CLUTTER_BUTTON_STATE_PRESSED"
+              glib:nick="pressed">
+      </member>
+    </enumeration>
+    <function-macro name="CALLBACK"
+                    c:identifier="CLUTTER_CALLBACK"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="113">Convenience macro to cast a function to #ClutterCallback</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="119"/>
+      <parameters>
+        <parameter name="f">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="115">a function</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CANVAS"
+                    c:identifier="CLUTTER_CANVAS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CANVAS_CLASS"
+                    c:identifier="CLUTTER_CANVAS_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CANVAS_GET_CLASS"
+                    c:identifier="CLUTTER_CANVAS_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CHILD_META"
+                    c:identifier="CLUTTER_CHILD_META"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CHILD_META_CLASS"
+                    c:identifier="CLUTTER_CHILD_META_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CHILD_META_GET_CLASS"
+                    c:identifier="CLUTTER_CHILD_META_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="45"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLIP_NODE"
+                    c:identifier="CLUTTER_CLIP_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="83"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLONE"
+                    c:identifier="CLUTTER_CLONE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLONE_CLASS"
+                    c:identifier="CLUTTER_CLONE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CLONE_GET_CLASS"
+                    c:identifier="CLUTTER_CLONE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="COGL"
+              value="deprecated"
+              c:type="CLUTTER_COGL"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-macros.h"
+           line="44">Cogl (internal GL abstraction utility library) backend. Can be "gl" or
+"gles" currently</doc>
+      <doc-deprecated xml:space="preserve">The macro evaluates to "deprecated" as Cogl can be
+  compiled against multiple GL implementations.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="55"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="COLORIZE_EFFECT"
+                    c:identifier="CLUTTER_COLORIZE_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="COLOR_INIT"
+                    c:identifier="CLUTTER_COLOR_INIT"
+                    version="1.12"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.h"
+           line="58">A macro that initializes a #ClutterColor, to be used when declaring it.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="69"/>
+      <parameters>
+        <parameter name="r">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.h"
+               line="60">value for the red channel, between 0 and 255</doc>
+        </parameter>
+        <parameter name="g">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.h"
+               line="61">value for the green channel, between 0 and 255</doc>
+        </parameter>
+        <parameter name="b">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.h"
+               line="62">value for the blue channel, between 0 and 255</doc>
+        </parameter>
+        <parameter name="a">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.h"
+               line="63">value for the alpha channel, between 0 and 255</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="COLOR_NODE"
+                    c:identifier="CLUTTER_COLOR_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CONSTRAINT"
+                    c:identifier="CLUTTER_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CONSTRAINT_CLASS"
+                    c:identifier="CLUTTER_CONSTRAINT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CONSTRAINT_GET_CLASS"
+                    c:identifier="CLUTTER_CONSTRAINT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CONTAINER"
+                    c:identifier="CLUTTER_CONTAINER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="CONTAINER_GET_IFACE"
+                    c:identifier="CLUTTER_CONTAINER_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="CURRENT_TIME"
+              value="0"
+              c:type="CLUTTER_CURRENT_TIME"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="48">Default value for "now".</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="55"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="Callback" c:type="ClutterCallback">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.h"
+           line="103">Generic callback</doc>
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="110"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="105">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-actor.h"
+               line="106">user data</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Canvas"
+           c:symbol-prefix="canvas"
+           c:type="ClutterCanvas"
+           version="1.10"
+           parent="GObject.Object"
+           glib:type-name="ClutterCanvas"
+           glib:get-type="clutter_canvas_get_type"
+           glib:type-struct="CanvasClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-canvas.h"
+           line="47">The #ClutterCanvas structure contains
+private data and should only be accessed using the provided
+API.</doc>
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="86"/>
+      <implements name="Content"/>
+      <function name="new" c:identifier="clutter_canvas_new" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="506">Creates a new instance of #ClutterCanvas.
+
+You should call clutter_canvas_set_size() to set the size of the canvas.
+
+You should call clutter_content_invalidate() every time you wish to
+draw the contents of the canvas.</doc>
+        <source-position filename="../clutter/clutter/clutter-canvas.h"
+                         line="92"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-canvas.c"
+               line="516">The newly allocated instance of
+  #ClutterCanvas. Use g_object_unref() when done.</doc>
+          <type name="Content" c:type="ClutterContent*"/>
+        </return-value>
+      </function>
+      <virtual-method name="draw">
+        <source-position filename="../clutter/clutter/clutter-canvas.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="canvas" transfer-ownership="none">
+            <type name="Canvas" c:type="ClutterCanvas*"/>
+          </instance-parameter>
+          <parameter name="cr" transfer-ownership="none">
+            <type name="cairo.Context" c:type="cairo_t*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_scale_factor"
+              c:identifier="clutter_canvas_get_scale_factor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="632">Gets the scale factor of the @canvas.</doc>
+        <source-position filename="../clutter/clutter/clutter-canvas.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-canvas.c"
+               line="638">the current @canvas scale factor or -1 if invalid</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="canvas" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="634">a #ClutterCanvas</doc>
+            <type name="Canvas" c:type="ClutterCanvas*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_scale_factor"
+              c:identifier="clutter_canvas_set_scale_factor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="603">Sets the scaling factor of the @canvas, and invalidates the content.
+
+This function will cause the @canvas to be invalidated only
+if the scale factor of the canvas surface has changed.</doc>
+        <source-position filename="../clutter/clutter/clutter-canvas.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="canvas" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="605">a #ClutterCanvas</doc>
+            <type name="Canvas" c:type="ClutterCanvas*"/>
+          </instance-parameter>
+          <parameter name="scale" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="606">the integer scaling factor of the canvas</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_size"
+              c:identifier="clutter_canvas_set_size"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="567">Sets the size of the @canvas, and invalidates the content.
+
+This function will cause the @canvas to be invalidated only
+if the size of the canvas surface has changed.
+
+If you want to invalidate the contents of the @canvas when setting
+the size, you can use the return value of the function to conditionally
+call clutter_content_invalidate():
+
+|[
+  if (!clutter_canvas_set_size (canvas, width, height))
+    clutter_content_invalidate (CLUTTER_CONTENT (canvas));
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-canvas.h"
+                         line="94"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-canvas.c"
+               line="587">this function returns %TRUE if the size change
+  caused a content invalidation, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="canvas" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="569">a #ClutterCanvas</doc>
+            <type name="Canvas" c:type="ClutterCanvas*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="570">the width of the canvas, in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="571">the height of the canvas, in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="height"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="252">The height of the canvas.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="scale-factor" writable="1" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="268">The height of the canvas.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="width"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="236">The width of the canvas.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <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="CanvasPrivate" c:type="ClutterCanvasPrivate*"/>
+      </field>
+      <glib:signal name="draw" when="last" no-recurse="1" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-canvas.c"
+             line="282">The #ClutterCanvas::draw signal is emitted each time a canvas is
+invalidated.
+
+It is safe to connect multiple handlers to this signal: each
+handler invocation will be automatically protected by cairo_save()
+and cairo_restore() pairs.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-canvas.c"
+               line="296">%TRUE if the signal emission should stop, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="cr" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="285">the Cairo context used to draw</doc>
+            <type name="cairo.Context"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="286">the width of the @canvas</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-canvas.c"
+                 line="287">the height of the @canvas</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="CanvasClass"
+            c:type="ClutterCanvasClass"
+            glib:is-gtype-struct-for="Canvas"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-canvas.h"
+           line="64">The #ClutterCanvasClass structure contains
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="86"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="draw">
+        <callback name="draw">
+          <source-position filename="../clutter/clutter/clutter-canvas.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="canvas" transfer-ownership="none">
+              <type name="Canvas" c:type="ClutterCanvas*"/>
+            </parameter>
+            <parameter name="cr" transfer-ownership="none">
+              <type name="cairo.Context" c:type="cairo_t*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="16">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="CanvasPrivate" c:type="ClutterCanvasPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="44"/>
+    </record>
+    <record name="Capture" c:type="ClutterCapture">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="131"/>
+      <field name="image" writable="1">
+        <type name="cairo.Surface" c:type="cairo_surface_t*"/>
+      </field>
+      <field name="rect" writable="1">
+        <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t"/>
+      </field>
+    </record>
+    <class name="ChildMeta"
+           c:symbol-prefix="child_meta"
+           c:type="ClutterChildMeta"
+           version="0.8"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterChildMeta"
+           glib:get-type="clutter_child_meta_get_type"
+           glib:type-struct="ChildMetaClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-child-meta.h"
+           line="49">Base interface for container specific state for child actors. A child
+data is meant to be used when you need to keep track of information
+about each individual child added to a container.
+
+In order to use it you should create your own subclass of
+#ClutterChildMeta and set the #ClutterContainerIface child_meta_type
+interface member to your subclass type, like:
+
+|[
+static void
+my_container_iface_init (ClutterContainerIface *iface)
+{
+  // set the rest of the #ClutterContainer vtable
+
+  container_iface-&gt;child_meta_type  = MY_TYPE_CHILD_META;
+}
+]|
+
+This will automatically create a #ClutterChildMeta of type
+`MY_TYPE_CHILD_META` for every actor that is added to the container.
+
+The child data for an actor can be retrieved using the
+clutter_container_get_child_meta() function.
+
+The properties of the data and your subclass can be manipulated with
+clutter_container_child_set() and clutter_container_child_get() which
+act like g_object_set() and g_object_get().
+
+You can provide hooks for your own storage as well as control the
+instantiation by overriding the #ClutterContainerIface virtual functions
+#ClutterContainerIface.create_child_meta(), #ClutterContainerIface.destroy_child_meta(),
+and #ClutterContainerIface.get_child_meta().</doc>
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="110"/>
+      <method name="get_actor"
+              c:identifier="clutter_child_meta_get_actor"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.c"
+             line="175">Retrieves the actor wrapped by @data</doc>
+        <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                         line="118"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-child-meta.c"
+               line="181">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-child-meta.c"
+                 line="177">a #ClutterChildMeta</doc>
+            <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_container"
+              c:identifier="clutter_child_meta_get_container"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.c"
+             line="157">Retrieves the container using @data</doc>
+        <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                         line="116"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-child-meta.c"
+               line="163">a #ClutterContainer</doc>
+          <type name="Container" c:type="ClutterContainer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-child-meta.c"
+                 line="159">a #ClutterChildMeta</doc>
+            <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="actor"
+                version="0.8"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.c"
+             line="132">The #ClutterActor being wrapped by this #ClutterChildMeta</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="container"
+                version="0.8"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.c"
+             line="117">The #ClutterContainer that created this #ClutterChildMeta.</doc>
+        <type name="Container"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="container">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.h"
+             line="51">the container handling this data</doc>
+        <type name="Container" c:type="ClutterContainer*"/>
+      </field>
+      <field name="actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-child-meta.h"
+             line="52">the actor wrapped by this data</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </class>
+    <record name="ChildMetaClass"
+            c:type="ClutterChildMetaClass"
+            glib:is-gtype-struct-for="ChildMeta"
+            version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-child-meta.h"
+           line="99">The #ClutterChildMetaClass contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="110"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="ClickAction"
+           c:symbol-prefix="click_action"
+           c:type="ClutterClickAction"
+           parent="Action"
+           glib:type-name="ClutterClickAction"
+           glib:get-type="clutter_click_action_get_type"
+           glib:type-struct="ClickActionClass">
+      <source-position filename="../clutter/clutter/clutter-click-action.h"
+                       line="79"/>
+      <constructor name="new"
+                   c:identifier="clutter_click_action_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="720">Creates a new #ClutterClickAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-click-action.c"
+               line="725">the newly created #ClutterClickAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="clicked">
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="long_press">
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="LongPressState" c:type="ClutterLongPressState"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_button"
+              c:identifier="clutter_click_action_get_button"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="770">Retrieves the button that was pressed.</doc>
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-click-action.c"
+               line="776">the button value</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="772">a #ClutterClickAction</doc>
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_coords"
+              c:identifier="clutter_click_action_get_coords"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="814">Retrieves the screen coordinates of the button press.</doc>
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="816">a #ClutterClickAction</doc>
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+          <parameter name="press_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="817">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="press_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="818">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_state"
+              c:identifier="clutter_click_action_get_state"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="792">Retrieves the modifier state of the click action.</doc>
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-click-action.c"
+               line="798">the modifier state parameter, or 0</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="794">a #ClutterClickAction</doc>
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="release"
+              c:identifier="clutter_click_action_release"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="735">Emulates a release of the pointer button, which ungrabs the pointer
+and unsets the #ClutterClickAction:pressed state.
+
+This function will also cancel the long press gesture if one was
+initiated.
+
+This function is useful to break a grab, for instance after a certain
+amount of time has passed.</doc>
+        <source-position filename="../clutter/clutter/clutter-click-action.h"
+                         line="94"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="737">a #ClutterClickAction</doc>
+            <type name="ClickAction" c:type="ClutterClickAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="held" version="1.4" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="595">Whether the clickable actor has the pointer grabbed</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="long-press-duration"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="609">The minimum duration of a press for it to be recognized as a long
+press gesture, in milliseconds.
+
+A value of -1 will make the #ClutterClickAction use the value of
+the #ClutterSettings:long-press-duration property.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="long-press-threshold"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="628">The maximum allowed distance that can be covered (on both axes) before
+a long press gesture is cancelled, in pixels.
+
+A value of -1 will make the #ClutterClickAction use the value of
+the #ClutterSettings:dnd-drag-threshold property.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="pressed" version="1.4" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="581">Whether the clickable actor should be in "pressed" state</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Action" c:type="ClutterAction"/>
+      </field>
+      <glib:signal name="clicked" when="last" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="651">The ::clicked signal is emitted when the #ClutterActor to which
+a #ClutterClickAction has been applied should respond to a
+pointer button press and release events</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="654">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="long-press" when="last" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-click-action.c"
+             line="671">The ::long-press signal is emitted during the long press gesture
+handling.
+
+This signal can be emitted multiple times with different states.
+
+The %CLUTTER_LONG_PRESS_QUERY state will be emitted on button presses,
+and its return value will determine whether the long press handling
+should be initiated. If the signal handlers will return %TRUE, the
+%CLUTTER_LONG_PRESS_QUERY state will be followed either by a signal
+emission with the %CLUTTER_LONG_PRESS_ACTIVATE state if the long press
+constraints were respected, or by a signal emission with the
+%CLUTTER_LONG_PRESS_CANCEL state if the long press was cancelled.
+
+It is possible to forcibly cancel a long press detection using
+clutter_click_action_release().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-click-action.c"
+               line="693">Only the %CLUTTER_LONG_PRESS_QUERY state uses the
+  returned value of the handler; other states will ignore it</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="674">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-click-action.c"
+                 line="675">the long press state</doc>
+            <type name="LongPressState"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ClickActionClass"
+            c:type="ClutterClickActionClass"
+            glib:is-gtype-struct-for="ClickAction"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-click-action.h"
+           line="48">The #ClutterClickActionClass structure
+contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-click-action.h"
+                       line="79"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActionClass" c:type="ClutterActionClass"/>
+      </field>
+      <field name="clicked">
+        <callback name="clicked">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="64"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="ClickAction" c:type="ClutterClickAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="long_press">
+        <callback name="long_press">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="67"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="ClickAction" c:type="ClutterClickAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="state" transfer-ownership="none">
+              <type name="LongPressState" c:type="ClutterLongPressState"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_click_action1" introspectable="0">
+        <callback name="_clutter_click_action1">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="72"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action2" introspectable="0">
+        <callback name="_clutter_click_action2">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="73"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action3" introspectable="0">
+        <callback name="_clutter_click_action3">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="74"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action4" introspectable="0">
+        <callback name="_clutter_click_action4">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action5" introspectable="0">
+        <callback name="_clutter_click_action5">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="76"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action6" introspectable="0">
+        <callback name="_clutter_click_action6">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="77"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action7" introspectable="0">
+        <callback name="_clutter_click_action7">
+          <source-position filename="../clutter/clutter/clutter-click-action.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ClickActionPrivate"
+            c:type="ClutterClickActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-click-action.h"
+                       line="46"/>
+    </record>
+    <class name="ClipNode"
+           c:symbol-prefix="clip_node"
+           c:type="ClutterClipNode"
+           version="1.10"
+           parent="PaintNode"
+           glib:type-name="ClutterClipNode"
+           glib:get-type="clutter_clip_node_get_type"
+           glib:type-struct="ClipNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="86">The #ClutterTextNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="95"/>
+      <constructor name="new"
+                   c:identifier="clutter_clip_node_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-nodes.c"
+             line="1092">Creates a new #ClutterPaintNode that will clip its child
+nodes to the 2D regions added to it.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="101"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-nodes.c"
+               line="1098">the newly created #ClutterPaintNode.
+  Use clutter_paint_node_unref() when done.</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+      </constructor>
+    </class>
+    <record name="ClipNodeClass"
+            c:type="ClutterClipNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="ClipNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="990">The `ClutterClipNodeClass` structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="95"/>
+    </record>
+    <class name="Clone"
+           c:symbol-prefix="clone"
+           c:type="ClutterClone"
+           version="1.0"
+           parent="Actor"
+           glib:type-name="ClutterClone"
+           glib:get-type="clutter_clone_get_type"
+           glib:type-struct="CloneClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-clone.h"
+           line="46">The #ClutterClone structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="79"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_clone_new" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-clone.c"
+             line="384">Creates a new #ClutterActor which clones @source/</doc>
+        <source-position filename="../clutter/clutter/clutter-clone.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-clone.c"
+               line="390">the newly created #ClutterClone</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-clone.c"
+                 line="386">a #ClutterActor, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_source"
+              c:identifier="clutter_clone_get_source"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-clone.c"
+             line="457">Retrieves the source #ClutterActor being cloned by @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-clone.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-clone.c"
+               line="463">the actor source for the clone</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-clone.c"
+                 line="459">a #ClutterClone</doc>
+            <type name="Clone" c:type="ClutterClone*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_clone_set_source"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-clone.c"
+             line="437">Sets @source as the source actor to be cloned by @self.</doc>
+        <source-position filename="../clutter/clutter/clutter-clone.h"
+                         line="87"/>
+        <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="../clutter/clutter/clutter-clone.c"
+                 line="439">a #ClutterClone</doc>
+            <type name="Clone" c:type="ClutterClone*"/>
+          </instance-parameter>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-clone.c"
+                 line="440">a #ClutterActor, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="source"
+                version="1.0"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-clone.c"
+             line="357">This property specifies the source actor being cloned.</doc>
+        <type name="Actor"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ClonePrivate" c:type="ClutterClonePrivate*"/>
+      </field>
+    </class>
+    <record name="CloneClass"
+            c:type="ClutterCloneClass"
+            glib:is-gtype-struct-for="Clone"
+            version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-clone.h"
+           line="62">The #ClutterCloneClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="79"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="_clutter_actor_clone1" introspectable="0">
+        <callback name="_clutter_actor_clone1">
+          <source-position filename="../clutter/clutter/clutter-clone.h"
+                           line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone2" introspectable="0">
+        <callback name="_clutter_actor_clone2">
+          <source-position filename="../clutter/clutter/clutter-clone.h"
+                           line="76"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone3" introspectable="0">
+        <callback name="_clutter_actor_clone3">
+          <source-position filename="../clutter/clutter/clutter-clone.h"
+                           line="77"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone4" introspectable="0">
+        <callback name="_clutter_actor_clone4">
+          <source-position filename="../clutter/clutter/clutter-clone.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ClonePrivate" c:type="ClutterClonePrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="44"/>
+    </record>
+    <record name="Color"
+            c:type="ClutterColor"
+            glib:type-name="ClutterColor"
+            glib:get-type="clutter_color_get_type"
+            c:symbol-prefix="color">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.h"
+           line="39">Color representation.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="56"/>
+      <field name="red" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.h"
+             line="41">red component, between 0 and 255</doc>
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="green" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.h"
+             line="42">green component, between 0 and 255</doc>
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="blue" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.h"
+             line="43">blue component, between 0 and 255</doc>
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="alpha" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.h"
+             line="44">alpha component, between 0 and 255</doc>
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <constructor name="alloc"
+                   c:identifier="clutter_color_alloc"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="967">Allocates a new, transparent black #ClutterColor.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="972">the newly allocated #ClutterColor; use
+  clutter_color_free() to free its resources</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new" c:identifier="clutter_color_new" version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="934">Creates a new #ClutterColor with the given values.
+
+This function is the equivalent of:
+
+|[
+  clutter_color_init (clutter_color_alloc (), red, green, blue, alpha);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="75"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="949">the newly allocated color.
+  Use clutter_color_free() when done</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="936">red component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="937">green component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="938">blue component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="939">alpha component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add" c:identifier="clutter_color_add">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="125">Adds @a to @b and saves the resulting color inside @result.
+
+The alpha channel of @result is set as as the maximum value
+between the alpha channels of @a and @b.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="127">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="128">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="129">return location for the result</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="clutter_color_copy" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="899">Makes a copy of the color structure.  The result must be
+freed using clutter_color_free().</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="88"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="906">an allocated copy of @color.</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="901">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="darken" c:identifier="clutter_color_darken">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="197">Darkens @color by a fixed amount, and saves the changed color
+in @result.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="199">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="200">return location for the darker color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="equal" c:identifier="clutter_color_equal" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="801">Compares two #ClutterColor&lt;!-- --&gt;s and checks if they are the same.
+
+This function can be passed to g_hash_table_new() as the @key_equal_func
+parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="137"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="811">%TRUE if the two colors are the same.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="v1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="803">a #ClutterColor</doc>
+            <type name="Color" c:type="gconstpointer"/>
+          </instance-parameter>
+          <parameter name="v2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="804">a #ClutterColor</doc>
+            <type name="Color" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_color_free" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="919">Frees a color structure created with clutter_color_copy().</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="921">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hash" c:identifier="clutter_color_hash" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="836">Converts a #ClutterColor to a hash value.
+
+This function can be passed to g_hash_table_new() as the @hash_func
+parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="135"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="845">a hash value corresponding to the color</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="v" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="838">a #ClutterColor</doc>
+            <type name="Color" c:type="gconstpointer"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="init" c:identifier="clutter_color_init" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="983">Initializes @color with the given values.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="993">the initialized #ClutterColor</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="985">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="986">red component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="987">green component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="988">blue component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="989">alpha component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="interpolate"
+              c:identifier="clutter_color_interpolate"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="855">Interpolates between @initial and @final #ClutterColor&lt;!-- --&gt;s
+using @progress</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="141"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="initial" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="857">the initial #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="858">the final #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="859">the interpolation progress</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="860">return location for the interpolation</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lighten" c:identifier="clutter_color_lighten">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="182">Lightens @color by a fixed amount, and saves the changed color
+in @result.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="101"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="184">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="185">return location for the lighter color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="shade" c:identifier="clutter_color_shade">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="365">Shades @color by @factor and saves the modified color into @result.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="107"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="367">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="368">the shade factor to apply</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="369">return location for the shaded color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="subtract" c:identifier="clutter_color_subtract">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="152">Subtracts @b from @a and saves the resulting color inside @result.
+
+This function assumes that the components of @a are greater than the
+components of @b; the result is, otherwise, undefined.
+
+The alpha channel of @result is set as the minimum value
+between the alpha channels of @a and @b.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="154">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="155">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="156">return location for the result</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_hls" c:identifier="clutter_color_to_hls">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="212">Converts @color to the HLS format.
+
+The @hue value is in the 0 .. 360 range. The @luminance and
+@saturation values are in the 0 .. 1 range.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="118"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="214">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+          <parameter name="hue"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="215">return location for the hue value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="luminance"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="216">return location for the luminance value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="saturation"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="217">return location for the saturation value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_pixel" c:identifier="clutter_color_to_pixel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="393">Converts @color into a packed 32 bit integer, containing
+all the four 8 bit channels used by #ClutterColor.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="129"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="400">a packed color</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="395">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="to_string"
+              c:identifier="clutter_color_to_string"
+              version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="775">Returns a textual specification of @color in the hexadecimal form
+&lt;literal&gt;&amp;num;rrggbbaa&lt;/literal&gt;, where &lt;literal&gt;r&lt;/literal&gt;,
+&lt;literal&gt;g&lt;/literal&gt;, &lt;literal&gt;b&lt;/literal&gt; and &lt;literal&gt;a&lt;/literal&gt; are
+hexadecimal digits representing the red, green, blue and alpha components
+respectively.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="112"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="785">a newly-allocated text string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="777">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <function name="from_hls" c:identifier="clutter_color_from_hls">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="301">Converts a color expressed in HLS (hue, luminance and saturation)
+values into a #ClutterColor.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="123"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="303">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="hue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="304">hue value, in the 0 .. 360 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="luminance" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="305">luminance value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="saturation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="306">saturation value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_pixel" c:identifier="clutter_color_from_pixel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="413">Converts @pixel from the packed representation of a four 8 bit channel
+color to a #ClutterColor.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="131"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="415">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="pixel" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="416">a 32 bit packed integer containing a color</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_string"
+                c:identifier="clutter_color_from_string"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="611">Parses a string definition of a color, filling the #ClutterColor.red,
+#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields
+of @color.
+
+The @color is not allocated.
+
+The format of @str can be either one of:
+
+  - a standard name (as taken from the X11 rgb.txt file)
+  - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa`
+  - a RGB color in the form: `rgb(r, g, b)`
+  - a RGB color in the form: `rgba(r, g, b, a)`
+  - a HSL color in the form: `hsl(h, s, l)`
+   -a HSL color in the form: `hsla(h, s, l, a)`
+
+where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color
+intensities and the opacity. The 'h', 's' and 'l' are (respectively) the
+hue, saturation and luminance values.
+
+In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either
+integers between 0 and 255, or percentage values in the range between 0%
+and 100%; the percentages require the '%' character. The 'a' value, if
+specified, can only be a floating point value between 0.0 and 1.0.
+
+In the hls() and hlsa() formats, the 'h' value (hue) is an angle between
+0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are
+percentage values in the range between 0% and 100%. The 'a' value, if specified,
+can only be a floating point value between 0.0 and 1.0.
+
+Whitespace inside the definitions is ignored; no leading whitespace
+is allowed.
+
+If the alpha component is not specified then it is assumed to be set to
+be fully opaque.</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="114"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="651">%TRUE if parsing succeeded, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="613">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="614">a string specifying a color</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_static"
+                c:identifier="clutter_color_get_static"
+                version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="102">Retrieves a static color for the given @color name
+
+Static colors are created by Clutter and are guaranteed to always be
+available and valid</doc>
+        <source-position filename="../clutter/clutter/clutter-color.h"
+                         line="196"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="111">a pointer to a static color; the returned pointer
+  is owned by Clutter and it should never be modified or freed</doc>
+          <type name="Color" c:type="const ClutterColor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-color.c"
+                 line="104">the named global color</doc>
+            <type name="StaticColor" c:type="ClutterStaticColor"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <class name="ColorNode"
+           c:symbol-prefix="color_node"
+           c:type="ClutterColorNode"
+           version="1.10"
+           parent="PipelineNode"
+           glib:type-name="ClutterColorNode"
+           glib:get-type="clutter_color_node_get_type"
+           glib:type-struct="ColorNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="41">The #ClutterTextNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="50"/>
+      <constructor name="new"
+                   c:identifier="clutter_color_node_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-nodes.c"
+             line="622">Creates a new #ClutterPaintNode that will paint a solid color
+fill using @color.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="56"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-nodes.c"
+               line="629">the newly created #ClutterPaintNode. Use
+  clutter_paint_node_unref() when done</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="624">the color to paint, or %NULL</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="ColorNodeClass"
+            c:type="ClutterColorNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="ColorNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="592">The `ClutterColorNodeClass` structure is an
+opaque type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="50"/>
+    </record>
+    <class name="ColorizeEffect"
+           c:symbol-prefix="colorize_effect"
+           c:type="ClutterColorizeEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterColorizeEffect"
+           glib:get-type="clutter_colorize_effect_get_type"
+           glib:type-struct="ColorizeEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-colorize-effect.h"
+           line="41">#ClutterColorizeEffect is an opaque structure
+whose members cannot be directly accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                       line="50"/>
+      <constructor name="new"
+                   c:identifier="clutter_colorize_effect_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-colorize-effect.c"
+             line="312">Creates a new #ClutterColorizeEffect to be used with
+clutter_actor_add_effect()</doc>
+        <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-colorize-effect.c"
+               line="319">the newly created #ClutterColorizeEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="tint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-colorize-effect.c"
+                 line="314">the color to be used</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_tint"
+              c:identifier="clutter_colorize_effect_get_tint"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-colorize-effect.c"
+             line="355">Retrieves the tint used by @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-colorize-effect.c"
+                 line="357">a #ClutterColorizeEffect</doc>
+            <type name="ColorizeEffect" c:type="ClutterColorizeEffect*"/>
+          </instance-parameter>
+          <parameter name="tint"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-colorize-effect.c"
+                 line="358">return location for the color used</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_tint"
+              c:identifier="clutter_colorize_effect_set_tint"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-colorize-effect.c"
+             line="331">Sets the tint to be used when colorizing</doc>
+        <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-colorize-effect.c"
+                 line="333">a #ClutterColorizeEffect</doc>
+            <type name="ColorizeEffect" c:type="ClutterColorizeEffect*"/>
+          </instance-parameter>
+          <parameter name="tint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-colorize-effect.c"
+                 line="334">the color to be used</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="tint"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-colorize-effect.c"
+             line="244">The tint to apply to the actor</doc>
+        <type name="Color"/>
+      </property>
+    </class>
+    <record name="ColorizeEffectClass"
+            c:type="ClutterColorizeEffectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="ColorizeEffect">
+      <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                       line="50"/>
+    </record>
+    <class name="Constraint"
+           c:symbol-prefix="constraint"
+           c:type="ClutterConstraint"
+           version="1.4"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterConstraint"
+           glib:get-type="clutter_constraint_get_type"
+           glib:type-struct="ConstraintClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-constraint.h"
+           line="45">The #ClutterConstraint structure contains only
+private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="97"/>
+      <virtual-method name="update_allocation">
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_preferred_size"
+                      invoker="update_preferred_size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-constraint.c"
+             line="223">Asks the @constraint to update the size request of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="225">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="226">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="227">a #ClutterOrientation</doc>
+            <type name="Orientation" c:type="ClutterOrientation"/>
+          </parameter>
+          <parameter name="for_size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="228">the size in the opposite direction</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="minimum_size"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="229">the minimum size to modify</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="natural_size"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="230">the natural size to modify</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="update_preferred_size"
+              c:identifier="clutter_constraint_update_preferred_size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-constraint.c"
+             line="223">Asks the @constraint to update the size request of a #ClutterActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-constraint.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="225">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="226">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="227">a #ClutterOrientation</doc>
+            <type name="Orientation" c:type="ClutterOrientation"/>
+          </parameter>
+          <parameter name="for_size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="228">the size in the opposite direction</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="minimum_size"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="229">the minimum size to modify</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="natural_size"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-constraint.c"
+                 line="230">the natural size to modify</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="ConstraintClass"
+            c:type="ClutterConstraintClass"
+            glib:is-gtype-struct-for="Constraint"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-constraint.h"
+           line="59">The #ClutterConstraintClass structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="97"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="update_allocation">
+        <callback name="update_allocation">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="constraint" transfer-ownership="none">
+              <type name="Constraint" c:type="ClutterConstraint*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="allocation" transfer-ownership="none">
+              <type name="ActorBox" c:type="ClutterActorBox*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_preferred_size">
+        <callback name="update_preferred_size">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="82"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="constraint" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="225">a #ClutterConstraint</doc>
+              <type name="Constraint" c:type="ClutterConstraint*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="226">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="227">a #ClutterOrientation</doc>
+              <type name="Orientation" c:type="ClutterOrientation"/>
+            </parameter>
+            <parameter name="for_size" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="228">the size in the opposite direction</doc>
+              <type name="gfloat" c:type="float"/>
+            </parameter>
+            <parameter name="minimum_size"
+                       direction="inout"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="229">the minimum size to modify</doc>
+              <type name="gfloat" c:type="float*"/>
+            </parameter>
+            <parameter name="natural_size"
+                       direction="inout"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-constraint.c"
+                   line="230">the natural size to modify</doc>
+              <type name="gfloat" c:type="float*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_constraint1" introspectable="0">
+        <callback name="_clutter_constraint1">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint2" introspectable="0">
+        <callback name="_clutter_constraint2">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint3" introspectable="0">
+        <callback name="_clutter_constraint3">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint4" introspectable="0">
+        <callback name="_clutter_constraint4">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="93"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint5" introspectable="0">
+        <callback name="_clutter_constraint5">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="94"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint6" introspectable="0">
+        <callback name="_clutter_constraint6">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint7" introspectable="0">
+        <callback name="_clutter_constraint7">
+          <source-position filename="../clutter/clutter/clutter-constraint.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <interface name="Container"
+               c:symbol-prefix="container"
+               c:type="ClutterContainer"
+               version="0.4"
+               glib:type-name="ClutterContainer"
+               glib:get-type="clutter_container_get_type"
+               glib:type-struct="ContainerIface">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-container.h"
+           line="47">#ClutterContainer is an opaque structure whose members cannot be directly
+accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="127"/>
+      <function name="class_find_child_property"
+                c:identifier="clutter_container_class_find_child_property"
+                version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="858">Looks up the #GParamSpec for a child property of @klass.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="137"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="865">The #GParamSpec for the property or %NULL
+  if no such property exist.</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <parameter name="klass" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="860">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+            <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="861">a property name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="class_list_child_properties"
+                c:identifier="clutter_container_class_list_child_properties"
+                version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="897">Returns an array of #GParamSpec for all child properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="140"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="904">an array
+  of #GParamSpec&lt;!-- --&gt;s which should be freed after use.</doc>
+          <array length="1" zero-terminated="0" c:type="GParamSpec**">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="klass" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="899">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+            <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+          </parameter>
+          <parameter name="n_properties"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="900">return location for length of returned array.</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="actor_added">
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="actor_removed">
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="121"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="add"
+                      invoker="add_actor"
+                      version="0.4"
+                      deprecated="1"
+                      deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="360">Adds a #ClutterActor to @container. This function will emit the
+"actor-added" signal. The actor should be parented to
+@container. You cannot add a #ClutterActor to more than one
+#ClutterContainer.
+
+This function will call #ClutterContainerIface.add(), which is a
+deprecated virtual function. The default implementation will
+call clutter_actor_add_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_add_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="362">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="363">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="child_notify" invoker="child_notify" version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="1227">Calls the #ClutterContainerIface.child_notify() virtual function
+of #ClutterContainer. The default implementation will emit the
+#ClutterContainer::child-notify signal.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="124"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1229">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1230">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1231">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_child_meta"
+                      invoker="create_child_meta"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="787">Creates the #ClutterChildMeta wrapping @actor inside the
+@container, if the #ClutterContainerIface::child_meta_type
+class member is not set to %G_TYPE_INVALID.
+
+This function is only useful when adding a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+
+Applications should not call this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="111"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="789">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="790">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="destroy_child_meta"
+                      invoker="destroy_child_meta"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="824">Destroys the #ClutterChildMeta wrapping @actor inside the
+@container, if any.
+
+This function is only useful when removing a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+
+Applications should not call this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="826">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="827">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_child_meta"
+                      invoker="get_child_meta"
+                      version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="758">Retrieves the #ClutterChildMeta which contains the data about the
+@container specific state for @actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="115"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="766">the #ClutterChildMeta for the @actor child
+  of @container or %NULL if the specifiec actor does not exist or the
+  container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
+          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="760">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="761">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="lower"
+                      invoker="lower_child"
+                      version="0.6"
+                      deprecated="1"
+                      deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="542">Lowers @actor to @sibling level, in the depth ordering.
+
+This function calls the #ClutterContainerIface.lower() virtual function,
+which has been deprecated. The default implementation will call
+clutter_actor_set_child_below_sibling().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_set_child_below_sibling() 
instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="544">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="545">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="546">the sibling to lower to, or %NULL to lower
+  to the bottom</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="raise"
+                      invoker="raise_child"
+                      version="0.6"
+                      deprecated="1"
+                      deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="473">Raises @actor to @sibling level, in the depth ordering.
+
+This function calls the #ClutterContainerIface.raise() virtual function,
+which has been deprecated. The default implementation will call
+clutter_actor_set_child_above_sibling().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_set_child_above_sibling() 
instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="101"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="475">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="476">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="477">the sibling to raise to, or %NULL to raise
+  to the top</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove"
+                      invoker="remove_actor"
+                      version="0.4"
+                      deprecated="1"
+                      deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="423">Removes @actor from @container. The actor should be unparented, so
+if you want to keep it around you must hold a reference to it
+yourself, using g_object_ref(). When the actor has been removed,
+the "actor-removed" signal is emitted by @container.
+
+This function will call #ClutterContainerIface.remove(), which is a
+deprecated virtual function. The default implementation will call
+clutter_actor_remove_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_remove_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="425">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="426">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="sort_depth_order"
+                      invoker="sort_depth_order"
+                      version="0.6"
+                      deprecated="1"
+                      deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="611">Sorts a container's children using their depth. This function should not
+be normally used by applications.</doc>
+        <doc-deprecated xml:space="preserve">The #ClutterContainerIface.sort_depth_order() virtual
+  function should not be used any more; the default implementation in
+  #ClutterContainer does not do anything.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="107"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="613">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add"
+              c:identifier="clutter_container_add"
+              version="0.4"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="326">Adds a list of #ClutterActor&lt;!-- --&gt;s to @container. Each time and
+actor is added, the "actor-added" signal is emitted. Each actor should
+be parented to @container, which takes a reference on the actor. You
+cannot add a #ClutterActor to more than one #ClutterContainer.
+
+This function will call #ClutterContainerIface.add(), which is a
+deprecated virtual function. The default implementation will
+call clutter_actor_add_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_add_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="38"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="328">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="329">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="330">%NULL terminated list of actors to add</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_actor"
+              c:identifier="clutter_container_add_actor"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="360">Adds a #ClutterActor to @container. This function will emit the
+"actor-added" signal. The actor should be parented to
+@container. You cannot add a #ClutterActor to more than one
+#ClutterContainer.
+
+This function will call #ClutterContainerIface.add(), which is a
+deprecated virtual function. The default implementation will
+call clutter_actor_add_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_add_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="362">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="363">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get"
+              c:identifier="clutter_container_child_get"
+              version="0.8"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="1151">Gets @container specific properties of an actor.
+
+In general, a copy is made of the property contents and the caller is
+responsible for freeing the memory in the appropriate manner for the type, for
+instance by calling g_free() or g_object_unref().</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="169"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1153">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1154">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_prop" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1155">name of the first property to be set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1156">value for the first property, followed optionally by more name/value
+pairs terminated with NULL.</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get_property"
+              c:identifier="clutter_container_child_get_property"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="1097">Gets a container specific property of a child of @container, In general,
+a copy is made of the property contents and the caller is responsible for
+freeing the memory by calling g_value_unset().
+
+Note that clutter_container_child_set_property() is really intended for
+language bindings, clutter_container_child_set() is much more convenient
+for C programming.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="159"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1099">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1100">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1101">the name of the property to set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1102">the value.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_notify"
+              c:identifier="clutter_container_child_notify"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="1227">Calls the #ClutterContainerIface.child_notify() virtual function
+of #ClutterContainer. The default implementation will emit the
+#ClutterContainer::child-notify signal.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="175"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1229">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1230">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1231">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set"
+              c:identifier="clutter_container_child_set"
+              version="0.8"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="1007">Sets container specific properties on the child of a container.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="164"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1009">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1010">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_prop" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1011">name of the first property to be set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="1012">value for the first property, followed optionally by more name/value
+pairs terminated with NULL.</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set_property"
+              c:identifier="clutter_container_child_set_property"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="960">Sets a container-specific property on a child of @container.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="154"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="962">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="963">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="964">the name of the property to set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="965">the value.</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_child_meta"
+              c:identifier="clutter_container_create_child_meta"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="787">Creates the #ClutterChildMeta wrapping @actor inside the
+@container, if the #ClutterContainerIface::child_meta_type
+class member is not set to %G_TYPE_INVALID.
+
+This function is only useful when adding a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+
+Applications should not call this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="144"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="789">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="790">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy_child_meta"
+              c:identifier="clutter_container_destroy_child_meta"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="824">Destroys the #ClutterChildMeta wrapping @actor inside the
+@container, if any.
+
+This function is only useful when removing a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+
+Applications should not call this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="147"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="826">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="827">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_child_by_name"
+              c:identifier="clutter_container_find_child_by_name"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="647">Finds a child actor of a container by its name. Search recurses
+into any child container.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="133"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="655">The child actor with the requested name,
+  or %NULL if no actor with that name was found.</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="649">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="child_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="650">the name of the requested child.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_meta"
+              c:identifier="clutter_container_get_child_meta"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="758">Retrieves the #ClutterChildMeta which contains the data about the
+@container specific state for @actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-container.h"
+                         line="150"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="766">the #ClutterChildMeta for the @actor child
+  of @container or %NULL if the specifiec actor does not exist or the
+  container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
+          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="760">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="761">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_children"
+              c:identifier="clutter_container_get_children"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="451">Retrieves all the children of @container.</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_get_children() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="56"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="457">a list
+  of #ClutterActor&lt;!-- --&gt;s. Use g_list_free() on the returned
+  list when done.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Actor"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="453">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="lower_child"
+              c:identifier="clutter_container_lower_child"
+              version="0.6"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="542">Lowers @actor to @sibling level, in the depth ordering.
+
+This function calls the #ClutterContainerIface.lower() virtual function,
+which has been deprecated. The default implementation will call
+clutter_actor_set_child_below_sibling().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_set_child_below_sibling() 
instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="544">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="545">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="546">the sibling to lower to, or %NULL to lower
+  to the bottom</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="raise_child"
+              c:identifier="clutter_container_raise_child"
+              version="0.6"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="473">Raises @actor to @sibling level, in the depth ordering.
+
+This function calls the #ClutterContainerIface.raise() virtual function,
+which has been deprecated. The default implementation will call
+clutter_actor_set_child_above_sibling().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_set_child_above_sibling() 
instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="475">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="476">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="477">the sibling to raise to, or %NULL to raise
+  to the top</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="clutter_container_remove"
+              version="0.4"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="388">Removes a %NULL terminated list of #ClutterActor&lt;!-- --&gt;s from
+@container. Each actor should be unparented, so if you want to keep it
+around you must hold a reference to it yourself, using g_object_ref().
+Each time an actor is removed, the "actor-removed" signal is
+emitted by @container.
+
+This function will call #ClutterContainerIface.remove(), which is a
+deprecated virtual function. The default implementation will call
+clutter_actor_remove_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_remove_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="390">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="391">first #ClutterActor to remove</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="392">a %NULL-terminated list of actors to remove</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_actor"
+              c:identifier="clutter_container_remove_actor"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="423">Removes @actor from @container. The actor should be unparented, so
+if you want to keep it around you must hold a reference to it
+yourself, using g_object_ref(). When the actor has been removed,
+the "actor-removed" signal is emitted by @container.
+
+This function will call #ClutterContainerIface.remove(), which is a
+deprecated virtual function. The default implementation will call
+clutter_actor_remove_child().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_actor_remove_child() instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="425">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="426">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sort_depth_order"
+              c:identifier="clutter_container_sort_depth_order"
+              version="0.6"
+              deprecated="1"
+              deprecated-version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="611">Sorts a container's children using their depth. This function should not
+be normally used by applications.</doc>
+        <doc-deprecated xml:space="preserve">The #ClutterContainerIface.sort_depth_order() virtual
+  function should not be used any more; the default implementation in
+  #ClutterContainer does not do anything.</doc-deprecated>
+        <source-position filename="../clutter/clutter/deprecated/clutter-container.h"
+                         line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="613">a #ClutterContainer</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="actor-added" when="first" version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="155">The ::actor-added signal is emitted each time an actor
+has been added to @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="158">the new child that has been added to @container</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="actor-removed" when="first" version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="173">The ::actor-removed signal is emitted each time an actor
+is removed from @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="176">the child that has been removed from @container</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="child-notify" when="first" detailed="1" version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="192">The ::child-notify signal is emitted each time a property is
+being set through the clutter_container_child_set() and
+clutter_container_child_set_property() calls.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="195">the child that has had a property set</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="196">the #GParamSpec of the property set</doc>
+            <type name="GObject.ParamSpec"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="ContainerIface"
+            c:type="ClutterContainerIface"
+            glib:is-gtype-struct-for="Container"
+            version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-container.h"
+           line="56">Base interface for container actors. The @add and @remove
+virtual functions must be provided by any implementation; the other
+virtual functions are optional.</doc>
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="127"/>
+      <field name="g_iface" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="add">
+        <callback name="add">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="362">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="363">the first #ClutterActor to add</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove">
+        <callback name="remove">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="97"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="425">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="426">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="raise">
+        <callback name="raise">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="101"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="475">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="476">the actor to raise</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="sibling"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="477">the sibling to raise to, or %NULL to raise
+  to the top</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="lower">
+        <callback name="lower">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="104"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="544">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="545">the actor to raise</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="sibling"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="546">the sibling to lower to, or %NULL to lower
+  to the bottom</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sort_depth_order">
+        <callback name="sort_depth_order">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="107"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="613">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_meta_type">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.h"
+             line="69">The GType used for storing auxiliary information about
+  each of the containers children.</doc>
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="create_child_meta">
+        <callback name="create_child_meta">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="111"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="789">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="790">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy_child_meta">
+        <callback name="destroy_child_meta">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="113"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="826">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="827">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_child_meta">
+        <callback name="get_child_meta">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="115"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-container.c"
+                 line="766">the #ClutterChildMeta for the @actor child
+  of @container or %NULL if the specifiec actor does not exist or the
+  container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
+            <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="760">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="761">a #ClutterActor that is a child of @container.</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="actor_added">
+        <callback name="actor_added">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="119"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="actor_removed">
+        <callback name="actor_removed">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="121"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_notify">
+        <callback name="child_notify">
+          <source-position filename="../clutter/clutter/clutter-container.h"
+                           line="124"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="1229">a #ClutterContainer</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="child" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="1230">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-container.c"
+                   line="1231">a #GParamSpec</doc>
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <interface name="Content"
+               c:symbol-prefix="content"
+               c:type="ClutterContent"
+               glib:type-name="ClutterContent"
+               glib:get-type="clutter_content_get_type"
+               glib:type-struct="ContentInterface">
+      <source-position filename="../clutter/clutter/clutter-content.h"
+                       line="81"/>
+      <virtual-method name="attached">
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="detached">
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_size"
+                      invoker="get_preferred_size"
+                      version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="322">Retrieves the natural size of the @content, if any.
+
+The natural size of a #ClutterContent is defined as the size the content
+would have regardless of the allocation of the actor that is painting it,
+for instance the size of an image data.</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-content.c"
+               line="334">%TRUE if the content has a preferred size, and %FALSE
+  otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="324">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="325">return location for the natural width of the content</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="326">return location for the natural height of the content</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="invalidate" invoker="invalidate" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="157">Invalidates a #ClutterContent.
+
+This function should be called by #ClutterContent implementations when
+they change the way a the content should be painted regardless of the
+actor state.</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="159">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="invalidate_size" invoker="invalidate_size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="195">Signals that @content's size changed. Attached actors with request mode
+set to %CLUTTER_REQUEST_CONTENT_SIZE will have a relayout queued.
+
+Attached actors with other request modes are not redrawn. To redraw them
+too, use clutter_content_invalidate().</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="197">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint_content">
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_preferred_size"
+              c:identifier="clutter_content_get_preferred_size"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="322">Retrieves the natural size of the @content, if any.
+
+The natural size of a #ClutterContent is defined as the size the content
+would have regardless of the allocation of the actor that is painting it,
+for instance the size of an image data.</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-content.c"
+               line="334">%TRUE if the content has a preferred size, and %FALSE
+  otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="324">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="325">return location for the natural width of the content</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="326">return location for the natural height of the content</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate"
+              c:identifier="clutter_content_invalidate"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="157">Invalidates a #ClutterContent.
+
+This function should be called by #ClutterContent implementations when
+they change the way a the content should be painted regardless of the
+actor state.</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="88"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="159">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_size"
+              c:identifier="clutter_content_invalidate_size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="195">Signals that @content's size changed. Attached actors with request mode
+set to %CLUTTER_REQUEST_CONTENT_SIZE will have a relayout queued.
+
+Attached actors with other request modes are not redrawn. To redraw them
+too, use clutter_content_invalidate().</doc>
+        <source-position filename="../clutter/clutter/clutter-content.h"
+                         line="91"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="content" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="197">a #ClutterContent</doc>
+            <type name="Content" c:type="ClutterContent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="attached" when="first" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="118">This signal is emitted each time a #ClutterContent implementation is
+assigned to a #ClutterActor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="121">a #ClutterActor</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="detached" when="first" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-content.c"
+             line="137">This signal is emitted each time a #ClutterContent implementation is
+removed from a #ClutterActor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="140">a #ClutterActor</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <enumeration name="ContentGravity"
+                 version="1.10"
+                 glib:type-name="ClutterContentGravity"
+                 glib:get-type="clutter_content_gravity_get_type"
+                 c:type="ClutterContentGravity">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1332">Controls the alignment of the #ClutterContent inside a #ClutterActor.</doc>
+      <member name="top_left"
+              value="0"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_TOP_LEFT"
+              glib:nick="top-left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1334">Align the content to the top left corner</doc>
+      </member>
+      <member name="top"
+              value="1"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1335">Align the content to the top edge</doc>
+      </member>
+      <member name="top_right"
+              value="2"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_TOP_RIGHT"
+              glib:nick="top-right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1336">Align the content to the top right corner</doc>
+      </member>
+      <member name="left"
+              value="3"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1337">Align the content to the left edge</doc>
+      </member>
+      <member name="center"
+              value="4"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_CENTER"
+              glib:nick="center">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1338">Align the content to the center</doc>
+      </member>
+      <member name="right"
+              value="5"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1339">Align the content to the right edge</doc>
+      </member>
+      <member name="bottom_left"
+              value="6"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_BOTTOM_LEFT"
+              glib:nick="bottom-left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1340">Align the content to the bottom left corner</doc>
+      </member>
+      <member name="bottom"
+              value="7"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1341">Align the content to the bottom edge</doc>
+      </member>
+      <member name="bottom_right"
+              value="8"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_BOTTOM_RIGHT"
+              glib:nick="bottom-right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1342">Align the content to the bottom right corner</doc>
+      </member>
+      <member name="resize_fill"
+              value="9"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_RESIZE_FILL"
+              glib:nick="resize-fill">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1343">Resize the content to fill the allocation</doc>
+      </member>
+      <member name="resize_aspect"
+              value="10"
+              c:identifier="CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT"
+              glib:nick="resize-aspect">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1344">Resize the content to remain within the
+  allocation, while maintaining the aspect ratio</doc>
+      </member>
+    </enumeration>
+    <record name="ContentInterface"
+            c:type="ClutterContentInterface"
+            glib:is-gtype-struct-for="Content"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-content.h"
+           line="41">The #ClutterContentInterface structure contains only
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-content.h"
+                       line="81"/>
+      <field name="g_iface" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_preferred_size">
+        <callback name="get_preferred_size">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="65"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-content.c"
+                 line="334">%TRUE if the content has a preferred size, and %FALSE
+  otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-content.c"
+                   line="324">a #ClutterContent</doc>
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+            <parameter name="width"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-content.c"
+                   line="325">return location for the natural width of the content</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="height"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-content.c"
+                   line="326">return location for the natural height of the content</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint_content">
+        <callback name="paint_content">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="68"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="node" transfer-ownership="none">
+              <type name="PaintNode" c:type="ClutterPaintNode*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="attached">
+        <callback name="attached">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="73"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="detached">
+        <callback name="detached">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="invalidate">
+        <callback name="invalidate">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-content.c"
+                   line="159">a #ClutterContent</doc>
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="invalidate_size">
+        <callback name="invalidate_size">
+          <source-position filename="../clutter/clutter/clutter-content.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="content" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-content.c"
+                   line="197">a #ClutterContent</doc>
+              <type name="Content" c:type="ClutterContent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <bitfield name="ContentRepeat"
+              version="1.12"
+              glib:type-name="ClutterContentRepeat"
+              glib:get-type="clutter_content_repeat_get_type"
+              c:type="ClutterContentRepeat">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1444">Content repeat modes.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_REPEAT_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1446">No repeat</doc>
+      </member>
+      <member name="x_axis"
+              value="1"
+              c:identifier="CLUTTER_REPEAT_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1447">Repeat the content on the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="2"
+              c:identifier="CLUTTER_REPEAT_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1448">Repeat the content on the Y axis</doc>
+      </member>
+      <member name="both"
+              value="3"
+              c:identifier="CLUTTER_REPEAT_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1449">Repeat the content on both axis</doc>
+      </member>
+    </bitfield>
+    <record name="CrossingEvent" c:type="ClutterCrossingEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="246">Event for the movement of the pointer across different actors</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="276"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="248">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="249">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="250">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="251">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="252">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="253">event X coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="254">event Y coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="256">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="sequence" writable="1">
+        <type name="EventSequence" c:type="ClutterEventSequence*"/>
+      </field>
+      <field name="related" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="255">actor related to the crossing</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </record>
+    <function-macro name="DEFORM_EFFECT"
+                    c:identifier="CLUTTER_DEFORM_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFORM_EFFECT_CLASS"
+                    c:identifier="CLUTTER_DEFORM_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEFORM_EFFECT_GET_CLASS"
+                    c:identifier="CLUTTER_DEFORM_EFFECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_FOR"
+                    c:identifier="CLUTTER_DEPRECATED_FOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="113"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DEPRECATED_MACRO_FOR"
+                    c:identifier="CLUTTER_DEPRECATED_MACRO_FOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="115"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DESATURATE_EFFECT"
+                    c:identifier="CLUTTER_DESATURATE_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <bitfield name="DebugFlag"
+              glib:type-name="ClutterDebugFlag"
+              glib:get-type="clutter_debug_flag_get_type"
+              c:type="ClutterDebugFlag">
+      <member name="misc"
+              value="1"
+              c:identifier="CLUTTER_DEBUG_MISC"
+              glib:nick="misc">
+      </member>
+      <member name="actor"
+              value="2"
+              c:identifier="CLUTTER_DEBUG_ACTOR"
+              glib:nick="actor">
+      </member>
+      <member name="texture"
+              value="4"
+              c:identifier="CLUTTER_DEBUG_TEXTURE"
+              glib:nick="texture">
+      </member>
+      <member name="event"
+              value="8"
+              c:identifier="CLUTTER_DEBUG_EVENT"
+              glib:nick="event">
+      </member>
+      <member name="paint"
+              value="16"
+              c:identifier="CLUTTER_DEBUG_PAINT"
+              glib:nick="paint">
+      </member>
+      <member name="pango"
+              value="32"
+              c:identifier="CLUTTER_DEBUG_PANGO"
+              glib:nick="pango">
+      </member>
+      <member name="backend"
+              value="64"
+              c:identifier="CLUTTER_DEBUG_BACKEND"
+              glib:nick="backend">
+      </member>
+      <member name="scheduler"
+              value="128"
+              c:identifier="CLUTTER_DEBUG_SCHEDULER"
+              glib:nick="scheduler">
+      </member>
+      <member name="script"
+              value="256"
+              c:identifier="CLUTTER_DEBUG_SCRIPT"
+              glib:nick="script">
+      </member>
+      <member name="shader"
+              value="512"
+              c:identifier="CLUTTER_DEBUG_SHADER"
+              glib:nick="shader">
+      </member>
+      <member name="multistage"
+              value="1024"
+              c:identifier="CLUTTER_DEBUG_MULTISTAGE"
+              glib:nick="multistage">
+      </member>
+      <member name="animation"
+              value="2048"
+              c:identifier="CLUTTER_DEBUG_ANIMATION"
+              glib:nick="animation">
+      </member>
+      <member name="layout"
+              value="4096"
+              c:identifier="CLUTTER_DEBUG_LAYOUT"
+              glib:nick="layout">
+      </member>
+      <member name="pick"
+              value="8192"
+              c:identifier="CLUTTER_DEBUG_PICK"
+              glib:nick="pick">
+      </member>
+      <member name="eventloop"
+              value="16384"
+              c:identifier="CLUTTER_DEBUG_EVENTLOOP"
+              glib:nick="eventloop">
+      </member>
+      <member name="clipping"
+              value="32768"
+              c:identifier="CLUTTER_DEBUG_CLIPPING"
+              glib:nick="clipping">
+      </member>
+      <member name="oob_transforms"
+              value="65536"
+              c:identifier="CLUTTER_DEBUG_OOB_TRANSFORMS"
+              glib:nick="oob-transforms">
+      </member>
+    </bitfield>
+    <class name="DeformEffect"
+           c:symbol-prefix="deform_effect"
+           c:type="ClutterDeformEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           abstract="1"
+           glib:type-name="ClutterDeformEffect"
+           glib:get-type="clutter_deform_effect_get_type"
+           glib:type-struct="DeformEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-deform-effect.h"
+           line="48">The #ClutterDeformEffect structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="93"/>
+      <virtual-method name="deform_vertex">
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="vertex" transfer-ownership="none">
+            <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_back_material"
+              c:identifier="clutter_deform_effect_get_back_material"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="686">Retrieves the handle to the back face material used by @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-deform-effect.c"
+               line="692">a handle for the material, or %NULL.
+  The returned material is owned by the #ClutterDeformEffect and it
+  should not be freed directly</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="688">a #ClutterDeformEffect</doc>
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_tiles"
+              c:identifier="clutter_deform_effect_get_n_tiles"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="762">Retrieves the number of horizontal and vertical tiles used to sub-divide
+the actor's geometry during the effect</doc>
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="108"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="764">a #ClutterDeformEffect</doc>
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+          <parameter name="x_tiles"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="765">return location for the number of horizontal tiles,
+  or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="y_tiles"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="767">return location for the number of vertical tiles,
+  or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate"
+              c:identifier="clutter_deform_effect_invalidate"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="789">Invalidates the @effect&lt;!-- --&gt;'s vertices and, if it is associated
+to an actor, it will queue a redraw</doc>
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="791">a #ClutterDeformEffect</doc>
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_back_material"
+              c:identifier="clutter_deform_effect_set_back_material"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="652">Sets the material that should be used when drawing the back face
+of the actor during a deformation
+
+The #ClutterDeformEffect will take a reference on the material's
+handle</doc>
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="654">a #ClutterDeformEffect</doc>
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+          <parameter name="material"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="655">a handle to a Cogl material</doc>
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_n_tiles"
+              c:identifier="clutter_deform_effect_set_n_tiles"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="706">Sets the number of horizontal and vertical tiles to be used
+when applying the effect
+
+More tiles allow a finer grained deformation at the expenses
+of computation</doc>
+        <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="708">a #ClutterDeformEffect</doc>
+            <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+          </instance-parameter>
+          <parameter name="x_tiles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="709">number of horizontal tiles</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="y_tiles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-deform-effect.c"
+                 line="710">number of vertical tiles</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="back-material"
+                version="1.4"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="613">A material to be used when painting the back of the actor
+to which this effect has been applied
+
+By default, no material will be used</doc>
+        <type/>
+      </property>
+      <property name="x-tiles"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="581">The number of horizontal tiles. The bigger the number, the
+smaller the tiles</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="y-tiles"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-deform-effect.c"
+             line="597">The number of vertical tiles. The bigger the number, the
+smaller the tiles</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="DeformEffectPrivate" c:type="ClutterDeformEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="DeformEffectClass"
+            c:type="ClutterDeformEffectClass"
+            glib:is-gtype-struct-for="DeformEffect"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-deform-effect.h"
+           line="64">The #ClutterDeformEffectClass structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="OffscreenEffectClass"
+              c:type="ClutterOffscreenEffectClass"/>
+      </field>
+      <field name="deform_vertex">
+        <callback name="deform_vertex">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="vertex" transfer-ownership="none">
+              <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_deform1" introspectable="0">
+        <callback name="_clutter_deform1">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform2" introspectable="0">
+        <callback name="_clutter_deform2">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform3" introspectable="0">
+        <callback name="_clutter_deform3">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform4" introspectable="0">
+        <callback name="_clutter_deform4">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform5" introspectable="0">
+        <callback name="_clutter_deform5">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform6" introspectable="0">
+        <callback name="_clutter_deform6">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform7" introspectable="0">
+        <callback name="_clutter_deform7">
+          <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DeformEffectPrivate"
+            c:type="ClutterDeformEffectPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="45"/>
+    </record>
+    <class name="DesaturateEffect"
+           c:symbol-prefix="desaturate_effect"
+           c:type="ClutterDesaturateEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterDesaturateEffect"
+           glib:get-type="clutter_desaturate_effect_get_type"
+           glib:type-struct="DesaturateEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-desaturate-effect.h"
+           line="40">#ClutterDesaturateEffect is an opaque structure
+whose members cannot be directly accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_desaturate_effect_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-desaturate-effect.c"
+             line="316">Creates a new #ClutterDesaturateEffect to be used with
+clutter_actor_add_effect()</doc>
+        <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-desaturate-effect.c"
+               line="323">the newly created #ClutterDesaturateEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-desaturate-effect.c"
+                 line="318">the desaturation factor, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_factor"
+              c:identifier="clutter_desaturate_effect_get_factor"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-desaturate-effect.c"
+             line="365">Retrieves the desaturation factor of @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-desaturate-effect.c"
+               line="371">the desaturation factor</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-desaturate-effect.c"
+                 line="367">a #ClutterDesaturateEffect</doc>
+            <type name="DesaturateEffect" c:type="ClutterDesaturateEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_factor"
+              c:identifier="clutter_desaturate_effect_set_factor"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-desaturate-effect.c"
+             line="337">Sets the desaturation factor for @effect, with 0.0 being "do not desaturate"
+and 1.0 being "fully desaturate"</doc>
+        <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-desaturate-effect.c"
+                 line="339">a #ClutterDesaturateEffect</doc>
+            <type name="DesaturateEffect" c:type="ClutterDesaturateEffect*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-desaturate-effect.c"
+                 line="340">the desaturation factor, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="factor"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-desaturate-effect.c"
+             line="261">The desaturation factor, between 0.0 (no desaturation) and 1.0 (full
+desaturation).</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+    </class>
+    <record name="DesaturateEffectClass"
+            c:type="ClutterDesaturateEffectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="DesaturateEffect">
+      <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                       line="49"/>
+    </record>
+    <record name="DeviceEvent" c:type="ClutterDeviceEvent">
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="558"/>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <enumeration name="DragAxis"
+                 version="1.4"
+                 glib:type-name="ClutterDragAxis"
+                 glib:get-type="clutter_drag_axis_get_type"
+                 c:type="ClutterDragAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="809">The axis of the constraint that should be applied on the
+dragging action</doc>
+      <member name="axis_none"
+              value="0"
+              c:identifier="CLUTTER_DRAG_AXIS_NONE"
+              glib:nick="axis-none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="811">No constraint</doc>
+      </member>
+      <member name="x_axis"
+              value="1"
+              c:identifier="CLUTTER_DRAG_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="812">Set a constraint on the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="2"
+              c:identifier="CLUTTER_DRAG_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="813">Set a constraint on the Y axis</doc>
+      </member>
+    </enumeration>
+    <bitfield name="DrawDebugFlag"
+              glib:type-name="ClutterDrawDebugFlag"
+              glib:get-type="clutter_draw_debug_flag_get_type"
+              c:type="ClutterDrawDebugFlag">
+      <member name="disable_swap_events"
+              value="1"
+              c:identifier="CLUTTER_DEBUG_DISABLE_SWAP_EVENTS"
+              glib:nick="disable-swap-events">
+      </member>
+      <member name="disable_clipped_redraws"
+              value="2"
+              c:identifier="CLUTTER_DEBUG_DISABLE_CLIPPED_REDRAWS"
+              glib:nick="disable-clipped-redraws">
+      </member>
+      <member name="redraws"
+              value="4"
+              c:identifier="CLUTTER_DEBUG_REDRAWS"
+              glib:nick="redraws">
+      </member>
+      <member name="paint_volumes"
+              value="8"
+              c:identifier="CLUTTER_DEBUG_PAINT_VOLUMES"
+              glib:nick="paint-volumes">
+      </member>
+      <member name="disable_culling"
+              value="16"
+              c:identifier="CLUTTER_DEBUG_DISABLE_CULLING"
+              glib:nick="disable-culling">
+      </member>
+      <member name="disable_offscreen_redirect"
+              value="32"
+              c:identifier="CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT"
+              glib:nick="disable-offscreen-redirect">
+      </member>
+      <member name="continuous_redraw"
+              value="64"
+              c:identifier="CLUTTER_DEBUG_CONTINUOUS_REDRAW"
+              glib:nick="continuous-redraw">
+      </member>
+      <member name="paint_deform_tiles"
+              value="128"
+              c:identifier="CLUTTER_DEBUG_PAINT_DEFORM_TILES"
+              glib:nick="paint-deform-tiles">
+      </member>
+      <member name="paint_damage_region"
+              value="256"
+              c:identifier="CLUTTER_DEBUG_PAINT_DAMAGE_REGION"
+              glib:nick="paint-damage-region">
+      </member>
+    </bitfield>
+    <function-macro name="EFFECT"
+                    c:identifier="CLUTTER_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="EFFECT_CLASS"
+                    c:identifier="CLUTTER_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="EFFECT_GET_CLASS"
+                    c:identifier="CLUTTER_EFFECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="EVENT_PROPAGATE"
+              value="false"
+              c:type="CLUTTER_EVENT_PROPAGATE"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="57">Continues the propagation of an event; this macro should be
+used in event-related signals.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="65"/>
+      <type name="gboolean" c:type="gboolean"/>
+    </constant>
+    <constant name="EVENT_STOP"
+              value="true"
+              c:type="CLUTTER_EVENT_STOP"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="67">Stops the propagation of an event; this macro should be used
+in event-related signals.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="75"/>
+      <type name="gboolean" c:type="gboolean"/>
+    </constant>
+    <class name="Effect"
+           c:symbol-prefix="effect"
+           c:type="ClutterEffect"
+           version="1.4"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterEffect"
+           glib:get-type="clutter_effect_get_type"
+           glib:type-struct="EffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-effect.h"
+           line="47">The #ClutterEffect structure contains only private data and should
+be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="97"/>
+      <virtual-method name="modify_paint_volume">
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+          <parameter name="volume" transfer-ownership="none">
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint">
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="EffectPaintFlags" c:type="ClutterEffectPaintFlags"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="pick">
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+          <parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="post_paint">
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="pre_paint">
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="queue_repaint"
+              c:identifier="clutter_effect_queue_repaint"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-effect.c"
+             line="322">Queues a repaint of the effect. The effect can detect when the ‘paint’
+method is called as a result of this function because it will not
+have the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag set. In that case the
+effect is free to assume that the actor has not changed its
+appearance since the last time it was painted so it doesn't need to
+call clutter_actor_continue_paint() if it can draw a cached
+image. This is mostly intended for effects that are using a
+%CoglOffscreen to redirect the actor (such as
+%ClutterOffscreenEffect). In that case the effect can save a bit of
+rendering time by painting the cached texture without causing the
+entire actor to be painted.
+
+This function can be used by effects that have their own animatable
+parameters. For example, an effect which adds a varying degree of a
+red tint to an actor by redirecting it through a CoglOffscreen
+might have a property to specify the level of tint. When this value
+changes, the underlying actor doesn't need to be redrawn so the
+effect can call clutter_effect_queue_repaint() to make sure the
+effect is repainted.
+
+Note however that modifying the position of the parent of an actor
+may change the appearance of the actor because its transformation
+matrix would change. In this case a redraw wouldn't be queued on
+the actor itself so the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY would still
+not be set. The effect can detect this case by keeping track of the
+last modelview matrix that was used to render the actor and
+verifying that it remains the same in the next paint.
+
+Any other effects that are layered on top of the passed in effect
+will still be passed the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag. If
+anything queues a redraw on the actor without specifying an effect
+or with an effect that is lower in the chain of effects than this
+one then that will override this call. In that case this effect
+will instead be called with the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY
+flag set.</doc>
+        <source-position filename="../clutter/clutter/clutter-effect.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-effect.c"
+                 line="324">A #ClutterEffect which needs redrawing</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="EffectClass"
+            c:type="ClutterEffectClass"
+            glib:is-gtype-struct-for="Effect"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-effect.h"
+           line="61">The #ClutterEffectClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="97"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="pre_paint">
+        <callback name="pre_paint">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="post_paint">
+        <callback name="post_paint">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="81"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="modify_paint_volume">
+        <callback name="modify_paint_volume">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+            <parameter name="volume" transfer-ownership="none">
+              <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint">
+        <callback name="paint">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+            <parameter name="flags" transfer-ownership="none">
+              <type name="EffectPaintFlags" c:type="ClutterEffectPaintFlags"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pick">
+        <callback name="pick">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+            <parameter name="pick_context" transfer-ownership="none">
+              <type name="PickContext" c:type="ClutterPickContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_effect4" introspectable="0">
+        <callback name="_clutter_effect4">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="94"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect5" introspectable="0">
+        <callback name="_clutter_effect5">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect6" introspectable="0">
+        <callback name="_clutter_effect6">
+          <source-position filename="../clutter/clutter/clutter-effect.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <bitfield name="EffectPaintFlags"
+              glib:type-name="ClutterEffectPaintFlags"
+              glib:get-type="clutter_effect_paint_flags_get_type"
+              c:type="ClutterEffectPaintFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="649">Flags passed to the ‘paint’ or ‘pick’ method of #ClutterEffect.</doc>
+      <member name="actor_dirty"
+              value="1"
+              c:identifier="CLUTTER_EFFECT_PAINT_ACTOR_DIRTY"
+              glib:nick="actor-dirty">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="651">The actor or one of its children
+  has queued a redraw before this paint. This implies that the effect
+  should call clutter_actor_continue_paint() to chain to the next
+  effect and can not cache any results from a previous paint.</doc>
+      </member>
+      <member name="bypass_effect"
+              value="2"
+              c:identifier="CLUTTER_EFFECT_PAINT_BYPASS_EFFECT"
+              glib:nick="bypass-effect">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="655">The effect should not be used
+  on this frame, but it will be asked to paint the actor still.</doc>
+      </member>
+    </bitfield>
+    <callback name="EmitInputDeviceEvent" c:type="ClutterEmitInputDeviceEvent">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="37"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Event" c:type="ClutterEvent*"/>
+        </parameter>
+        <parameter name="device" transfer-ownership="none">
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <union name="Event"
+           c:type="ClutterEvent"
+           version="0.2"
+           glib:type-name="ClutterEvent"
+           glib:get-type="clutter_event_get_type"
+           c:symbol-prefix="event">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="573">Generic event wrapper.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="601"/>
+      <field name="type" readable="0" private="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="any" readable="0" private="1">
+        <type name="AnyEvent" c:type="ClutterAnyEvent"/>
+      </field>
+      <field name="button" readable="0" private="1">
+        <type name="ButtonEvent" c:type="ClutterButtonEvent"/>
+      </field>
+      <field name="key" readable="0" private="1">
+        <type name="KeyEvent" c:type="ClutterKeyEvent"/>
+      </field>
+      <field name="motion" readable="0" private="1">
+        <type name="MotionEvent" c:type="ClutterMotionEvent"/>
+      </field>
+      <field name="scroll" readable="0" private="1">
+        <type name="ScrollEvent" c:type="ClutterScrollEvent"/>
+      </field>
+      <field name="stage_state" readable="0" private="1">
+        <type name="StageStateEvent" c:type="ClutterStageStateEvent"/>
+      </field>
+      <field name="crossing" readable="0" private="1">
+        <type name="CrossingEvent" c:type="ClutterCrossingEvent"/>
+      </field>
+      <field name="touch" readable="0" private="1">
+        <type name="TouchEvent" c:type="ClutterTouchEvent"/>
+      </field>
+      <field name="touchpad_pinch" readable="0" private="1">
+        <type name="TouchpadPinchEvent" c:type="ClutterTouchpadPinchEvent"/>
+      </field>
+      <field name="touchpad_swipe" readable="0" private="1">
+        <type name="TouchpadSwipeEvent" c:type="ClutterTouchpadSwipeEvent"/>
+      </field>
+      <field name="proximity" readable="0" private="1">
+        <type name="ProximityEvent" c:type="ClutterProximityEvent"/>
+      </field>
+      <field name="pad_button" readable="0" private="1">
+        <type name="PadButtonEvent" c:type="ClutterPadButtonEvent"/>
+      </field>
+      <field name="pad_strip" readable="0" private="1">
+        <type name="PadStripEvent" c:type="ClutterPadStripEvent"/>
+      </field>
+      <field name="pad_ring" readable="0" private="1">
+        <type name="PadRingEvent" c:type="ClutterPadRingEvent"/>
+      </field>
+      <field name="device" readable="0" private="1">
+        <type name="DeviceEvent" c:type="ClutterDeviceEvent"/>
+      </field>
+      <field name="im" readable="0" private="1">
+        <type name="IMEvent" c:type="ClutterIMEvent"/>
+      </field>
+      <constructor name="new" c:identifier="clutter_event_new">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1336">Creates a new #ClutterEvent of the specified type.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="645"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1342">A newly allocated #ClutterEvent.</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1338">The type of event.</doc>
+            <type name="EventType" c:type="ClutterEventType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy" c:identifier="clutter_event_copy">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1363">Copies @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="647"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1369">A newly allocated #ClutterEvent</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1365">A #ClutterEvent.</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_event_free">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1457">Frees all resources used by @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="649"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1459">A #ClutterEvent.</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_angle"
+              c:identifier="clutter_event_get_angle"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1849">Retrieves the angle relative from @source to @target.
+
+The direction of the angle is from the position X axis towards
+the positive Y axis.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="722"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1859">the angle between two #ClutterEvent</doc>
+          <type name="gdouble" c:type="double"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1851">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1852">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_axes"
+              c:identifier="clutter_event_get_axes"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1742">Retrieves the array of axes values attached to the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="725"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1749">an array of axis values</doc>
+          <type name="gdouble" c:type="gdouble*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1744">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="n_axes"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1745">return location for the number of axes returned</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_button"
+              c:identifier="clutter_event_get_button"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="812">Retrieves the button number of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="752"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="819">the button number</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="814">a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
+  of type %CLUTTER_BUTTON_RELEASE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_click_count"
+              c:identifier="clutter_event_get_click_count"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="860">Retrieves the number of clicks of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="754"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="867">the click count</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="862">a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or
+  of type %CLUTTER_BUTTON_RELEASE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_coords"
+              c:identifier="clutter_event_get_coords"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="358">Retrieves the coordinates of @event and puts them into @x and @y.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="712"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="360">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="361">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="362">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_device"
+              c:identifier="clutter_event_get_device"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1182">Retrieves the #ClutterInputDevice for the event.
+If you want the physical device the event originated from, use
+clutter_event_get_source_device().
+
+The #ClutterInputDevice structure is completely opaque and should
+be cast to the platform-specific implementation.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="679"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1193">the #ClutterInputDevice or %NULL. The
+  returned device is owned by the #ClutterEvent and it should not
+  be unreferenced</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1184">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_id" c:identifier="clutter_event_get_device_id">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1039">Retrieves the events device id if set.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="704"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1045">A unique identifier for the device or -1 if the event has
+  no specific device set.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1041">a clutter event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_tool"
+              c:identifier="clutter_event_get_device_tool"
+              version="1.28">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1311">Returns the device tool that originated this event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="691"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1317">The tool of this event</doc>
+          <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1313">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_type"
+              c:identifier="clutter_event_get_device_type"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1062">Retrieves the type of the device for @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="706"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1068">the #ClutterInputDeviceType for the device, if
+  any is set</doc>
+          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1064">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_distance"
+              c:identifier="clutter_event_get_distance"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1826">Retrieves the distance between two events, a @source and a @target.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="719"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1833">the distance between two #ClutterEvent</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1828">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1829">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_event_sequence"
+              c:identifier="clutter_event_get_event_sequence"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1010">Retrieves the #ClutterEventSequence of @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="775"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1018">the event sequence, or %NULL</doc>
+          <type name="EventSequence" c:type="ClutterEventSequence*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1012">a #ClutterEvent of type %CLUTTER_TOUCH_BEGIN,
+  %CLUTTER_TOUCH_UPDATE, %CLUTTER_TOUCH_END, or
+  %CLUTTER_TOUCH_CANCEL</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_flags"
+              c:identifier="clutter_event_get_flags"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="623">Retrieves the #ClutterEventFlags of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="657"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="629">the event flags</doc>
+          <type name="EventFlags" c:type="ClutterEventFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="625">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gesture_motion_delta"
+              c:identifier="clutter_event_get_gesture_motion_delta"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2133">Returns the gesture motion deltas relative to the current pointer
+position.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="800"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2135">A clutter touchpad gesture event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="dx"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2136">the displacement relative to the pointer
+     position in the X axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="dy"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2138">the displacement relative to the pointer
+     position in the Y axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_gesture_phase"
+              c:identifier="clutter_event_get_gesture_phase">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2109">Returns the phase of the event, See #ClutterTouchpadGesturePhase.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="797"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2115">the phase of the gesture event.</doc>
+          <type name="TouchpadGesturePhase"
+                c:type="ClutterTouchpadGesturePhase"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2111">a touchpad gesture event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gesture_pinch_angle_delta"
+              c:identifier="clutter_event_get_gesture_pinch_angle_delta"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2068">Returns the angle delta reported by this specific event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="791"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2074">The angle delta relative to the previous event.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2070">a touchpad pinch event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gesture_pinch_scale"
+              c:identifier="clutter_event_get_gesture_pinch_scale"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2087">Returns the current scale as reported by @event, 1.0 being the original
+distance at the time the corresponding event with phase
+%CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN is received.
+is received.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="794"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2096">the current pinch gesture scale</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2089">a touchpad pinch event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key_code"
+              c:identifier="clutter_event_get_key_code"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="925">Retrieves the keycode of the key that caused @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="742"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="932">The keycode representing the key</doc>
+          <type name="guint16" c:type="guint16"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="927">a #ClutterEvent of type %CLUTTER_KEY_PRESS or
+   of type %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key_symbol"
+              c:identifier="clutter_event_get_key_symbol"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="883">Retrieves the key symbol of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="737"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="890">the key symbol representing the key</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="885">a #ClutterEvent of type %CLUTTER_KEY_PRESS or
+  of type %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key_unicode"
+              c:identifier="clutter_event_get_key_unicode">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="967">Retrieves the unicode value for the key that caused @keyev.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="747"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="974">The unicode value representing the key</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="969">a #ClutterEvent of type %CLUTTER_KEY_PRESS
+  or %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_mode_group"
+              c:identifier="clutter_event_get_mode_group">
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="811"/>
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pad_event_details"
+              c:identifier="clutter_event_get_pad_event_details">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2234">Returns the details of a pad event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="814"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2243">#TRUE if event details could be obtained</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2236">a pad event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="number"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2237">ring/strip/button number</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="mode"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2238">pad mode as per the event</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2239">event axis value</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_position"
+              c:identifier="clutter_event_get_position"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="386">Retrieves the event coordinates as a #graphene_point_t.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="716"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="388">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="389">a #graphene_point_t</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_related"
+              c:identifier="clutter_event_get_related"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="663">Retrieves the related actor of a crossing event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="759"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="670">the related #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="665">a #ClutterEvent of type %CLUTTER_ENTER or of
+  type %CLUTTER_LEAVE</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_scroll_delta"
+              c:identifier="clutter_event_get_scroll_delta"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="735">Retrieves the precise scrolling information of @event.
+
+The @event has to have a #ClutterScrollEvent.direction value
+of %CLUTTER_SCROLL_SMOOTH.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="770"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="737">a #ClutterEvent of type %CLUTTER_SCROLL</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="dx"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="738">return location for the delta on the horizontal axis</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="dy"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="739">return location for the delta on the vertical axis</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scroll_direction"
+              c:identifier="clutter_event_get_scroll_direction"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="774">Retrieves the direction of the scrolling of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="764"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="780">the scrolling direction</doc>
+          <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="776">a #ClutterEvent of type %CLUTTER_SCROLL</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_scroll_finish_flags"
+              c:identifier="clutter_event_get_scroll_finish_flags"
+              version="1.26">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2191">Returns the #ClutterScrollFinishFlags of an scroll event. Those
+can be used to determine whether post-scroll effects like kinetic
+scrolling should be applied.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="808"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2199">The scroll finish flags</doc>
+          <type name="ScrollFinishFlags" c:type="ClutterScrollFinishFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2193">an scroll event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_scroll_source"
+              c:identifier="clutter_event_get_scroll_source"
+              version="1.26">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2171">Returns the #ClutterScrollSource that applies to an scroll event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="805"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2177">The source of scroll events</doc>
+          <type name="ScrollSource" c:type="ClutterScrollSource"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2173">an scroll event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_event_get_source"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="544">Retrieves the source #ClutterActor the event originated from, or
+NULL if the event has no source.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="697"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="551">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="546">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source_device"
+              c:identifier="clutter_event_get_source_device"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1683">Retrieves the hardware device that originated the event.
+
+If you need the virtual device, use clutter_event_get_device().
+
+If no hardware device originated this event, this function will
+return the same device as clutter_event_get_device().</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="685"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1694">a pointer to a #ClutterInputDevice
+  or %NULL</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1685">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stage"
+              c:identifier="clutter_event_get_stage"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="582">Retrieves the source #ClutterStage the event originated for, or
+%NULL if the event has no stage.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="702"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="589">a #ClutterStage</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="584">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_state"
+              c:identifier="clutter_event_get_state"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="208">Retrieves the modifier state of the event. In case the window system
+supports reporting latched and locked modifiers, this function returns
+the effective state.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="667"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="216">the modifier state parameter, or 0</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="210">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_state_full"
+              c:identifier="clutter_event_get_state_full"
+              version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="319">Retrieves the decomposition of the keyboard state into button, base,
+latched, locked and effective. This can be used to transmit to other
+applications, for example when implementing a wayland compositor.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="669"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="321">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="button_state"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="322">the pressed buttons as a mask</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+          <parameter name="base_state"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="323">the regular pressed modifier keys</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+          <parameter name="latched_state"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="324">the latched modifier keys (currently released but still valid for one key 
press/release)</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+          <parameter name="locked_state"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="325">the locked modifier keys (valid until the lock key is pressed and released 
again)</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+          <parameter name="effective_state"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="326">the logical OR of all the state bits above</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_time"
+              c:identifier="clutter_event_get_time"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="172">Retrieves the time of the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="662"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="178">the time of the event, or %CLUTTER_CURRENT_TIME</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="174">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_touchpad_gesture_finger_count"
+              c:identifier="clutter_event_get_touchpad_gesture_finger_count"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2043">Returns the number of fingers that is triggering the touchpad gesture.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="788"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2049">the number of fingers in the gesture.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2045">a touchpad swipe/pinch event</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_control_modifier"
+              c:identifier="clutter_event_has_control_modifier"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1907">Checks whether @event has the Control modifier mask set.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="730"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1913">%TRUE if the event has the Control modifier mask set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1909">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_shift_modifier"
+              c:identifier="clutter_event_has_shift_modifier"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1891">Checks whether @event has the Shift modifier mask set.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="728"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1897">%TRUE if the event has the Shift modifier mask set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1893">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_pointer_emulated"
+              c:identifier="clutter_event_is_pointer_emulated"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1923">Checks whether a pointer @event has been generated by the windowing
+system. The returned value can be used to distinguish between events
+synthesized by the windowing system itself (as opposed by Clutter).</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="732"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1931">%TRUE if the event is pointer emulated</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1925">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="put" c:identifier="clutter_event_put" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1597">Puts a copy of the event on the back of the event queue. The event will
+have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set
+event signals will be emitted for this source and capture/bubbling for
+its ancestors. If the source is not set it will be generated by picking
+or use the actor that currently has keyboard focus</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="634"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1599">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_button"
+              c:identifier="clutter_event_set_button"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="839">Sets the button number of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="749"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="841">a #ClutterEvent or type %CLUTTER_BUTTON_PRESS or
+  of type %CLUTTER_BUTTON_RELEASE</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="button" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="843">the button number</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_coords"
+              c:identifier="clutter_event_set_coords"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="463">Sets the coordinates of the @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="708"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="465">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="466">the X coordinate of the event</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="467">the Y coordinate of the event</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_device"
+              c:identifier="clutter_event_set_device"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1087">Sets the device for @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="676"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1089">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="device"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1090">a #ClutterInputDevice, or %NULL</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_device_tool"
+              c:identifier="clutter_event_set_device_tool"
+              version="1.28">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1288">Sets the tool in use for this event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="688"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1290">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="tool"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1291">a #ClutterInputDeviceTool</doc>
+            <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_flags"
+              c:identifier="clutter_event_set_flags"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="641">Sets the #ClutterEventFlags of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="654"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="643">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="644">a binary OR of #ClutterEventFlags values</doc>
+            <type name="EventFlags" c:type="ClutterEventFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_code"
+              c:identifier="clutter_event_set_key_code"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="946">Sets the keycode of the @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="739"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="948">a #ClutterEvent of type %CLUTTER_KEY_PRESS
+  or %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="key_code" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="950">the keycode representing the key</doc>
+            <type name="guint16" c:type="guint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_symbol"
+              c:identifier="clutter_event_set_key_symbol"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="904">Sets the key symbol of @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="734"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="906">a #ClutterEvent of type %CLUTTER_KEY_PRESS
+  or %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="key_sym" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="908">the key symbol representing the key</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_unicode"
+              c:identifier="clutter_event_set_key_unicode"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="989">Sets the Unicode value of @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="744"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="991">a #ClutterEvent of type %CLUTTER_KEY_PRESS
+  or %CLUTTER_KEY_RELEASE</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="key_unicode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="993">the Unicode value representing the key</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_related"
+              c:identifier="clutter_event_set_related"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="684">Sets the related actor of a crossing event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="756"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="686">a #ClutterEvent of type %CLUTTER_ENTER or %CLUTTER_LEAVE</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="687">a #ClutterActor or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scroll_delta"
+              c:identifier="clutter_event_set_scroll_delta"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="708">Sets the precise scrolling information of @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="766"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="710">a #ClutterEvent of type %CLUTTER_SCROLL</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="711">delta on the horizontal axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="712">delta on the vertical axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scroll_direction"
+              c:identifier="clutter_event_set_scroll_direction"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="793">Sets the direction of the scrolling of @event</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="761"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="795">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="796">the scrolling direction</doc>
+            <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_event_set_source"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="563">Sets the source #ClutterActor of @event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="694"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="565">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="566">a #ClutterActor, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source_device"
+              c:identifier="clutter_event_set_source_device"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1715">Sets the source #ClutterInputDevice for @event.
+
+The #ClutterEvent must have been created using clutter_event_new().</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="681"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1717">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="device"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1718">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_stage"
+              c:identifier="clutter_event_set_stage"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="601">Sets the source #ClutterStage of the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="699"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="603">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="stage"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="604">a #ClutterStage, or %NULL</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_state"
+              c:identifier="clutter_event_set_state"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="254">Sets the modifier state of the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="664"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="256">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="257">the modifier state to set</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_time"
+              c:identifier="clutter_event_set_time"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="190">Sets the time of the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="659"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="192">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </instance-parameter>
+          <parameter name="time_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="193">the time of the event</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="type" c:identifier="clutter_event_type">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="156">Retrieves the type of the event.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="652"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="162">a #ClutterEventType</doc>
+          <type name="EventType" c:type="ClutterEventType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="158">a #ClutterEvent</doc>
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <function name="add_filter"
+                c:identifier="clutter_event_add_filter"
+                version="1.18">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1971">Adds a function which will be called for all events that Clutter
+processes. The function will be called before any signals are
+emitted for the event and it will take precedence over any grabs.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="637"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1982">an identifier for the event filter, to be used
+  with clutter_event_remove_filter().</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1973">The #ClutterStage to capture events for</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="3"
+                     destroy="2">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1974">The callback function which will be passed all events.</doc>
+            <type name="EventFilterFunc" c:type="ClutterEventFilterFunc"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1975">A #GDestroyNotify</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="1976">A data pointer to pass to the function.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get" c:identifier="clutter_event_get" version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1514">Pops an event off the event queue. Applications should not need to call
+this.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="630"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1520">A #ClutterEvent or NULL if queue empty</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+      </function>
+      <function name="peek" c:identifier="clutter_event_peek" version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1538">Returns a pointer to the first event from the event queue but
+does not remove it.</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="632"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1544">A #ClutterEvent or NULL if queue empty.</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+      </function>
+      <function name="remove_filter"
+                c:identifier="clutter_event_remove_filter"
+                version="1.18">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="2010">Removes an event filter that was previously added with
+clutter_event_add_filter().</doc>
+        <source-position filename="../clutter/clutter/clutter-event.h"
+                         line="642"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-event.c"
+                 line="2012">The ID of the event filter, as returned from clutter_event_add_filter()</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </function>
+    </union>
+    <callback name="EventFilterFunc"
+              c:type="ClutterEventFilterFunc"
+              version="1.18">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="603">A function pointer type used by event filters that are added with
+clutter_event_add_filter().</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="618"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="611">%CLUTTER_EVENT_STOP to indicate that the event
+  has been handled or %CLUTTER_EVENT_PROPAGATE otherwise.
+  Returning %CLUTTER_EVENT_STOP skips any further filter
+  functions and prevents the signal emission for the event.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.h"
+               line="605">the event that is going to be emitted</doc>
+          <type name="Event" c:type="const ClutterEvent*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.h"
+               line="606">the data pointer passed to clutter_event_add_filter()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="EventFlags"
+              version="0.6"
+              glib:type-name="ClutterEventFlags"
+              glib:get-type="clutter_event_flags_get_type"
+              c:type="ClutterEventFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="828">Flags for the #ClutterEvent</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_EVENT_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="830">No flag set</doc>
+      </member>
+      <member name="flag_synthetic"
+              value="1"
+              c:identifier="CLUTTER_EVENT_FLAG_SYNTHETIC"
+              glib:nick="flag-synthetic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="831">Synthetic event</doc>
+      </member>
+      <member name="flag_input_method"
+              value="2"
+              c:identifier="CLUTTER_EVENT_FLAG_INPUT_METHOD"
+              glib:nick="flag-input-method">
+      </member>
+      <member name="flag_repeated"
+              value="4"
+              c:identifier="CLUTTER_EVENT_FLAG_REPEATED"
+              glib:nick="flag-repeated">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="832">Auto-repeated event</doc>
+      </member>
+    </bitfield>
+    <record name="EventSequence"
+            c:type="ClutterEventSequence"
+            version="1.12"
+            glib:type-name="ClutterEventSequence"
+            glib:get-type="clutter_event_sequence_get_type"
+            c:symbol-prefix="event_sequence">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="94">The #ClutterEventSequence structure is an opaque
+type used to denote the event sequence of a touch event.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="102"/>
+    </record>
+    <enumeration name="EventType"
+                 version="0.4"
+                 glib:type-name="ClutterEventType"
+                 glib:get-type="clutter_event_type_get_type"
+                 c:type="ClutterEventType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="846">Types of events.</doc>
+      <member name="nothing"
+              value="0"
+              c:identifier="CLUTTER_NOTHING"
+              glib:nick="nothing">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="848">Empty event</doc>
+      </member>
+      <member name="key_press"
+              value="1"
+              c:identifier="CLUTTER_KEY_PRESS"
+              glib:nick="key-press">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="849">Key press event</doc>
+      </member>
+      <member name="key_release"
+              value="2"
+              c:identifier="CLUTTER_KEY_RELEASE"
+              glib:nick="key-release">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="850">Key release event</doc>
+      </member>
+      <member name="motion"
+              value="3"
+              c:identifier="CLUTTER_MOTION"
+              glib:nick="motion">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="851">Pointer motion event</doc>
+      </member>
+      <member name="enter"
+              value="4"
+              c:identifier="CLUTTER_ENTER"
+              glib:nick="enter">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="852">Actor enter event</doc>
+      </member>
+      <member name="leave"
+              value="5"
+              c:identifier="CLUTTER_LEAVE"
+              glib:nick="leave">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="853">Actor leave event</doc>
+      </member>
+      <member name="button_press"
+              value="6"
+              c:identifier="CLUTTER_BUTTON_PRESS"
+              glib:nick="button-press">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="854">Pointer button press event</doc>
+      </member>
+      <member name="button_release"
+              value="7"
+              c:identifier="CLUTTER_BUTTON_RELEASE"
+              glib:nick="button-release">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="855">Pointer button release event</doc>
+      </member>
+      <member name="scroll"
+              value="8"
+              c:identifier="CLUTTER_SCROLL"
+              glib:nick="scroll">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="856">Pointer scroll event</doc>
+      </member>
+      <member name="stage_state"
+              value="9"
+              c:identifier="CLUTTER_STAGE_STATE"
+              glib:nick="stage-state">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="857">Stage state change event</doc>
+      </member>
+      <member name="destroy_notify"
+              value="10"
+              c:identifier="CLUTTER_DESTROY_NOTIFY"
+              glib:nick="destroy-notify">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="858">Destroy notification event</doc>
+      </member>
+      <member name="client_message"
+              value="11"
+              c:identifier="CLUTTER_CLIENT_MESSAGE"
+              glib:nick="client-message">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="859">Client message event</doc>
+      </member>
+      <member name="touch_begin"
+              value="12"
+              c:identifier="CLUTTER_TOUCH_BEGIN"
+              glib:nick="touch-begin">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="860">A new touch event sequence has started;
+  event added in 1.10</doc>
+      </member>
+      <member name="touch_update"
+              value="13"
+              c:identifier="CLUTTER_TOUCH_UPDATE"
+              glib:nick="touch-update">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="862">A touch event sequence has been updated;
+  event added in 1.10</doc>
+      </member>
+      <member name="touch_end"
+              value="14"
+              c:identifier="CLUTTER_TOUCH_END"
+              glib:nick="touch-end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="864">A touch event sequence has finished;
+  event added in 1.10</doc>
+      </member>
+      <member name="touch_cancel"
+              value="15"
+              c:identifier="CLUTTER_TOUCH_CANCEL"
+              glib:nick="touch-cancel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="866">A touch event sequence has been canceled;
+  event added in 1.10</doc>
+      </member>
+      <member name="touchpad_pinch"
+              value="16"
+              c:identifier="CLUTTER_TOUCHPAD_PINCH"
+              glib:nick="touchpad-pinch">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="868">A pinch gesture event, the current state is
+  determined by its phase field; event added in 1.24</doc>
+      </member>
+      <member name="touchpad_swipe"
+              value="17"
+              c:identifier="CLUTTER_TOUCHPAD_SWIPE"
+              glib:nick="touchpad-swipe">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="870">A swipe gesture event, the current state is
+  determined by its phase field; event added in 1.24</doc>
+      </member>
+      <member name="proximity_in"
+              value="18"
+              c:identifier="CLUTTER_PROXIMITY_IN"
+              glib:nick="proximity-in">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="872">A tool entered in proximity to a tablet;
+  event added in 1.28</doc>
+      </member>
+      <member name="proximity_out"
+              value="19"
+              c:identifier="CLUTTER_PROXIMITY_OUT"
+              glib:nick="proximity-out">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="874">A tool left from the proximity area of a tablet;
+  event added in 1.28</doc>
+      </member>
+      <member name="pad_button_press"
+              value="20"
+              c:identifier="CLUTTER_PAD_BUTTON_PRESS"
+              glib:nick="pad-button-press">
+      </member>
+      <member name="pad_button_release"
+              value="21"
+              c:identifier="CLUTTER_PAD_BUTTON_RELEASE"
+              glib:nick="pad-button-release">
+      </member>
+      <member name="pad_strip"
+              value="22"
+              c:identifier="CLUTTER_PAD_STRIP"
+              glib:nick="pad-strip">
+      </member>
+      <member name="pad_ring"
+              value="23"
+              c:identifier="CLUTTER_PAD_RING"
+              glib:nick="pad-ring">
+      </member>
+      <member name="device_added"
+              value="24"
+              c:identifier="CLUTTER_DEVICE_ADDED"
+              glib:nick="device-added">
+      </member>
+      <member name="device_removed"
+              value="25"
+              c:identifier="CLUTTER_DEVICE_REMOVED"
+              glib:nick="device-removed">
+      </member>
+      <member name="im_commit"
+              value="26"
+              c:identifier="CLUTTER_IM_COMMIT"
+              glib:nick="im-commit">
+      </member>
+      <member name="im_delete"
+              value="27"
+              c:identifier="CLUTTER_IM_DELETE"
+              glib:nick="im-delete">
+      </member>
+      <member name="im_preedit"
+              value="28"
+              c:identifier="CLUTTER_IM_PREEDIT"
+              glib:nick="im-preedit">
+      </member>
+      <member name="event_last"
+              value="29"
+              c:identifier="CLUTTER_EVENT_LAST"
+              glib:nick="event-last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="876">Marks the end of the #ClutterEventType enumeration;
+  added in 1.10</doc>
+      </member>
+    </enumeration>
+    <function-macro name="FIXED_LAYOUT"
+                    c:identifier="CLUTTER_FIXED_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="FIXED_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_FIXED_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="FIXED_LAYOUT_GET_CLASS"
+                    c:identifier="CLUTTER_FIXED_LAYOUT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="FLAVOUR"
+              value="deprecated"
+              c:type="CLUTTER_FLAVOUR"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-macros.h"
+           line="29">GL Windowing system used</doc>
+      <doc-deprecated xml:space="preserve">The macro evaluates to "deprecated" as Clutter can be
+  compiled with multiple windowing system backends. Use the various
+  CLUTTER_WINDOWING_* macros to detect the windowing system that Clutter
+  is being compiled against, and the type check macros for the
+  #ClutterBackend for a run-time check.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="42"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="FLOW_LAYOUT"
+                    c:identifier="CLUTTER_FLOW_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="FLOW_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_FLOW_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="FLOW_LAYOUT_GET_CLASS"
+                    c:identifier="CLUTTER_FLOW_LAYOUT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <bitfield name="FeatureFlags"
+              version="0.4"
+              glib:type-name="ClutterFeatureFlags"
+              glib:get-type="clutter_feature_flags_get_type"
+              c:type="ClutterFeatureFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="955">Runtime flags indicating specific features available via Clutter window
+system and graphics backend.</doc>
+      <member name="stage_static"
+              value="64"
+              c:identifier="CLUTTER_FEATURE_STAGE_STATIC"
+              glib:nick="stage-static">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="957">Set if stage size if fixed (i.e framebuffer)</doc>
+      </member>
+      <member name="stage_cursor"
+              value="256"
+              c:identifier="CLUTTER_FEATURE_STAGE_CURSOR"
+              glib:nick="stage-cursor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="958">Set if stage has a graphical cursor.</doc>
+      </member>
+      <member name="shaders_glsl"
+              value="512"
+              c:identifier="CLUTTER_FEATURE_SHADERS_GLSL"
+              glib:nick="shaders-glsl">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="959">Set if the backend supports GLSL shaders.</doc>
+      </member>
+      <member name="offscreen"
+              value="1024"
+              c:identifier="CLUTTER_FEATURE_OFFSCREEN"
+              glib:nick="offscreen">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="960">Set if the backend supports offscreen rendering.</doc>
+      </member>
+      <member name="stage_multiple"
+              value="2048"
+              c:identifier="CLUTTER_FEATURE_STAGE_MULTIPLE"
+              glib:nick="stage-multiple">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="961">Set if multiple stages are supported.</doc>
+      </member>
+      <member name="swap_events"
+              value="4096"
+              c:identifier="CLUTTER_FEATURE_SWAP_EVENTS"
+              glib:nick="swap-events">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="962">Set if the GLX_INTEL_swap_event is supported.</doc>
+      </member>
+    </bitfield>
+    <class name="FixedLayout"
+           c:symbol-prefix="fixed_layout"
+           c:type="ClutterFixedLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterFixedLayout"
+           glib:get-type="clutter_fixed_layout_get_type"
+           glib:type-struct="FixedLayoutClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-fixed-layout.h"
+           line="46">The #ClutterFixedLayout structure contains only private data and
+it should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="72"/>
+      <constructor name="new"
+                   c:identifier="clutter_fixed_layout_new"
+                   version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-fixed-layout.c"
+             line="168">Creates a new #ClutterFixedLayout</doc>
+        <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-fixed-layout.c"
+               line="173">the newly created #ClutterFixedLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+    </class>
+    <record name="FixedLayoutClass"
+            c:type="ClutterFixedLayoutClass"
+            glib:is-gtype-struct-for="FixedLayout"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-fixed-layout.h"
+           line="60">The #ClutterFixedLayoutClass structure contains only private data
+and it should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="72"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <class name="FlowLayout"
+           c:symbol-prefix="flow_layout"
+           c:type="ClutterFlowLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterFlowLayout"
+           glib:get-type="clutter_flow_layout_get_type"
+           glib:type-struct="FlowLayoutClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-flow-layout.h"
+           line="47">The #ClutterFlowLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="75"/>
+      <constructor name="new"
+                   c:identifier="clutter_flow_layout_new"
+                   version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1084">Creates a new #ClutterFlowLayout with the given @orientation</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1090">the newly created #ClutterFlowLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1086">the orientation of the flow layout</doc>
+            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_column_spacing"
+              c:identifier="clutter_flow_layout_get_column_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1257">Retrieves the spacing between columns</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1263">the spacing between columns of the #ClutterFlowLayout,
+  in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1259">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_column_width"
+              c:identifier="clutter_flow_layout_get_column_width"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1384">Retrieves the minimum and maximum column widths</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="110"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1386">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="min_width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1387">return location for the minimum column width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="max_width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1388">return location for the maximum column width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_homogeneous"
+              c:identifier="clutter_flow_layout_get_homogeneous"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1206">Retrieves whether the @layout is homogeneous</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="92"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1212">%TRUE if the #ClutterFlowLayout is homogeneous</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1208">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_orientation"
+              c:identifier="clutter_flow_layout_get_orientation"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1153">Retrieves the orientation of the @layout</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1159">the orientation of the #ClutterFlowLayout</doc>
+          <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1155">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_height"
+              c:identifier="clutter_flow_layout_get_row_height"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1464">Retrieves the minimum and maximum row heights</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="118"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1466">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="min_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1467">return location for the minimum row height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="max_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1468">return location for the maximum row height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_spacing"
+              c:identifier="clutter_flow_layout_get_row_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1309">Retrieves the spacing between rows</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1315">the spacing between rows of the #ClutterFlowLayout,
+  in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1311">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_snap_to_grid"
+              c:identifier="clutter_flow_layout_get_snap_to_grid"
+              version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1518">Retrieves the value of #ClutterFlowLayout:snap-to-grid property</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="125"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-flow-layout.c"
+               line="1524">%TRUE if the @layout is placing its children on a grid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1520">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_column_spacing"
+              c:identifier="clutter_flow_layout_set_column_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1224">Sets the space between columns, in pixels</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1226">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1227">the space between columns</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_width"
+              c:identifier="clutter_flow_layout_set_column_width"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1328">Sets the minimum and maximum widths that a column can have</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1330">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="min_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1331">minimum width of a column</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="max_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1332">maximum width of a column</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_homogeneous"
+              c:identifier="clutter_flow_layout_set_homogeneous"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1172">Sets whether the @layout should allocate the same space for
+each child</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1174">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1175">whether the layout should be homogeneous or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_orientation"
+              c:identifier="clutter_flow_layout_set_orientation"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1102">Sets the orientation of the flow layout
+
+The orientation controls the direction used to allocate
+the children: either horizontally or vertically. The
+orientation also controls the direction of the overflowing</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1104">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1105">the orientation of the layout</doc>
+            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_height"
+              c:identifier="clutter_flow_layout_set_row_height"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1408">Sets the minimum and maximum heights that a row can have</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="114"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1410">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="min_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1411">the minimum height of a row</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="max_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1412">the maximum height of a row</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_spacing"
+              c:identifier="clutter_flow_layout_set_row_spacing"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1276">Sets the spacing between rows, in pixels</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1278">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1279">the space between rows</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_snap_to_grid"
+              c:identifier="clutter_flow_layout_set_snap_to_grid"
+              version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1488">Whether the @layout should place its children on a grid.</doc>
+        <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                         line="122"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1490">a #ClutterFlowLayout</doc>
+            <type name="FlowLayout" c:type="ClutterFlowLayout*"/>
+          </instance-parameter>
+          <parameter name="snap_to_grid" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-flow-layout.c"
+                 line="1491">%TRUE if @layout should place its children on a grid</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="column-spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="945">The spacing between columns, in pixels; the value of this
+property is honoured by horizontal non-overflowing layouts
+and by vertical overflowing layouts</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="homogeneous"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="930">Whether each child inside the #ClutterFlowLayout should receive
+the same allocation</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="max-column-width"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="994">Maximum width for each column in the layout, in pixels. If
+set to -1 the width will be the maximum child width</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="max-row-height"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1025">Maximum height for each row in the layout, in pixels. If
+set to -1 the width will be the maximum child height</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="min-column-width"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="979">Minimum width for each column in the layout, in pixels</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="min-row-height"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1010">Minimum height for each row in the layout, in pixels</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="orientation"
+                version="1.2"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="912">The orientation of the #ClutterFlowLayout. The children
+of the layout will be laid out following the orientation.
+
+This property also controls the overflowing directions</doc>
+        <type name="FlowOrientation"/>
+      </property>
+      <property name="row-spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="962">The spacing between rows, in pixels; the value of this
+property is honoured by vertical non-overflowing layouts and
+by horizontal overflowing layouts</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="snap-to-grid"
+                version="1.16"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-flow-layout.c"
+             line="1041">Whether the #ClutterFlowLayout should arrange its children
+on a grid</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="FlowLayoutPrivate" c:type="ClutterFlowLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="FlowLayoutClass"
+            c:type="ClutterFlowLayoutClass"
+            glib:is-gtype-struct-for="FlowLayout"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-flow-layout.h"
+           line="63">The #ClutterFlowLayoutClass structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="75"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="FlowLayoutPrivate"
+            c:type="ClutterFlowLayoutPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="44"/>
+    </record>
+    <enumeration name="FlowOrientation"
+                 version="1.2"
+                 glib:type-name="ClutterFlowOrientation"
+                 glib:get-type="clutter_flow_orientation_get_type"
+                 c:type="ClutterFlowOrientation">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="979">The direction of the arrangement of the children inside
+a #ClutterFlowLayout</doc>
+      <member name="horizontal"
+              value="0"
+              c:identifier="CLUTTER_FLOW_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="981">Arrange the children of the flow layout
+  horizontally first</doc>
+      </member>
+      <member name="vertical"
+              value="1"
+              c:identifier="CLUTTER_FLOW_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="983">Arrange the children of the flow layout
+  vertically first</doc>
+      </member>
+    </enumeration>
+    <class name="FrameClock"
+           c:symbol-prefix="frame_clock"
+           c:type="ClutterFrameClock"
+           parent="GObject.Object"
+           glib:type-name="ClutterFrameClock"
+           glib:get-type="clutter_frame_clock_get_type"
+           glib:type-struct="FrameClockClass">
+      <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                       line="39"/>
+      <constructor name="new" c:identifier="clutter_frame_clock_new">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="55"/>
+        <return-value transfer-ownership="full">
+          <type name="FrameClock" c:type="ClutterFrameClock*"/>
+        </return-value>
+        <parameters>
+          <parameter name="refresh_rate" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="iface" transfer-ownership="none">
+            <type name="FrameListenerIface"
+                  c:type="const ClutterFrameListenerIface*"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_timeline"
+              c:identifier="clutter_frame_clock_add_timeline">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy" c:identifier="clutter_frame_clock_destroy">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_refresh_rate"
+              c:identifier="clutter_frame_clock_get_refresh_rate">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="inhibit" c:identifier="clutter_frame_clock_inhibit">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="notify_presented"
+              c:identifier="clutter_frame_clock_notify_presented"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+          <parameter name="frame_info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="ClutterFrameInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_timeline"
+              c:identifier="clutter_frame_clock_remove_timeline">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="schedule_update"
+              c:identifier="clutter_frame_clock_schedule_update">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="schedule_update_now"
+              c:identifier="clutter_frame_clock_schedule_update_now">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="uninhibit" c:identifier="clutter_frame_clock_uninhibit">
+        <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="destroy" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="FrameClockClass"
+            c:type="ClutterFrameClockClass"
+            glib:is-gtype-struct-for="FrameClock">
+      <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                       line="39"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <record name="FrameInfo" c:type="ClutterFrameInfo" introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="125"/>
+      <field name="frame_counter" writable="1">
+        <type name="gint64" c:type="int64_t"/>
+      </field>
+      <field name="presentation_time" writable="1">
+        <type name="gint64" c:type="int64_t"/>
+      </field>
+      <field name="refresh_rate" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+    </record>
+    <record name="FrameListenerIface" c:type="ClutterFrameListenerIface">
+      <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                       line="52"/>
+      <field name="before_frame">
+        <callback name="before_frame">
+          <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                           line="45"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="frame_clock" transfer-ownership="none">
+              <type name="FrameClock" c:type="ClutterFrameClock*"/>
+            </parameter>
+            <parameter name="frame_count" transfer-ownership="none">
+              <type name="gint64" c:type="int64_t"/>
+            </parameter>
+            <parameter name="user_data"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1"
+                       closure="2">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="frame">
+        <callback name="frame">
+          <source-position filename="../clutter/clutter/clutter-frame-clock.h"
+                           line="48"/>
+          <return-value transfer-ownership="none">
+            <type name="FrameResult" c:type="ClutterFrameResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="frame_clock" transfer-ownership="none">
+              <type name="FrameClock" c:type="ClutterFrameClock*"/>
+            </parameter>
+            <parameter name="frame_count" transfer-ownership="none">
+              <type name="gint64" c:type="int64_t"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="gint64" c:type="int64_t"/>
+            </parameter>
+            <parameter name="user_data"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1"
+                       closure="3">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="FrameResult"
+                 glib:type-name="ClutterFrameResult"
+                 glib:get-type="clutter_frame_result_get_type"
+                 c:type="ClutterFrameResult">
+      <member name="pending_presented"
+              value="0"
+              c:identifier="CLUTTER_FRAME_RESULT_PENDING_PRESENTED"
+              glib:nick="pending-presented">
+      </member>
+      <member name="idle"
+              value="1"
+              c:identifier="CLUTTER_FRAME_RESULT_IDLE"
+              glib:nick="idle">
+      </member>
+    </enumeration>
+    <function-macro name="GRID_LAYOUT"
+                    c:identifier="CLUTTER_GRID_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="GRID_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_GRID_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="GRID_LAYOUT_GET_CLASS"
+                    c:identifier="CLUTTER_GRID_LAYOUT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="45"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="GestureAction"
+           c:symbol-prefix="gesture_action"
+           c:type="ClutterGestureAction"
+           parent="Action"
+           glib:type-name="ClutterGestureAction"
+           glib:get-type="clutter_gesture_action_get_type"
+           glib:type-struct="GestureActionClass">
+      <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                       line="83"/>
+      <constructor name="new"
+                   c:identifier="clutter_gesture_action_new"
+                   version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="873">Creates a new #ClutterGestureAction instance.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="878">the newly created #ClutterGestureAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="gesture_begin">
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="gesture_cancel">
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="gesture_end">
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="gesture_prepare">
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="gesture_progress">
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="cancel"
+              c:identifier="clutter_gesture_action_cancel"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1290">Cancel a #ClutterGestureAction before it begins</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="135"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1292">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device"
+              c:identifier="clutter_gesture_action_get_device"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1233">Retrieves the #ClutterInputDevice of a touch point.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="127"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1241">the #ClutterInputDevice of a touch point.</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1235">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1236">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_last_event"
+              c:identifier="clutter_gesture_action_get_last_event"
+              version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1260">Retrieves a reference to the last #ClutterEvent for a touch point. Call
+clutter_event_copy() if you need to store the reference somewhere.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="131"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1268">the last #ClutterEvent for a touch point.</doc>
+          <type name="Event" c:type="const ClutterEvent*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1262">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1263">index of a point currently active</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_coords"
+              c:identifier="clutter_gesture_action_get_motion_coords"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="928">Retrieves the coordinates, in stage space, of the latest motion
+event during the dragging.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="930">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="931">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="motion_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="933">return location for the latest motion
+  event's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="motion_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="935">return location for the latest motion
+  event's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_delta"
+              c:identifier="clutter_gesture_action_get_motion_delta"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="968">Retrieves the incremental delta since the last motion event
+during the dragging.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="981">the distance since last motion event</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="970">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="971">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="delta_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="973">return location for the X axis
+  component of the incremental motion delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="delta_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="975">return location for the Y axis
+  component of the incremental motion delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_current_points"
+              c:identifier="clutter_gesture_action_get_n_current_points"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1185">Retrieves the number of points currently active.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="120"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1191">the number of points currently active.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1187">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_touch_points"
+              c:identifier="clutter_gesture_action_get_n_touch_points"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1104">Retrieves the number of requested points to trigger the gesture.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1110">the number of points to trigger the gesture.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1106">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_press_coords"
+              c:identifier="clutter_gesture_action_get_press_coords"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="888">Retrieves the coordinates, in stage space, of the press event
+that started the dragging for a specific touch point.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="94"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="890">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="891">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="press_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="893">return location for the press
+  event's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="press_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="895">return location for the press
+  event's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_release_coords"
+              c:identifier="clutter_gesture_action_get_release_coords"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1016">Retrieves the coordinates, in stage space, where the touch point was
+last released.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1018">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1019">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="release_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1021">return location for the X coordinate of
+  the last release</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="release_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1023">return location for the Y coordinate of
+  the last release</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sequence"
+              c:identifier="clutter_gesture_action_get_sequence"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1207">Retrieves the #ClutterEventSequence of a touch point.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="123"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1214">the #ClutterEventSequence of a touch point.</doc>
+          <type name="EventSequence" c:type="ClutterEventSequence*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1209">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1210">index of a point currently active</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_threshold_trigger_distance"
+              c:identifier="clutter_gesture_action_get_threshold_trigger_distance"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1416">Retrieves the threshold trigger distance of the gesture @action,
+as set using clutter_gesture_action_set_threshold_trigger_distance().</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="151"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1418">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1419">The return location for the horizontal distance, or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1420">The return location for the vertical distance, or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_threshold_trigger_edge"
+              c:identifier="clutter_gesture_action_get_threshold_trigger_edge"
+              version="1.20">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1336">Retrieves the edge trigger of the gesture @action, as set using
+clutter_gesture_action_set_threshold_trigger_edge().</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="143"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1343">the edge trigger</doc>
+          <type name="GestureTriggerEdge" c:type="ClutterGestureTriggerEdge"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1338">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_threshold_trigger_egde"
+              c:identifier="clutter_gesture_action_get_threshold_trigger_egde"
+              version="1.18"
+              deprecated="1"
+              deprecated-version="1.20">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1360">Retrieves the edge trigger of the gesture @action, as set using
+clutter_gesture_action_set_threshold_trigger_edge().</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_gesture_action_get_threshold_trigger_edge() 
instead.</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="141"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="1367">the edge trigger</doc>
+          <type name="GestureTriggerEdge" c:type="ClutterGestureTriggerEdge"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1362">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_velocity"
+              c:identifier="clutter_gesture_action_get_velocity"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1056">Retrieves the velocity, in stage pixels per millisecond, of the
+latest motion event during the dragging.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="114"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1058">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1059">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="velocity_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1061">return location for the latest motion
+  event's X velocity</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="velocity_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1063">return location for the latest motion
+  event's Y velocity</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_n_touch_points"
+              c:identifier="clutter_gesture_action_set_n_touch_points"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1126">Sets the number of points needed to trigger the gesture.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="91"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1128">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="nb_points" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1129">a number of points</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_threshold_trigger_distance"
+              c:identifier="clutter_gesture_action_set_threshold_trigger_distance"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1379">Sets the threshold trigger distance for the gesture drag threshold, if any.
+
+This function should only be called by sub-classes of
+#ClutterGestureAction during their construction phase.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1381">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1382">the distance on the horizontal axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1383">the distance on the vertical axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_threshold_trigger_edge"
+              c:identifier="clutter_gesture_action_set_threshold_trigger_edge"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="1306">Sets the edge trigger for the gesture drag threshold, if any.
+
+This function should only be called by sub-classes of
+#ClutterGestureAction during their construction phase.</doc>
+        <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                         line="138"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1308">a #ClutterGestureAction</doc>
+            <type name="GestureAction" c:type="ClutterGestureAction*"/>
+          </instance-parameter>
+          <parameter name="edge" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="1309">the %ClutterGestureTriggerEdge</doc>
+            <type name="GestureTriggerEdge"
+                  c:type="ClutterGestureTriggerEdge"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="n-touch-points"
+                version="1.16"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="695">Number of touch points to trigger a gesture action.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="threshold-trigger-distance-x"
+                version="1.18"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="727">The horizontal trigger distance to be used by the action to either
+emit the #ClutterGestureAction::gesture-begin signal or to emit
+the #ClutterGestureAction::gesture-cancel signal.
+
+A negative value will be interpreted as the default drag threshold.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="threshold-trigger-distance-y"
+                version="1.18"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="746">The vertical trigger distance to be used by the action to either
+emit the #ClutterGestureAction::gesture-begin signal or to emit
+the #ClutterGestureAction::gesture-cancel signal.
+
+A negative value will be interpreted as the default drag threshold.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="threshold-trigger-edge"
+                version="1.18"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="709">The trigger edge to be used by the action to either emit the
+#ClutterGestureAction::gesture-begin signal or to emit the
+#ClutterGestureAction::gesture-cancel signal.</doc>
+        <type name="GestureTriggerEdge"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Action" c:type="ClutterAction"/>
+      </field>
+      <glib:signal name="gesture-begin" when="last" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="769">The ::gesture_begin signal is emitted when the #ClutterActor to which
+a #ClutterGestureAction has been applied starts receiving a gesture.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="777">%TRUE if the gesture should start, and %FALSE if
+  the gesture should be ignored.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="772">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="gesture-cancel" when="last" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="837">The ::gesture-cancel signal is emitted when the ongoing gesture gets
+cancelled from the #ClutterGestureAction::gesture-progress signal handler.
+
+This signal is emitted if and only if the #ClutterGestureAction::gesture-begin
+signal has been emitted first.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="840">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="gesture-end" when="last" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="815">The ::gesture-end signal is emitted at the end of the gesture gesture,
+when the pointer's button is released
+
+This signal is emitted if and only if the #ClutterGestureAction::gesture-begin
+signal has been emitted first.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="818">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="gesture-progress" when="last" version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-gesture-action.c"
+             line="792">The ::gesture-progress signal is emitted for each motion event after
+the #ClutterGestureAction::gesture-begin signal has been emitted.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-gesture-action.c"
+               line="800">%TRUE if the gesture should continue, and %FALSE if
+  the gesture should be cancelled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-gesture-action.c"
+                 line="795">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="GestureActionClass"
+            c:type="ClutterGestureActionClass"
+            glib:is-gtype-struct-for="GestureAction"
+            version="1.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-gesture-action.h"
+           line="45">The #ClutterGestureClass structure contains only
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                       line="83"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActionClass" c:type="ClutterActionClass"/>
+      </field>
+      <field name="gesture_begin">
+        <callback name="gesture_begin">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="65"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="GestureAction" c:type="ClutterGestureAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="gesture_progress">
+        <callback name="gesture_progress">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="67"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="GestureAction" c:type="ClutterGestureAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="gesture_end">
+        <callback name="gesture_end">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="69"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="GestureAction" c:type="ClutterGestureAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="gesture_cancel">
+        <callback name="gesture_cancel">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="71"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="GestureAction" c:type="ClutterGestureAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="gesture_prepare">
+        <callback name="gesture_prepare">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="73"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="GestureAction" c:type="ClutterGestureAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action1" introspectable="0">
+        <callback name="_clutter_gesture_action1">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="77"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action2" introspectable="0">
+        <callback name="_clutter_gesture_action2">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action3" introspectable="0">
+        <callback name="_clutter_gesture_action3">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action4" introspectable="0">
+        <callback name="_clutter_gesture_action4">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action5" introspectable="0">
+        <callback name="_clutter_gesture_action5">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="81"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gesture_action6" introspectable="0">
+        <callback name="_clutter_gesture_action6">
+          <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                           line="82"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="GestureActionPrivate"
+            c:type="ClutterGestureActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-gesture-action.h"
+                       line="43"/>
+    </record>
+    <enumeration name="GestureTriggerEdge"
+                 version="1.18"
+                 glib:type-name="ClutterGestureTriggerEdge"
+                 glib:get-type="clutter_gesture_trigger_edge_get_type"
+                 c:type="ClutterGestureTriggerEdge">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1502">Enum passed to the clutter_gesture_action_set_threshold_trigger_edge()
+function.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_GESTURE_TRIGGER_EDGE_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1504">Tell #ClutterGestureAction that
+the gesture must begin immediately and there's no drag limit that
+will cause its cancellation;</doc>
+      </member>
+      <member name="after"
+              value="1"
+              c:identifier="CLUTTER_GESTURE_TRIGGER_EDGE_AFTER"
+              glib:nick="after">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1507">Tell #ClutterGestureAction that
+it needs to wait until the drag threshold has been exceeded before
+considering that the gesture has begun;</doc>
+      </member>
+      <member name="before"
+              value="2"
+              c:identifier="CLUTTER_GESTURE_TRIGGER_EDGE_BEFORE"
+              glib:nick="before">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1510">Tell #ClutterGestureAction that
+the gesture must begin immediately and that it must be cancelled
+once the drag exceed the configured threshold.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="Gravity"
+                 version="0.2"
+                 deprecated="1"
+                 deprecated-version="1.22"
+                 glib:type-name="ClutterGravity"
+                 glib:get-type="clutter_gravity_get_type"
+                 c:type="ClutterGravity">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="33">Gravity of the scaling operations. When a gravity different than
+%CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
+of the specified portion at the same coordinates.</doc>
+      <doc-deprecated xml:space="preserve">Use the normalized #ClutterActor pivot point 
instead</doc-deprecated>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_GRAVITY_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="35">Do not apply any gravity</doc>
+      </member>
+      <member name="north"
+              value="1"
+              c:identifier="CLUTTER_GRAVITY_NORTH"
+              glib:nick="north">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="36">Scale from topmost downwards</doc>
+      </member>
+      <member name="north_east"
+              value="2"
+              c:identifier="CLUTTER_GRAVITY_NORTH_EAST"
+              glib:nick="north-east">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="37">Scale from the top right corner</doc>
+      </member>
+      <member name="east"
+              value="3"
+              c:identifier="CLUTTER_GRAVITY_EAST"
+              glib:nick="east">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="38">Scale from the right side</doc>
+      </member>
+      <member name="south_east"
+              value="4"
+              c:identifier="CLUTTER_GRAVITY_SOUTH_EAST"
+              glib:nick="south-east">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="39">Scale from the bottom right corner</doc>
+      </member>
+      <member name="south"
+              value="5"
+              c:identifier="CLUTTER_GRAVITY_SOUTH"
+              glib:nick="south">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="40">Scale from the bottom upwards</doc>
+      </member>
+      <member name="south_west"
+              value="6"
+              c:identifier="CLUTTER_GRAVITY_SOUTH_WEST"
+              glib:nick="south-west">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="41">Scale from the bottom left corner</doc>
+      </member>
+      <member name="west"
+              value="7"
+              c:identifier="CLUTTER_GRAVITY_WEST"
+              glib:nick="west">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="42">Scale from the left side</doc>
+      </member>
+      <member name="north_west"
+              value="8"
+              c:identifier="CLUTTER_GRAVITY_NORTH_WEST"
+              glib:nick="north-west">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="43">Scale from the top left corner</doc>
+      </member>
+      <member name="center"
+              value="9"
+              c:identifier="CLUTTER_GRAVITY_CENTER"
+              glib:nick="center">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="44">Scale from the center.</doc>
+      </member>
+    </enumeration>
+    <class name="GridLayout"
+           c:symbol-prefix="grid_layout"
+           c:type="ClutterGridLayout"
+           version="1.12"
+           parent="LayoutManager"
+           glib:type-name="ClutterGridLayout"
+           glib:get-type="clutter_grid_layout_get_type"
+           glib:type-struct="GridLayoutClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-grid-layout.h"
+           line="51">The #ClutterGridLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="81"/>
+      <constructor name="new" c:identifier="clutter_grid_layout_new">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1645">Creates a new #ClutterGridLayout</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="1650">the new #ClutterGridLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <method name="attach"
+              c:identifier="clutter_grid_layout_attach"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1658">Adds a widget to the grid.
+
+The position of @child is determined by @left and @top. The
+number of 'cells' that @child will occupy is determined by
+@width and @height.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1660">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1661">the #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1662">the column number to attach the left side of @child to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1663">the row number to attach the top side of @child to</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1664">the number of columns that @child will span</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1665">the number of rows that @child will span</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="attach_next_to"
+              c:identifier="clutter_grid_layout_attach_next_to"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1696">Adds a actor to the grid.
+
+The actor is placed next to @sibling, on the side determined by
+@side. When @sibling is %NULL, the actor is placed in row (for
+left or right placement) or column 0 (for top or bottom placement),
+at the end indicated by @side.
+
+Attaching widgets labeled [1], [2], [3] with @sibling == %NULL and
+@side == %CLUTTER_GRID_POSITION_LEFT yields a layout of [3][2][1].</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1698">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1699">the actor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1700">the child of @layout that @child will be placed
+    next to, or %NULL to place @child at the beginning or end</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="side" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1702">the side of @sibling that @child is positioned next to</doc>
+            <type name="GridPosition" c:type="ClutterGridPosition"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1703">the number of columns that @child will span</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1704">the number of rows that @child will span</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_at"
+              c:identifier="clutter_grid_layout_get_child_at"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1777">Gets the child of @layout whose area covers the grid
+cell whose upper left corner is at @left, @top.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="1786">the child at the given position, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1779">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1780">the left edge of the cell</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1781">the top edge of the cell</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_homogeneous"
+              c:identifier="clutter_grid_layout_get_column_homogeneous">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2134">Returns whether all columns of @layout have the same width.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="149"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="2140">whether all columns of @layout have the same width.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2136">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_column_spacing"
+              c:identifier="clutter_grid_layout_get_column_spacing"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2083">Retrieves the spacing set using clutter_grid_layout_set_column_spacing()</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="135"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="2089">the spacing between coluns of @layout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2085">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_orientation"
+              c:identifier="clutter_grid_layout_get_orientation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1984">Retrieves the orientation of the @layout.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="128"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="1990">the orientation of the layout</doc>
+          <type name="Orientation" c:type="ClutterOrientation"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1986">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_homogeneous"
+              c:identifier="clutter_grid_layout_get_row_homogeneous"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2183">Returns whether all rows of @layout have the same height.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="2189">whether all rows of @layout have the same height.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2185">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_row_spacing"
+              c:identifier="clutter_grid_layout_get_row_spacing"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2032">Retrieves the spacing set using clutter_grid_layout_set_row_spacing()</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-grid-layout.c"
+               line="2038">the spacing between rows of @layout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2034">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="insert_column"
+              c:identifier="clutter_grid_layout_insert_column"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1876">Inserts a column at the specified position.
+
+Children which are attached at or to the right of this position
+are moved one column to the right. Children which span across this
+position are grown to span the new column.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="115"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1878">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1879">the position to insert the column at</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_next_to"
+              c:identifier="clutter_grid_layout_insert_next_to"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1930">Inserts a row or column at the specified position.
+
+The new row or column is placed next to @sibling, on the side
+determined by @side. If @side is %CLUTTER_GRID_POSITION_LEFT or
+%CLUTTER_GRID_POSITION_BOTTOM, a row is inserted. If @side is
+%CLUTTER_GRID_POSITION_LEFT of %CLUTTER_GRID_POSITION_RIGHT,
+a column is inserted.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1932">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="sibling" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1933">the child of @layout that the new row or column will be
+    placed next to</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="side" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1935">the side of @sibling that @child is positioned next to</doc>
+            <type name="GridPosition" c:type="ClutterGridPosition"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_row"
+              c:identifier="clutter_grid_layout_insert_row"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1822">Inserts a row at the specified position.
+
+Children which are attached at or below this position
+are moved one row down. Children which span across this
+position are grown to span the new row.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="111"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1824">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1825">the position to insert the row at</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_homogeneous"
+              c:identifier="clutter_grid_layout_set_column_homogeneous"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2105">Sets whether all columns of @layout will have the same width.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="145"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2107">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2108">%TRUE to make columns homogeneous</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_spacing"
+              c:identifier="clutter_grid_layout_set_column_spacing"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2054">Sets the spacing between columns of @layout</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="131"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2056">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2057">the spacing between columns of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_orientation"
+              c:identifier="clutter_grid_layout_set_orientation"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1744">Sets the orientation of the @layout.
+
+#ClutterGridLayout uses the orientation as a hint when adding
+children to the #ClutterActor using it as a layout manager via
+clutter_actor_add_child(); changing this value will not have
+any effect on children that are already part of the layout.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="124"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1746">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="1747">the orientation of the #ClutterGridLayout</doc>
+            <type name="Orientation" c:type="ClutterOrientation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_homogeneous"
+              c:identifier="clutter_grid_layout_set_row_homogeneous"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2154">Sets whether all rows of @layout will have the same height.</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="153"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2156">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2157">%TRUE to make rows homogeneous</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_spacing"
+              c:identifier="clutter_grid_layout_set_row_spacing"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="2003">Sets the spacing between rows of @layout</doc>
+        <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                         line="138"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2005">a #ClutterGridLayout</doc>
+            <type name="GridLayout" c:type="ClutterGridLayout*"/>
+          </instance-parameter>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-grid-layout.c"
+                 line="2006">the spacing between rows of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="column-homogeneous"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1614">Whether all columns of the layout should have the same width</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="column-spacing"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1585">The amount of space in pixels between two consecutive columns</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="orientation"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1556">The orientation of the layout, either horizontal or vertical</doc>
+        <type name="Orientation"/>
+      </property>
+      <property name="row-homogeneous"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1600">Whether all rows of the layout should have the same height</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="row-spacing"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-grid-layout.c"
+             line="1571">The amount of space in pixels between two consecutive rows</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="GridLayoutPrivate" c:type="ClutterGridLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="GridLayoutClass"
+            c:type="ClutterGridLayoutClass"
+            glib:is-gtype-struct-for="GridLayout"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-grid-layout.h"
+           line="67">The #ClutterGridLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="81"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="GridLayoutPrivate"
+            c:type="ClutterGridLayoutPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="48"/>
+    </record>
+    <enumeration name="GridPosition"
+                 version="1.12"
+                 glib:type-name="ClutterGridPosition"
+                 glib:get-type="clutter_grid_position_get_type"
+                 c:type="ClutterGridPosition">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1425">Grid position modes.</doc>
+      <member name="left"
+              value="0"
+              c:identifier="CLUTTER_GRID_POSITION_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1427">left position</doc>
+      </member>
+      <member name="right"
+              value="1"
+              c:identifier="CLUTTER_GRID_POSITION_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1428">right position</doc>
+      </member>
+      <member name="top"
+              value="2"
+              c:identifier="CLUTTER_GRID_POSITION_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1429">top position</doc>
+      </member>
+      <member name="bottom"
+              value="3"
+              c:identifier="CLUTTER_GRID_POSITION_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1430">bottom position</doc>
+      </member>
+    </enumeration>
+    <constant name="HAS_WAYLAND_COMPOSITOR_SUPPORT"
+              value="1"
+              c:type="CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="12"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="IMAGE"
+                    c:identifier="CLUTTER_IMAGE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IMAGE_CLASS"
+                    c:identifier="CLUTTER_IMAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IMAGE_GET_CLASS"
+                    c:identifier="CLUTTER_IMAGE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="IMEvent" c:type="ClutterIMEvent">
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="571"/>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="uint32_t"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="text" writable="1">
+        <type name="utf8" c:type="char*"/>
+      </field>
+      <field name="offset" writable="1">
+        <type name="gint32" c:type="int32_t"/>
+      </field>
+      <field name="len" writable="1">
+        <type name="guint32" c:type="uint32_t"/>
+      </field>
+    </record>
+    <function-macro name="INPUT_DEVICE"
+                    c:identifier="CLUTTER_INPUT_DEVICE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="66"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INPUT_DEVICE_CLASS"
+                    c:identifier="CLUTTER_INPUT_DEVICE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="68"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INPUT_DEVICE_GET_CLASS"
+                    c:identifier="CLUTTER_INPUT_DEVICE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="70"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INPUT_DEVICE_TOOL"
+                    c:identifier="CLUTTER_INPUT_DEVICE_TOOL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INPUT_DEVICE_TOOL_CLASS"
+                    c:identifier="CLUTTER_INPUT_DEVICE_TOOL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INPUT_DEVICE_TOOL_GET_CLASS"
+                    c:identifier="CLUTTER_INPUT_DEVICE_TOOL_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="INPUT_EVDEV" value="evdev" c:type="CLUTTER_INPUT_EVDEV">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="17"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INPUT_NULL" value="null" c:type="CLUTTER_INPUT_NULL">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="18"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INPUT_X11" value="x11" c:type="CLUTTER_INPUT_X11">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="14"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="INTERVAL"
+                    c:identifier="CLUTTER_INTERVAL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INTERVAL_CLASS"
+                    c:identifier="CLUTTER_INTERVAL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="INTERVAL_GET_CLASS"
+                    c:identifier="CLUTTER_INTERVAL_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ACTOR"
+                    c:identifier="CLUTTER_IS_ACTOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="50"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ACTOR_CLASS"
+                    c:identifier="CLUTTER_IS_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-actor.h"
+                       line="51"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ACTOR_NODE"
+                    c:identifier="CLUTTER_IS_ACTOR_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="148"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ALIGN_CONSTRAINT"
+                    c:identifier="CLUTTER_IS_ALIGN_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-align-constraint.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BACKEND"
+                    c:identifier="CLUTTER_IS_BACKEND"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-backend.h"
+                       line="45"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BINDING_POOL"
+                    c:identifier="CLUTTER_IS_BINDING_POOL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-binding-pool.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BIND_CONSTRAINT"
+                    c:identifier="CLUTTER_IS_BIND_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bind-constraint.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BIN_LAYOUT"
+                    c:identifier="CLUTTER_IS_BIN_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BIN_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_IS_BIN_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-bin-layout.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BLUR_EFFECT"
+                    c:identifier="CLUTTER_IS_BLUR_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-blur-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BOX_LAYOUT"
+                    c:identifier="CLUTTER_IS_BOX_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BOX_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_IS_BOX_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-box-layout.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BRIGHTNESS_CONTRAST_EFFECT"
+                    c:identifier="CLUTTER_IS_BRIGHTNESS_CONTRAST_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-brightness-contrast-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CANVAS"
+                    c:identifier="CLUTTER_IS_CANVAS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CANVAS_CLASS"
+                    c:identifier="CLUTTER_IS_CANVAS_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-canvas.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CHILD_META"
+                    c:identifier="CLUTTER_IS_CHILD_META"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CHILD_META_CLASS"
+                    c:identifier="CLUTTER_IS_CHILD_META_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-child-meta.h"
+                       line="44"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CLIP_NODE"
+                    c:identifier="CLUTTER_IS_CLIP_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="84"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CLONE"
+                    c:identifier="CLUTTER_IS_CLONE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CLONE_CLASS"
+                    c:identifier="CLUTTER_IS_CLONE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-clone.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_COLORIZE_EFFECT"
+                    c:identifier="CLUTTER_IS_COLORIZE_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-colorize-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_COLOR_NODE"
+                    c:identifier="CLUTTER_IS_COLOR_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CONSTRAINT"
+                    c:identifier="CLUTTER_IS_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CONSTRAINT_CLASS"
+                    c:identifier="CLUTTER_IS_CONSTRAINT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-constraint.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_CONTAINER"
+                    c:identifier="CLUTTER_IS_CONTAINER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DEFORM_EFFECT"
+                    c:identifier="CLUTTER_IS_DEFORM_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DEFORM_EFFECT_CLASS"
+                    c:identifier="CLUTTER_IS_DEFORM_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-deform-effect.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DESATURATE_EFFECT"
+                    c:identifier="CLUTTER_IS_DESATURATE_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-desaturate-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_EFFECT"
+                    c:identifier="CLUTTER_IS_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_EFFECT_CLASS"
+                    c:identifier="CLUTTER_IS_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-effect.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_FIXED_LAYOUT"
+                    c:identifier="CLUTTER_IS_FIXED_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_FIXED_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_IS_FIXED_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-fixed-layout.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_FLOW_LAYOUT"
+                    c:identifier="CLUTTER_IS_FLOW_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_FLOW_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_IS_FLOW_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-flow-layout.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_GRID_LAYOUT"
+                    c:identifier="CLUTTER_IS_GRID_LAYOUT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_GRID_LAYOUT_CLASS"
+                    c:identifier="CLUTTER_IS_GRID_LAYOUT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-grid-layout.h"
+                       line="44"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IMAGE"
+                    c:identifier="CLUTTER_IS_IMAGE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IMAGE_CLASS"
+                    c:identifier="CLUTTER_IS_IMAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INPUT_DEVICE"
+                    c:identifier="CLUTTER_IS_INPUT_DEVICE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="67"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INPUT_DEVICE_CLASS"
+                    c:identifier="CLUTTER_IS_INPUT_DEVICE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="69"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INPUT_DEVICE_TOOL"
+                    c:identifier="CLUTTER_IS_INPUT_DEVICE_TOOL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INPUT_DEVICE_TOOL_CLASS"
+                    c:identifier="CLUTTER_IS_INPUT_DEVICE_TOOL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INTERVAL"
+                    c:identifier="CLUTTER_IS_INTERVAL"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_INTERVAL_CLASS"
+                    c:identifier="CLUTTER_IS_INTERVAL_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_KEYFRAME_TRANSITION"
+                    c:identifier="CLUTTER_IS_KEYFRAME_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_KEYFRAME_TRANSITION_CLASS"
+                    c:identifier="CLUTTER_IS_KEYFRAME_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_LAYER_NODE"
+                    c:identifier="CLUTTER_IS_LAYER_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="188"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_LAYOUT_MANAGER"
+                    c:identifier="CLUTTER_IS_LAYOUT_MANAGER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_LAYOUT_MANAGER_CLASS"
+                    c:identifier="CLUTTER_IS_LAYOUT_MANAGER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_LAYOUT_META"
+                    c:identifier="CLUTTER_IS_LAYOUT_META"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_LAYOUT_META_CLASS"
+                    c:identifier="CLUTTER_IS_LAYOUT_META_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OFFSCREEN_EFFECT"
+                    c:identifier="CLUTTER_IS_OFFSCREEN_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="o">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_OFFSCREEN_EFFECT_CLASS"
+                    c:identifier="CLUTTER_IS_OFFSCREEN_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="k">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PAGE_TURN_EFFECT"
+                    c:identifier="CLUTTER_IS_PAGE_TURN_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PAINT_NODE"
+                    c:identifier="CLUTTER_IS_PAINT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PAN_ACTION"
+                    c:identifier="CLUTTER_IS_PAN_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="46"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PAN_ACTION_CLASS"
+                    c:identifier="CLUTTER_IS_PAN_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="48"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PARAM_SPEC_COLOR"
+                    c:identifier="CLUTTER_IS_PARAM_SPEC_COLOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="148"/>
+      <parameters>
+        <parameter name="pspec">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PARAM_SPEC_UNITS"
+                    c:identifier="CLUTTER_IS_PARAM_SPEC_UNITS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="125"/>
+      <parameters>
+        <parameter name="pspec">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PATH"
+                    c:identifier="CLUTTER_IS_PATH"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PATH_CLASS"
+                    c:identifier="CLUTTER_IS_PATH_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PATH_CONSTRAINT"
+                    c:identifier="CLUTTER_IS_PATH_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PIPELINE_NODE"
+                    c:identifier="CLUTTER_IS_PIPELINE_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="105"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PROPERTY_TRANSITION"
+                    c:identifier="CLUTTER_IS_PROPERTY_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_PROPERTY_TRANSITION_CLASS"
+                    c:identifier="CLUTTER_IS_PROPERTY_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ROOT_NODE"
+                    c:identifier="CLUTTER_IS_ROOT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="167"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ROTATE_ACTION"
+                    c:identifier="CLUTTER_IS_ROTATE_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ROTATE_ACTION_CLASS"
+                    c:identifier="CLUTTER_IS_ROTATE_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SCRIPT"
+                    c:identifier="CLUTTER_IS_SCRIPT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SCRIPTABLE"
+                    c:identifier="CLUTTER_IS_SCRIPTABLE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SCRIPT_CLASS"
+                    c:identifier="CLUTTER_IS_SCRIPT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SCROLL_ACTOR"
+                    c:identifier="CLUTTER_IS_SCROLL_ACTOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SCROLL_ACTOR_CLASS"
+                    c:identifier="CLUTTER_IS_SCROLL_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SETTINGS"
+                    c:identifier="CLUTTER_IS_SETTINGS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-settings.h"
+                       line="14"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SHADER_EFFECT"
+                    c:identifier="CLUTTER_IS_SHADER_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SHADER_EFFECT_CLASS"
+                    c:identifier="CLUTTER_IS_SHADER_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SNAP_CONSTRAINT"
+                    c:identifier="CLUTTER_IS_SNAP_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE"
+                    c:identifier="CLUTTER_IS_STAGE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE_CLASS"
+                    c:identifier="CLUTTER_IS_STAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE_MANAGER"
+                    c:identifier="CLUTTER_IS_STAGE_MANAGER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_STAGE_MANAGER_CLASS"
+                    c:identifier="CLUTTER_IS_STAGE_MANAGER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SWIPE_ACTION"
+                    c:identifier="CLUTTER_IS_SWIPE_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_SWIPE_ACTION_CLASS"
+                    c:identifier="CLUTTER_IS_SWIPE_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="44"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TAP_ACTION"
+                    c:identifier="CLUTTER_IS_TAP_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="47"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TAP_ACTION_CLASS"
+                    c:identifier="CLUTTER_IS_TAP_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="49"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT"
+                    c:identifier="CLUTTER_IS_TEXT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXTURE_NODE"
+                    c:identifier="CLUTTER_IS_TEXTURE_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="60"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT_BUFFER"
+                    c:identifier="CLUTTER_IS_TEXT_BUFFER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT_BUFFER_CLASS"
+                    c:identifier="CLUTTER_IS_TEXT_BUFFER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT_CLASS"
+                    c:identifier="CLUTTER_IS_TEXT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TEXT_NODE"
+                    c:identifier="CLUTTER_IS_TEXT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="126"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TIMELINE"
+                    c:identifier="CLUTTER_IS_TIMELINE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TIMELINE_CLASS"
+                    c:identifier="CLUTTER_IS_TIMELINE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TRANSFORM_NODE"
+                    c:identifier="CLUTTER_IS_TRANSFORM_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="214"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TRANSITION"
+                    c:identifier="CLUTTER_IS_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TRANSITION_CLASS"
+                    c:identifier="CLUTTER_IS_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TRANSITION_GROUP"
+                    c:identifier="CLUTTER_IS_TRANSITION_GROUP"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_TRANSITION_GROUP_CLASS"
+                    c:identifier="CLUTTER_IS_TRANSITION_GROUP_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ZOOM_ACTION"
+                    c:identifier="CLUTTER_IS_ZOOM_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_ZOOM_ACTION_CLASS"
+                    c:identifier="CLUTTER_IS_ZOOM_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Image"
+           c:symbol-prefix="image"
+           c:type="ClutterImage"
+           version="1.10"
+           parent="GObject.Object"
+           glib:type-name="ClutterImage"
+           glib:get-type="clutter_image_get_type"
+           glib:type-struct="ImageClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-image.h"
+           line="71">The #ClutterImage structure contains
+private data and should only be accessed using the provided
+API.</doc>
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="102"/>
+      <implements name="Content"/>
+      <function name="new" c:identifier="clutter_image_new" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.c"
+             line="164">Creates a new #ClutterImage instance.</doc>
+        <source-position filename="../clutter/clutter/clutter-image.h"
+                         line="110"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-image.c"
+               line="169">the newly created #ClutterImage instance.
+  Use g_object_unref() when done.</doc>
+          <type name="Content" c:type="ClutterContent*"/>
+        </return-value>
+      </function>
+      <method name="get_texture"
+              c:identifier="clutter_image_get_texture"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.c"
+             line="433">Retrieves a pointer to the Cogl texture used by @image.
+
+If you change the contents of the returned Cogl texture you will need
+to manually invalidate the @image with clutter_content_invalidate()
+in order to update the actors using @image as their content.</doc>
+        <source-position filename="../clutter/clutter/clutter-image.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-image.c"
+               line="443">a pointer to the Cogl texture, or %NULL</doc>
+          <type name="Cogl.Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="435">a #ClutterImage</doc>
+            <type name="Image" c:type="ClutterImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_area"
+              c:identifier="clutter_image_set_area"
+              version="1.10"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.c"
+             line="339">Sets the image data to be display by @image, using @rect to indicate
+the position and size of the image data to be set.
+
+If the @image does not have any image data set when this function is
+called, a new texture will be created with the size of the width and
+height of the rectangle, i.e. calling this function on a newly created
+#ClutterImage will be the equivalent of calling clutter_image_set_data().
+
+If the image data was successfully loaded, the @image will be invalidated.
+
+In case of error, the @error value will be set, and this function will
+return %FALSE.
+
+The image data is copied in texture memory.</doc>
+        <source-position filename="../clutter/clutter/clutter-image.h"
+                         line="120"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-image.c"
+               line="363">%TRUE if the image data was successfully loaded,
+  and %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="341">a #ClutterImage</doc>
+            <type name="Image" c:type="ClutterImage*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="342">the image data, as an array of bytes</doc>
+            <array zero-terminated="0" c:type="const guint8*">
+              <type name="guint8" c:type="guint8"/>
+            </array>
+          </parameter>
+          <parameter name="pixel_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="343">the Cogl pixel format of the image data</doc>
+            <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="344">a rectangle indicating the area that should be set</doc>
+            <type name="cairo.RectangleInt"
+                  c:type="const cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="row_stride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="345">the length of each row inside @data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bytes"
+              c:identifier="clutter_image_set_bytes"
+              version="1.12"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.c"
+             line="270">Sets the image data stored inside a #GBytes to be displayed by @image.
+
+If the image data was successfully loaded, the @image will be invalidated.
+
+In case of error, the @error value will be set, and this function will
+return %FALSE.
+
+The image data contained inside the #GBytes is copied in texture memory,
+and no additional reference is acquired on the @data.</doc>
+        <source-position filename="../clutter/clutter/clutter-image.h"
+                         line="127"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-image.c"
+               line="290">%TRUE if the image data was successfully loaded,
+  and %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="272">a #ClutterImage</doc>
+            <type name="Image" c:type="ClutterImage*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="273">the image data, as a #GBytes</doc>
+            <type name="GLib.Bytes" c:type="GBytes*"/>
+          </parameter>
+          <parameter name="pixel_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="274">the Cogl pixel format of the image data</doc>
+            <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="275">the width of the image data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="276">the height of the image data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="row_stride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="277">the length of each row inside @data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_data"
+              c:identifier="clutter_image_set_data"
+              version="1.10"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.c"
+             line="180">Sets the image data to be displayed by @image.
+
+If the image data was successfully loaded, the @image will be invalidated.
+
+In case of error, the @error value will be set, and this function will
+return %FALSE.
+
+The image data is copied in texture memory.
+
+The image data is expected to be a linear array of RGBA or RGB pixel data;
+how to retrieve that data is left to platform specific image loaders. For
+instance, if you use the GdkPixbuf library:
+
+|[&lt;!-- language="C" --&gt;
+  ClutterContent *image = clutter_image_new ();
+
+  GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+
+  clutter_image_set_data (CLUTTER_IMAGE (image),
+                          gdk_pixbuf_get_pixels (pixbuf),
+                          gdk_pixbuf_get_has_alpha (pixbuf)
+                            ? COGL_PIXEL_FORMAT_RGBA_8888
+                            : COGL_PIXEL_FORMAT_RGB_888,
+                          gdk_pixbuf_get_width (pixbuf),
+                          gdk_pixbuf_get_height (pixbuf),
+                          gdk_pixbuf_get_rowstride (pixbuf),
+                          &amp;error);
+
+  g_object_unref (pixbuf);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-image.h"
+                         line="112"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-image.c"
+               line="221">%TRUE if the image data was successfully loaded,
+  and %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="182">a #ClutterImage</doc>
+            <type name="Image" c:type="ClutterImage*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="183">the image data, as an array of bytes</doc>
+            <array zero-terminated="0" c:type="const guint8*">
+              <type name="guint8" c:type="guint8"/>
+            </array>
+          </parameter>
+          <parameter name="pixel_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="184">the Cogl pixel format of the image data</doc>
+            <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="185">the width of the image data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="186">the height of the image data</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="row_stride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-image.c"
+                 line="187">the length of each row inside @data</doc>
+            <type name="guint" c:type="guint"/>
+          </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="ImagePrivate" c:type="ClutterImagePrivate*"/>
+      </field>
+    </class>
+    <record name="ImageClass"
+            c:type="ClutterImageClass"
+            glib:is-gtype-struct-for="Image"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-image.h"
+           line="88">The #ClutterImageClass structure contains
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="102"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="16">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="ImageError"
+                 version="1.10"
+                 glib:type-name="ClutterImageError"
+                 glib:get-type="clutter_image_error_get_type"
+                 c:type="ClutterImageError"
+                 glib:error-domain="clutter-image-error-quark">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-image.h"
+           line="57">Error enumeration for #ClutterImage.</doc>
+      <member name="data"
+              value="0"
+              c:identifier="CLUTTER_IMAGE_ERROR_INVALID_DATA"
+              glib:nick="data">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-image.h"
+             line="59">Invalid data passed to the
+  clutter_image_set_data() function.</doc>
+      </member>
+      <function name="quark" c:identifier="clutter_image_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+    </enumeration>
+    <record name="ImagePrivate" c:type="ClutterImagePrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-image.h"
+                       line="54"/>
+    </record>
+    <enumeration name="InitError"
+                 version="0.2"
+                 glib:type-name="ClutterInitError"
+                 glib:get-type="clutter_init_error_get_type"
+                 c:type="ClutterInitError"
+                 glib:error-domain="clutter-init-error-quark">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.h"
+           line="83">Error conditions returned by clutter_init() and clutter_init_with_args().</doc>
+      <member name="success"
+              value="1"
+              c:identifier="CLUTTER_INIT_SUCCESS"
+              glib:nick="success">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.h"
+             line="85">Initialisation successful</doc>
+      </member>
+      <member name="error_unknown"
+              value="0"
+              c:identifier="CLUTTER_INIT_ERROR_UNKNOWN"
+              glib:nick="error-unknown">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.h"
+             line="86">Unknown error</doc>
+      </member>
+      <member name="error_threads"
+              value="-1"
+              c:identifier="CLUTTER_INIT_ERROR_THREADS"
+              glib:nick="error-threads">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.h"
+             line="87">Thread initialisation failed</doc>
+      </member>
+      <member name="error_backend"
+              value="-2"
+              c:identifier="CLUTTER_INIT_ERROR_BACKEND"
+              glib:nick="error-backend">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.h"
+             line="88">Backend initialisation failed</doc>
+      </member>
+      <member name="error_internal"
+              value="-3"
+              c:identifier="CLUTTER_INIT_ERROR_INTERNAL"
+              glib:nick="error-internal">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.h"
+             line="89">Internal error</doc>
+      </member>
+      <function name="quark" c:identifier="clutter_init_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+    </enumeration>
+    <enumeration name="InputAxis"
+                 version="1.6"
+                 glib:type-name="ClutterInputAxis"
+                 glib:get-type="clutter_input_axis_get_type"
+                 c:type="ClutterInputAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1055">The type of axes Clutter recognizes on a #ClutterInputDevice</doc>
+      <member name="ignore"
+              value="0"
+              c:identifier="CLUTTER_INPUT_AXIS_IGNORE"
+              glib:nick="ignore">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1057">Unused axis</doc>
+      </member>
+      <member name="x"
+              value="1"
+              c:identifier="CLUTTER_INPUT_AXIS_X"
+              glib:nick="x">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1058">The position on the X axis</doc>
+      </member>
+      <member name="y"
+              value="2"
+              c:identifier="CLUTTER_INPUT_AXIS_Y"
+              glib:nick="y">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1059">The position of the Y axis</doc>
+      </member>
+      <member name="pressure"
+              value="3"
+              c:identifier="CLUTTER_INPUT_AXIS_PRESSURE"
+              glib:nick="pressure">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1060">The pressure information</doc>
+      </member>
+      <member name="xtilt"
+              value="4"
+              c:identifier="CLUTTER_INPUT_AXIS_XTILT"
+              glib:nick="xtilt">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1061">The tilt on the X axis</doc>
+      </member>
+      <member name="ytilt"
+              value="5"
+              c:identifier="CLUTTER_INPUT_AXIS_YTILT"
+              glib:nick="ytilt">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1062">The tile on the Y axis</doc>
+      </member>
+      <member name="wheel"
+              value="6"
+              c:identifier="CLUTTER_INPUT_AXIS_WHEEL"
+              glib:nick="wheel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1063">A wheel</doc>
+      </member>
+      <member name="distance"
+              value="7"
+              c:identifier="CLUTTER_INPUT_AXIS_DISTANCE"
+              glib:nick="distance">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1064">Distance (Since 1.12)</doc>
+      </member>
+      <member name="rotation"
+              value="8"
+              c:identifier="CLUTTER_INPUT_AXIS_ROTATION"
+              glib:nick="rotation">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1065">Rotation along the z-axis (Since 1.28)</doc>
+      </member>
+      <member name="slider"
+              value="9"
+              c:identifier="CLUTTER_INPUT_AXIS_SLIDER"
+              glib:nick="slider">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1066">A slider (Since 1.28)</doc>
+      </member>
+      <member name="last"
+              value="10"
+              c:identifier="CLUTTER_INPUT_AXIS_LAST"
+              glib:nick="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1067">Last value of the enumeration; this value is
+  useful when iterating over the enumeration values (Since 1.12)</doc>
+      </member>
+    </enumeration>
+    <bitfield name="InputContentHintFlags"
+              glib:type-name="ClutterInputContentHintFlags"
+              glib:get-type="clutter_input_content_hint_flags_get_type"
+              c:type="ClutterInputContentHintFlags">
+      <member name="completion"
+              value="1"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_COMPLETION"
+              glib:nick="completion">
+      </member>
+      <member name="spellcheck"
+              value="2"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_SPELLCHECK"
+              glib:nick="spellcheck">
+      </member>
+      <member name="auto_capitalization"
+              value="4"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_AUTO_CAPITALIZATION"
+              glib:nick="auto-capitalization">
+      </member>
+      <member name="lowercase"
+              value="8"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_LOWERCASE"
+              glib:nick="lowercase">
+      </member>
+      <member name="uppercase"
+              value="16"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_UPPERCASE"
+              glib:nick="uppercase">
+      </member>
+      <member name="titlecase"
+              value="32"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_TITLECASE"
+              glib:nick="titlecase">
+      </member>
+      <member name="hidden_text"
+              value="64"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_HIDDEN_TEXT"
+              glib:nick="hidden-text">
+      </member>
+      <member name="sensitive_data"
+              value="128"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_SENSITIVE_DATA"
+              glib:nick="sensitive-data">
+      </member>
+      <member name="latin"
+              value="256"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_LATIN"
+              glib:nick="latin">
+      </member>
+      <member name="multiline"
+              value="512"
+              c:identifier="CLUTTER_INPUT_CONTENT_HINT_MULTILINE"
+              glib:nick="multiline">
+      </member>
+    </bitfield>
+    <enumeration name="InputContentPurpose"
+                 glib:type-name="ClutterInputContentPurpose"
+                 glib:get-type="clutter_input_content_purpose_get_type"
+                 c:type="ClutterInputContentPurpose">
+      <member name="normal"
+              value="0"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_NORMAL"
+              glib:nick="normal">
+      </member>
+      <member name="alpha"
+              value="1"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_ALPHA"
+              glib:nick="alpha">
+      </member>
+      <member name="digits"
+              value="2"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_DIGITS"
+              glib:nick="digits">
+      </member>
+      <member name="number"
+              value="3"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_NUMBER"
+              glib:nick="number">
+      </member>
+      <member name="phone"
+              value="4"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_PHONE"
+              glib:nick="phone">
+      </member>
+      <member name="url"
+              value="5"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_URL"
+              glib:nick="url">
+      </member>
+      <member name="email"
+              value="6"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_EMAIL"
+              glib:nick="email">
+      </member>
+      <member name="name"
+              value="7"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_NAME"
+              glib:nick="name">
+      </member>
+      <member name="password"
+              value="8"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_PASSWORD"
+              glib:nick="password">
+      </member>
+      <member name="date"
+              value="9"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_DATE"
+              glib:nick="date">
+      </member>
+      <member name="time"
+              value="10"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_TIME"
+              glib:nick="time">
+      </member>
+      <member name="datetime"
+              value="11"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_DATETIME"
+              glib:nick="datetime">
+      </member>
+      <member name="terminal"
+              value="12"
+              c:identifier="CLUTTER_INPUT_CONTENT_PURPOSE_TERMINAL"
+              glib:nick="terminal">
+      </member>
+    </enumeration>
+    <class name="InputDevice"
+           c:symbol-prefix="input_device"
+           c:type="ClutterInputDevice"
+           parent="GObject.Object"
+           glib:type-name="ClutterInputDevice"
+           glib:get-type="clutter_input_device_get_type"
+           glib:type-struct="InputDeviceClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-input-device.h"
+           line="72">Generic representation of an input device. The actual contents of this
+structure depend on the backend used.</doc>
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="63"/>
+      <virtual-method name="get_group_n_modes" invoker="get_group_n_modes">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="group" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_grouped" invoker="is_grouped">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="other_device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_mode_switch_button"
+                      invoker="is_mode_switch_button">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="50"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="group" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="keycode_to_evdev"
+                      invoker="keycode_to_evdev"
+                      version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1794">Translates a hardware keycode from a #ClutterKeyEvent to the
+equivalent evdev keycode. Note that depending on the input backend
+used by Clutter this function can fail if there is no obvious
+mapping between the key codes. The hardware keycode can be taken
+from the #ClutterKeyEvent.hardware_keycode member of #ClutterKeyEvent.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1806">%TRUE if the conversion succeeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1796">A #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="hardware_keycode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1797">The hardware keycode from a #ClutterKeyEvent</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="evdev_keycode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1798">The return location for the evdev keycode</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_from_tool">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="tool" transfer-ownership="none">
+            <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_actor"
+              c:identifier="clutter_input_device_get_actor"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1073">Retrieves the #ClutterActor underneath the pointer or touchpoint
+of @device and @sequence.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1081">a pointer to the #ClutterActor or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1075">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="sequence"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1076">an optional #ClutterEventSequence</doc>
+            <type name="EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_associated_device"
+              c:identifier="clutter_input_device_get_associated_device"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1771">Retrieves a pointer to the #ClutterInputDevice that has been
+associated to @device.
+
+If the #ClutterInputDevice:device-mode property of @device is
+set to %CLUTTER_INPUT_MODE_LOGICAL, this function will return
+%NULL.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1782">a #ClutterInputDevice, or %NULL</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1773">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_axis"
+              c:identifier="clutter_input_device_get_axis"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1391">Retrieves the type of axis on @device at the given index.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="114"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1398">the axis type</doc>
+          <type name="InputAxis" c:type="ClutterInputAxis"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1393">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1394">the index of the axis</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_axis_value"
+              c:identifier="clutter_input_device_get_axis_value"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1422">Extracts the value of the given @axis of a #ClutterInputDevice from
+an array of axis values.
+
+An example of typical usage for this function is:
+
+|[
+  ClutterInputDevice *device = clutter_event_get_device (event);
+  gdouble *axes = clutter_event_get_axes (event, NULL);
+  gdouble pressure_value = 0;
+
+  clutter_input_device_get_axis_value (device, axes,
+                                       CLUTTER_INPUT_AXIS_PRESSURE,
+                                       &amp;pressure_value);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="117"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1445">%TRUE if the value was set, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1424">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="axes" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1425">an array of axes values, typically
+  coming from clutter_event_get_axes()</doc>
+            <array zero-terminated="0" c:type="gdouble*">
+              <type name="gdouble" c:type="gdouble"/>
+            </array>
+          </parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1427">the axis to extract</doc>
+            <type name="InputAxis" c:type="ClutterInputAxis"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1428">return location for the axis value</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_coords"
+              c:identifier="clutter_input_device_get_coords"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="960">Retrieves the latest coordinates of a pointer or touch point of
+@device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="971">%FALSE if the device's sequence hasn't been found,
+  and %TRUE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="962">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="sequence"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="963">a #ClutterEventSequence, or %NULL if
+  the device is not touch-based</doc>
+            <type name="EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+          <parameter name="point"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="965">return location for the pointer
+  or touch point</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_device_id"
+              c:identifier="clutter_input_device_get_device_id"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="892">Retrieves the unique identifier of @device</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="898">the identifier of the device</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="894">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_mode"
+              c:identifier="clutter_input_device_get_device_mode"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1161">Retrieves the #ClutterInputMode of @device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1167">the device mode</doc>
+          <type name="InputMode" c:type="ClutterInputMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1163">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_name"
+              c:identifier="clutter_input_device_get_device_name"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1122">Retrieves the name of the @device</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1128">the name of the device, or %NULL. The returned string
+  is owned by the #ClutterInputDevice and should never be modified
+  or freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1124">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_node"
+              c:identifier="clutter_input_device_get_device_node">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="194"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_device_type"
+              c:identifier="clutter_input_device_get_device_type"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="873">Retrieves the type of @device</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="879">the type of the device</doc>
+          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="875">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_enabled"
+              c:identifier="clutter_input_device_get_enabled"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="942">Retrieves whether @device is enabled.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="948">%TRUE if the device is enabled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="944">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_grabbed_actor"
+              c:identifier="clutter_input_device_get_grabbed_actor"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2043">Retrieves a pointer to the #ClutterActor currently grabbing all
+the events coming from @device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="151"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="2050">a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2045">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_group_n_modes"
+              c:identifier="clutter_input_device_get_group_n_modes">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="182"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="group" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_has_cursor"
+              c:identifier="clutter_input_device_get_has_cursor"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1142">Retrieves whether @device has a pointer that follows the
+device motion.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1149">%TRUE if the device has a cursor</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1144">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key"
+              c:identifier="clutter_input_device_get_key"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1570">Retrieves the key set using clutter_input_device_set_key()</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1579">%TRUE if a key was set at the given index</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1572">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1573">the index of the key</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keyval"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1574">return location for the keyval at @index_</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="modifiers"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1575">return location for the modifiers at @index_</doc>
+            <type name="ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_mapping_mode"
+              c:identifier="clutter_input_device_get_mapping_mode">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="197"/>
+        <return-value transfer-ownership="none">
+          <type name="InputDeviceMapping" c:type="ClutterInputDeviceMapping"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_mode_switch_button_group"
+              c:identifier="clutter_input_device_get_mode_switch_button_group">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="190"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_modifier_state"
+              c:identifier="clutter_input_device_get_modifier_state"
+              version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="616">Retrieves the current modifiers state of the device, as seen
+by the last event Clutter processed.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="623">the last known modifier state</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="618">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_axes"
+              c:identifier="clutter_input_device_get_n_axes"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1478">Retrieves the number of axes available on @device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="112"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1484">the number of axes on the device</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1480">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_keys"
+              c:identifier="clutter_input_device_get_n_keys"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1522">Retrieves the number of keys registered for @device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="123"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1528">the number of registered keys</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1524">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_mode_groups"
+              c:identifier="clutter_input_device_get_n_mode_groups">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="179"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_rings"
+              c:identifier="clutter_input_device_get_n_rings">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="175"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_strips"
+              c:identifier="clutter_input_device_get_n_strips">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_physical_devices"
+              c:identifier="clutter_input_device_get_physical_devices"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1707">Retrieves the physical devices attached to @device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="138"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1713">a
+  list of #ClutterInputDevice, or %NULL. The contents of the list are
+  owned by the device. Use g_list_free() when done</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="InputDevice"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1709">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer_stage"
+              c:identifier="clutter_input_device_get_pointer_stage"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1103">Retrieves the #ClutterStage underneath the pointer of @device</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1109">a pointer to the #ClutterStage or %NULL</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1105">a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_product_id"
+              c:identifier="clutter_input_device_get_product_id"
+              version="1.22">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2230">Gets the product ID of this device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="172"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="2236">the product ID</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2232">a physical #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_seat" c:identifier="clutter_input_device_get_seat">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2441">Returns the seat the device belongs to</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="206"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="2447">the device seat</doc>
+          <type name="Seat" c:type="ClutterSeat*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2443">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_vendor_id"
+              c:identifier="clutter_input_device_get_vendor_id"
+              version="1.22">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2211">Gets the vendor ID of this device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="170"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="2217">the vendor ID</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2213">a physical #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="grab"
+              c:identifier="clutter_input_device_grab"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1944">Acquires a grab on @actor for the given @device.
+
+Any event coming from @device will be delivered to @actor, bypassing
+the usual event delivery mechanism, until the grab is released by
+calling clutter_input_device_ungrab().
+
+The grab is client-side: even if the windowing system used by the Clutter
+backend has the concept of "device grabs", Clutter will not use them.
+
+Only #ClutterInputDevice of types %CLUTTER_POINTER_DEVICE,
+%CLUTTER_TABLET_DEVICE and %CLUTTER_KEYBOARD_DEVICE can hold a grab.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1946">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1947">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_grouped" c:identifier="clutter_input_device_is_grouped">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="203"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="other_device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_mode_switch_button"
+              c:identifier="clutter_input_device_is_mode_switch_button">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="186"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="group" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="keycode_to_evdev"
+              c:identifier="clutter_input_device_keycode_to_evdev"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1794">Translates a hardware keycode from a #ClutterKeyEvent to the
+equivalent evdev keycode. Note that depending on the input backend
+used by Clutter this function can fail if there is no obvious
+mapping between the key codes. The hardware keycode can be taken
+from the #ClutterKeyEvent.hardware_keycode member of #ClutterKeyEvent.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="165"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="1806">%TRUE if the conversion succeeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1796">A #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="hardware_keycode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1797">The hardware keycode from a #ClutterKeyEvent</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="evdev_keycode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1798">The return location for the evdev keycode</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sequence_get_grabbed_actor"
+              c:identifier="clutter_input_device_sequence_get_grabbed_actor"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2187">Retrieves a pointer to the #ClutterActor currently grabbing the
+touch events coming from @device given the @sequence.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="161"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device.c"
+               line="2195">a #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2189">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="sequence" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2190">a #ClutterEventSequence</doc>
+            <type name="EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sequence_grab"
+              c:identifier="clutter_input_device_sequence_grab"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2089">Acquires a grab on @actor for the given @device and the given touch
+@sequence.
+
+Any touch event coming from @device and from @sequence will be
+delivered to @actor, bypassing the usual event delivery mechanism,
+until the grab is released by calling
+clutter_input_device_sequence_ungrab().
+
+The grab is client-side: even if the windowing system used by the Clutter
+backend has the concept of "device grabs", Clutter will not use them.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="154"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2091">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="sequence" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2092">a #ClutterEventSequence</doc>
+            <type name="EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2093">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sequence_ungrab"
+              c:identifier="clutter_input_device_sequence_ungrab"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2146">Releases the grab on the @device for the given @sequence, if one is
+in place.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="158"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2148">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="sequence" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2149">a #ClutterEventSequence</doc>
+            <type name="EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_enabled"
+              c:identifier="clutter_input_device_set_enabled"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="910">Enables or disables a #ClutterInputDevice.
+
+Only devices with a #ClutterInputDevice:device-mode property set
+to %CLUTTER_INPUT_MODE_PHYSICAL or %CLUTTER_INPUT_MODE_FLOATING can
+be disabled.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="912">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="913">%TRUE to enable the @device</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key"
+              c:identifier="clutter_input_device_set_key"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1540">Sets the keyval and modifiers at the given @index_ for @device.
+
+Clutter will use the keyval and modifiers set when filling out
+an event coming from the same input device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="125"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1542">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1543">the index of the key</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1544">the keyval</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1545">a bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mapping_mode"
+              c:identifier="clutter_input_device_set_mapping_mode">
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="200"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="mapping" transfer-ownership="none">
+            <type name="InputDeviceMapping"
+                  c:type="ClutterInputDeviceMapping"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ungrab"
+              c:identifier="clutter_input_device_ungrab"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="2003">Releases the grab on the @device, if one is in place.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="149"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="2005">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="update_from_event"
+              c:identifier="clutter_input_device_update_from_event"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="1180">Forcibly updates the state of the @device using a #ClutterEvent
+
+This function should never be used by applications: it is meant
+for integration with embedding toolkits, like clutter-gtk
+
+Embedding toolkits that disable the event collection inside Clutter
+need to use this function to update the state of input devices depending
+on a #ClutterEvent that they are going to submit to the event handling code
+in Clutter though clutter_do_event(). Since the input devices hold the state
+that is going to be used to fill in fields like the #ClutterButtonEvent
+click count, or to emit synthesized events like %CLUTTER_ENTER and
+%CLUTTER_LEAVE, it is necessary for embedding toolkits to also be
+responsible of updating the input device state.
+
+For instance, this might be the code to translate an embedding toolkit
+native motion notification into a Clutter #ClutterMotionEvent and ask
+Clutter to process it:
+
+|[
+  ClutterEvent c_event;
+
+  translate_native_event_to_clutter (native_event, &amp;c_event);
+
+  clutter_do_event (&amp;c_event);
+]|
+
+Before letting clutter_do_event() process the event, it is necessary to call
+clutter_input_device_update_from_event():
+
+|[
+  ClutterEvent c_event;
+  ClutterDeviceManager *manager;
+  ClutterInputDevice *device;
+
+  translate_native_event_to_clutter (native_event, &amp;c_event);
+
+  // get the seat
+  seat = clutter_backend_get_deafult_seat (clutter_get_default_backend ());
+
+  // use the default Core Pointer that Clutter backends register by default
+  device = clutter_seat_get_pointer (seat);
+
+  // update the state of the input device
+  clutter_input_device_update_from_event (device, &amp;c_event, FALSE);
+
+  clutter_do_event (&amp;c_event);
+]|
+
+The @update_stage boolean argument should be used when the input device
+enters and leaves a #ClutterStage; it will use the #ClutterStage field
+of the passed @event to update the stage associated to the input device.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device.h"
+                         line="141"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1182">a #ClutterInputDevice</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1183">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="update_stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1184">whether to update the #ClutterStage of the @device
+  using the stage of the event</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="backend"
+                version="1.6"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="439">The #ClutterBackend that created the device.</doc>
+        <type name="Backend"/>
+      </property>
+      <property name="device-mode"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="InputMode"/>
+      </property>
+      <property name="device-node"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="device-type"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="348">The type of the device</doc>
+        <type name="InputDeviceType"/>
+      </property>
+      <property name="enabled"
+                version="1.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="405">Whether the device is enabled.
+
+A device with the #ClutterInputDevice:device-mode property set
+to %CLUTTER_INPUT_MODE_LOGICAL cannot be disabled.
+
+A device must be enabled in order to receive events from it.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="has-cursor"
+                version="1.6"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="391">Whether the device has an on screen cursor following its movement.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="id"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="317">The unique identifier of the device</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="mapping-mode" writable="1" transfer-ownership="none">
+        <type name="InputDeviceMapping"/>
+      </property>
+      <property name="n-axes" version="1.6" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="424">The number of axes of the device.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="n-mode-groups"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="n-rings"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="n-strips"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="name"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="333">The name of the device</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="product-id"
+                version="1.22"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="467">Product ID of this device.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="seat"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="364">The #ClutterSeat instance which owns the device</doc>
+        <type name="Seat"/>
+      </property>
+      <property name="vendor-id"
+                version="1.22"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device.c"
+             line="453">Vendor ID of this device.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+    </class>
+    <record name="InputDeviceClass"
+            c:type="ClutterInputDeviceClass"
+            glib:is-gtype-struct-for="InputDevice">
+      <source-position filename="../clutter/clutter/clutter-input-device.h"
+                       line="63"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="keycode_to_evdev">
+        <callback name="keycode_to_evdev">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="44"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device.c"
+                 line="1806">%TRUE if the conversion succeeded, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="device" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-input-device.c"
+                   line="1796">A #ClutterInputDevice</doc>
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="hardware_keycode" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-input-device.c"
+                   line="1797">The hardware keycode from a #ClutterKeyEvent</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="evdev_keycode" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-input-device.c"
+                   line="1798">The return location for the evdev keycode</doc>
+              <type name="guint" c:type="guint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_from_tool">
+        <callback name="update_from_tool">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="47"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="tool" transfer-ownership="none">
+              <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_mode_switch_button">
+        <callback name="is_mode_switch_button">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="50"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="group" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="button" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_group_n_modes">
+        <callback name="get_group_n_modes">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="53"/>
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="group" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_grouped">
+        <callback name="is_grouped">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="56"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="other_device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="process_kbd_a11y_event" introspectable="0">
+        <callback name="process_kbd_a11y_event" introspectable="0">
+          <source-position filename="../clutter/clutter/clutter-input-device.h"
+                           line="60"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+            <parameter name="emit_event_func" transfer-ownership="none">
+              <type name="EmitInputDeviceEvent"
+                    c:type="ClutterEmitInputDeviceEvent"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="InputDeviceMapping"
+                 glib:type-name="ClutterInputDeviceMapping"
+                 glib:get-type="clutter_input_device_mapping_get_type"
+                 c:type="ClutterInputDeviceMapping">
+      <member name="absolute"
+              value="0"
+              c:identifier="CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE"
+              glib:nick="absolute">
+      </member>
+      <member name="relative"
+              value="1"
+              c:identifier="CLUTTER_INPUT_DEVICE_MAPPING_RELATIVE"
+              glib:nick="relative">
+      </member>
+    </enumeration>
+    <enumeration name="InputDevicePadSource"
+                 glib:type-name="ClutterInputDevicePadSource"
+                 glib:get-type="clutter_input_device_pad_source_get_type"
+                 c:type="ClutterInputDevicePadSource">
+      <member name="unknown"
+              value="0"
+              c:identifier="CLUTTER_INPUT_DEVICE_PAD_SOURCE_UNKNOWN"
+              glib:nick="unknown">
+      </member>
+      <member name="finger"
+              value="1"
+              c:identifier="CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER"
+              glib:nick="finger">
+      </member>
+    </enumeration>
+    <class name="InputDeviceTool"
+           c:symbol-prefix="input_device_tool"
+           c:type="ClutterInputDeviceTool"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterInputDeviceTool"
+           glib:get-type="clutter_input_device_tool_get_type"
+           glib:type-struct="InputDeviceToolClass">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="53"/>
+      <method name="get_id" c:identifier="clutter_input_device_tool_get_id">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device-tool.c"
+             line="187">Gets the ID of this tool, this value can be used to identify a
+physical tool (eg. a tablet pen) across program executions.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device-tool.c"
+               line="194">The tool ID for this tool</doc>
+          <type name="guint64" c:type="guint64"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device-tool.c"
+                 line="189">a #ClutterInputDeviceTool</doc>
+            <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_serial"
+              c:identifier="clutter_input_device_tool_get_serial"
+              version="1.28">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device-tool.c"
+             line="141">Gets the serial of this tool, this value can be used to identify a
+physical tool (eg. a tablet pen) across program executions.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device-tool.c"
+               line="148">The serial ID for this tool</doc>
+          <type name="guint64" c:type="guint64"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device-tool.c"
+                 line="143">a #ClutterInputDeviceTool</doc>
+            <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_tool_type"
+              c:identifier="clutter_input_device_tool_get_tool_type"
+              version="1.28">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-device-tool.c"
+             line="165">Gets the tool type of this tool.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-input-device-tool.c"
+               line="171">The tool type of this tool</doc>
+          <type name="InputDeviceToolType"
+                c:type="ClutterInputDeviceToolType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tool" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-device-tool.c"
+                 line="167">a #ClutterInputDeviceTool</doc>
+            <type name="InputDeviceTool" c:type="ClutterInputDeviceTool*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="id"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="guint64" c:type="guint64"/>
+      </property>
+      <property name="serial"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="guint64" c:type="guint64"/>
+      </property>
+      <property name="type"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="InputDeviceToolType"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="InputDeviceToolClass"
+            c:type="ClutterInputDeviceToolClass"
+            glib:is-gtype-struct-for="InputDeviceTool">
+      <source-position filename="../clutter/clutter/clutter-input-device-tool.h"
+                       line="53"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="InputDeviceToolType"
+                 version="1.28"
+                 glib:type-name="ClutterInputDeviceToolType"
+                 glib:get-type="clutter_input_device_tool_type_get_type"
+                 c:type="ClutterInputDeviceToolType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1605">Defines the type of tool that a #ClutterInputDeviceTool represents.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1607">No tool</doc>
+      </member>
+      <member name="pen"
+              value="1"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_PEN"
+              glib:nick="pen">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1608">The tool is a pen</doc>
+      </member>
+      <member name="eraser"
+              value="2"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_ERASER"
+              glib:nick="eraser">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1609">The tool is an eraser</doc>
+      </member>
+      <member name="brush"
+              value="3"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_BRUSH"
+              glib:nick="brush">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1610">The tool is a brush</doc>
+      </member>
+      <member name="pencil"
+              value="4"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_PENCIL"
+              glib:nick="pencil">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1611">The tool is a pencil</doc>
+      </member>
+      <member name="airbrush"
+              value="5"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_AIRBRUSH"
+              glib:nick="airbrush">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1612">The tool is an airbrush</doc>
+      </member>
+      <member name="mouse"
+              value="6"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_MOUSE"
+              glib:nick="mouse">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1613">The tool is a mouse</doc>
+      </member>
+      <member name="lens"
+              value="7"
+              c:identifier="CLUTTER_INPUT_DEVICE_TOOL_LENS"
+              glib:nick="lens">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1614">The tool is a lens</doc>
+      </member>
+    </enumeration>
+    <enumeration name="InputDeviceType"
+                 version="1.0"
+                 glib:type-name="ClutterInputDeviceType"
+                 glib:get-type="clutter_input_device_type_get_type"
+                 c:type="ClutterInputDeviceType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="997">The types of input devices available.
+
+The #ClutterInputDeviceType enumeration can be extended at later
+date; not every platform supports every input device type.</doc>
+      <member name="pointer_device"
+              value="0"
+              c:identifier="CLUTTER_POINTER_DEVICE"
+              glib:nick="pointer-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="999">A pointer device</doc>
+      </member>
+      <member name="keyboard_device"
+              value="1"
+              c:identifier="CLUTTER_KEYBOARD_DEVICE"
+              glib:nick="keyboard-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1000">A keyboard device</doc>
+      </member>
+      <member name="extension_device"
+              value="2"
+              c:identifier="CLUTTER_EXTENSION_DEVICE"
+              glib:nick="extension-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1001">A generic extension device</doc>
+      </member>
+      <member name="joystick_device"
+              value="3"
+              c:identifier="CLUTTER_JOYSTICK_DEVICE"
+              glib:nick="joystick-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1002">A joystick device</doc>
+      </member>
+      <member name="tablet_device"
+              value="4"
+              c:identifier="CLUTTER_TABLET_DEVICE"
+              glib:nick="tablet-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1003">A tablet device</doc>
+      </member>
+      <member name="touchpad_device"
+              value="5"
+              c:identifier="CLUTTER_TOUCHPAD_DEVICE"
+              glib:nick="touchpad-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1004">A touchpad device</doc>
+      </member>
+      <member name="touchscreen_device"
+              value="6"
+              c:identifier="CLUTTER_TOUCHSCREEN_DEVICE"
+              glib:nick="touchscreen-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1005">A touch screen device</doc>
+      </member>
+      <member name="pen_device"
+              value="7"
+              c:identifier="CLUTTER_PEN_DEVICE"
+              glib:nick="pen-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1006">A pen device</doc>
+      </member>
+      <member name="eraser_device"
+              value="8"
+              c:identifier="CLUTTER_ERASER_DEVICE"
+              glib:nick="eraser-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1007">An eraser device</doc>
+      </member>
+      <member name="cursor_device"
+              value="9"
+              c:identifier="CLUTTER_CURSOR_DEVICE"
+              glib:nick="cursor-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1008">A cursor device</doc>
+      </member>
+      <member name="pad_device"
+              value="10"
+              c:identifier="CLUTTER_PAD_DEVICE"
+              glib:nick="pad-device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1009">A tablet pad</doc>
+      </member>
+      <member name="n_device_types"
+              value="11"
+              c:identifier="CLUTTER_N_DEVICE_TYPES"
+              glib:nick="n-device-types">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1010">The number of device types</doc>
+      </member>
+    </enumeration>
+    <class name="InputFocus"
+           c:symbol-prefix="input_focus"
+           c:type="ClutterInputFocus"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterInputFocus"
+           glib:get-type="clutter_input_focus_get_type"
+           glib:type-struct="InputFocusClass">
+      <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                       line="52"/>
+      <virtual-method name="commit_text">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="46"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delete_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_in">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="38"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="input_method" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_out">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="40"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="request_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_preedit_text">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="49"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="preedit" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cursor" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="filter_event"
+              c:identifier="clutter_input_focus_filter_event">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_focused" c:identifier="clutter_input_focus_is_focused">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="reset" c:identifier="clutter_input_focus_reset">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_can_show_preedit"
+              c:identifier="clutter_input_focus_set_can_show_preedit">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="can_show_preedit" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_hints"
+              c:identifier="clutter_input_focus_set_content_hints">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="69"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="hint" transfer-ownership="none">
+            <type name="InputContentHintFlags"
+                  c:type="ClutterInputContentHintFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_purpose"
+              c:identifier="clutter_input_focus_set_content_purpose">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="72"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="purpose" transfer-ownership="none">
+            <type name="InputContentPurpose"
+                  c:type="ClutterInputContentPurpose"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_location"
+              c:identifier="clutter_input_focus_set_cursor_location">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_input_panel_state"
+              c:identifier="clutter_input_focus_set_input_panel_state">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="InputPanelState" c:type="ClutterInputPanelState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_surrounding"
+              c:identifier="clutter_input_focus_set_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cursor" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="anchor" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="InputFocusClass"
+            c:type="ClutterInputFocusClass"
+            glib:is-gtype-struct-for="InputFocus">
+      <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                       line="52"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="focus_in">
+        <callback name="focus_in">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="38"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+            <parameter name="input_method" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_out">
+        <callback name="focus_out">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="40"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="request_surrounding">
+        <callback name="request_surrounding">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="42"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delete_surrounding">
+        <callback name="delete_surrounding">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="43"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="len" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="commit_text">
+        <callback name="commit_text">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="46"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+            <parameter name="text" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_preedit_text">
+        <callback name="set_preedit_text">
+          <source-position filename="../clutter/clutter/clutter-input-focus.h"
+                           line="49"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="focus" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+            <parameter name="preedit" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="cursor" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="InputMethod"
+           c:symbol-prefix="input_method"
+           c:type="ClutterInputMethod"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterInputMethod"
+           glib:get-type="clutter_input_method_get_type"
+           glib:type-struct="InputMethodClass">
+      <source-position filename="../clutter/clutter/clutter-input-method.h"
+                       line="58"/>
+      <virtual-method name="filter_key_event">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_in" invoker="focus_in">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="39"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_out" invoker="focus_out">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="reset">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_cursor_location">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cursor" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="anchor" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_content_hints">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="51"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="hint" transfer-ownership="none">
+            <type name="InputContentHintFlags"
+                  c:type="ClutterInputContentHintFlags"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_content_purpose">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="purpose" transfer-ownership="none">
+            <type name="InputContentPurpose"
+                  c:type="ClutterInputContentPurpose"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="commit" c:identifier="clutter_input_method_commit">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_surrounding"
+              c:identifier="clutter_input_method_delete_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="focus_in" c:identifier="clutter_input_method_focus_in">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="focus" transfer-ownership="none">
+            <type name="InputFocus" c:type="ClutterInputFocus*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="focus_out" c:identifier="clutter_input_method_focus_out">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="forward_key"
+              c:identifier="clutter_input_method_forward_key">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="time_" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="press" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_key_event"
+              c:identifier="clutter_input_method_notify_key_event">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+          <parameter name="filtered" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="request_surrounding"
+              c:identifier="clutter_input_method_request_surrounding">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="74"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_input_panel_state"
+              c:identifier="clutter_input_method_set_input_panel_state">
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="InputPanelState" c:type="ClutterInputPanelState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_preedit_text"
+              c:identifier="clutter_input_method_set_preedit_text">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-input-method.c"
+             line="343">Sets the preedit text on the current input focus.</doc>
+        <source-position filename="../clutter/clutter/clutter-input-method.h"
+                         line="77"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="im" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-method.c"
+                 line="345">a #ClutterInputMethod</doc>
+            <type name="InputMethod" c:type="ClutterInputMethod*"/>
+          </instance-parameter>
+          <parameter name="preedit"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-method.c"
+                 line="346">the preedit text, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cursor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-input-method.c"
+                 line="347">the cursor</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="can-show-preedit" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="content-hints" writable="1" transfer-ownership="none">
+        <type name="InputContentHintFlags"/>
+      </property>
+      <property name="content-purpose" writable="1" transfer-ownership="none">
+        <type name="InputContentPurpose"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="commit" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="cursor-location-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Graphene.Rect"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="delete-surrounding" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="input-panel-state" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="InputPanelState"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="request-surrounding" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="InputMethodClass"
+            c:type="ClutterInputMethodClass"
+            glib:is-gtype-struct-for="InputMethod">
+      <source-position filename="../clutter/clutter/clutter-input-method.h"
+                       line="58"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="focus_in">
+        <callback name="focus_in">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="39"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="InputFocus" c:type="ClutterInputFocus*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_out">
+        <callback name="focus_out">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="41"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="43"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_cursor_location">
+        <callback name="set_cursor_location">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="45"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="rect" transfer-ownership="none">
+              <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_surrounding">
+        <callback name="set_surrounding">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="47"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="text" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="cursor" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="anchor" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_content_hints">
+        <callback name="update_content_hints">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="51"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="hint" transfer-ownership="none">
+              <type name="InputContentHintFlags"
+                    c:type="ClutterInputContentHintFlags"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_content_purpose">
+        <callback name="update_content_purpose">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="53"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="purpose" transfer-ownership="none">
+              <type name="InputContentPurpose"
+                    c:type="ClutterInputContentPurpose"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="filter_key_event">
+        <callback name="filter_key_event">
+          <source-position filename="../clutter/clutter/clutter-input-method.h"
+                           line="56"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="im" transfer-ownership="none">
+              <type name="InputMethod" c:type="ClutterInputMethod*"/>
+            </parameter>
+            <parameter name="key" transfer-ownership="none">
+              <type name="Event" c:type="const ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="InputMode"
+                 version="1.6"
+                 glib:type-name="ClutterInputMode"
+                 glib:get-type="clutter_input_mode_get_type"
+                 c:type="ClutterInputMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1036">The mode for input devices available.</doc>
+      <member name="logical"
+              value="0"
+              c:identifier="CLUTTER_INPUT_MODE_LOGICAL"
+              glib:nick="logical">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1038">A logical, virtual device</doc>
+      </member>
+      <member name="physical"
+              value="1"
+              c:identifier="CLUTTER_INPUT_MODE_PHYSICAL"
+              glib:nick="physical">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1039">A physical device, attached to
+  a logical device</doc>
+      </member>
+      <member name="floating"
+              value="2"
+              c:identifier="CLUTTER_INPUT_MODE_FLOATING"
+              glib:nick="floating">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1041">A physical device, not attached
+  to a logical device</doc>
+      </member>
+    </enumeration>
+    <enumeration name="InputPanelState"
+                 glib:type-name="ClutterInputPanelState"
+                 glib:get-type="clutter_input_panel_state_get_type"
+                 c:type="ClutterInputPanelState">
+      <member name="off"
+              value="0"
+              c:identifier="CLUTTER_INPUT_PANEL_STATE_OFF"
+              glib:nick="off">
+      </member>
+      <member name="on"
+              value="1"
+              c:identifier="CLUTTER_INPUT_PANEL_STATE_ON"
+              glib:nick="on">
+      </member>
+      <member name="toggle"
+              value="2"
+              c:identifier="CLUTTER_INPUT_PANEL_STATE_TOGGLE"
+              glib:nick="toggle">
+      </member>
+    </enumeration>
+    <enumeration name="Interpolation"
+                 version="1.2"
+                 deprecated="1"
+                 deprecated-version="1.22"
+                 glib:type-name="ClutterInterpolation"
+                 glib:get-type="clutter_interpolation_get_type"
+                 c:type="ClutterInterpolation">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="575">The mode of interpolation between key frames</doc>
+      <member name="linear"
+              value="0"
+              c:identifier="CLUTTER_INTERPOLATION_LINEAR"
+              glib:nick="linear">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="577">linear interpolation</doc>
+      </member>
+      <member name="cubic"
+              value="1"
+              c:identifier="CLUTTER_INTERPOLATION_CUBIC"
+              glib:nick="cubic">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="578">cubic interpolation</doc>
+      </member>
+    </enumeration>
+    <class name="Interval"
+           c:symbol-prefix="interval"
+           c:type="ClutterInterval"
+           version="1.0"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterInterval"
+           glib:get-type="clutter_interval_get_type"
+           glib:type-struct="IntervalClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-interval.h"
+           line="46">The #ClutterInterval structure contains only private data and should
+be accessed using the provided functions.</doc>
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="93"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_interval_new"
+                   version="1.0"
+                   introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="737">Creates a new #ClutterInterval holding values of type @gtype.
+
+This function avoids using a #GValue for the initial and final values
+of the interval:
+
+|[
+  interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0);
+  interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE);
+  interval = clutter_interval_new (G_TYPE_INT, 0, 360);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="753">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="739">the type of the values in the interval</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="740">the initial value and the final value of the interval</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_values"
+                   c:identifier="clutter_interval_new_with_values"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="781">Creates a new #ClutterInterval of type @gtype, between @initial
+and @final.
+
+This function is useful for language bindings.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="792">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="783">the type of the values in the interval</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="initial"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="784">a #GValue holding the initial value of the interval</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+          <parameter name="final"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="785">a #GValue holding the final value of the interval</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="register_progress_func"
+                c:identifier="clutter_interval_register_progress_func"
+                version="1.0"
+                introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-util.c"
+             line="596">Sets the progress function for a given @value_type, like:
+
+|[
+  clutter_interval_register_progress_func (MY_TYPE_FOO,
+                                           my_foo_progress);
+]|
+
+Whenever a #ClutterInterval instance using the default
+#ClutterInterval::compute_value implementation is set as an
+interval between two #GValue of type @value_type, it will call
+@func to establish the value depending on the given progress,
+for instance:
+
+|[
+  static gboolean
+  my_int_progress (const GValue *a,
+                   const GValue *b,
+                   gdouble       progress,
+                   GValue       *retval)
+  {
+    gint ia = g_value_get_int (a);
+    gint ib = g_value_get_int (b);
+    gint res = factor * (ib - ia) + ia;
+
+    g_value_set_int (retval, res);
+
+    return TRUE;
+  }
+
+  clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress);
+]|
+
+To unset a previously set progress function of a #GType, pass %NULL
+for @func.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="432"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-util.c"
+                 line="598">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="func" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-util.c"
+                 line="599">a #ClutterProgressFunc, or %NULL to unset a previously
+  set progress function</doc>
+            <type name="ProgressFunc" c:type="ClutterProgressFunc"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="compute_value"
+                      invoker="compute_value"
+                      version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1137">Computes the value between the @interval boundaries given the
+progress @factor and copies it into @value.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1146">%TRUE if the operation was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1139">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1140">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1141">return location for an initialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="validate" invoker="validate" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1115">Validates the initial and final values of @interval against
+a #GParamSpec.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1123">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1117">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1118">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="clone" c:identifier="clutter_interval_clone" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="812">Creates a copy of @interval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="107"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="818">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="814">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="compute"
+              c:identifier="clutter_interval_compute"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1163">Computes the value between the @interval boundaries given the
+progress @factor
+
+Unlike clutter_interval_compute_value(), this function will
+return a const pointer to the computed value
+
+You should use this function if you immediately pass the computed
+value to another function that makes a copy of it, like
+g_object_set_property()</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="151"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1178">a pointer to the computed value,
+  or %NULL if the computation was not successful</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1165">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1166">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="compute_value"
+              c:identifier="clutter_interval_compute_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1137">Computes the value between the @interval boundaries given the
+progress @factor and copies it into @value.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1146">%TRUE if the operation was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1139">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1140">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1141">return location for an initialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_final_value"
+              c:identifier="clutter_interval_get_final_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="972">Retrieves the final value of @interval and copies
+it into @value.
+
+The passed #GValue must be initialized to the value held by
+the #ClutterInterval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="974">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="975">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_initial_value"
+              c:identifier="clutter_interval_get_initial_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="909">Retrieves the initial value of @interval and copies
+it into @value.
+
+The passed #GValue must be initialized to the value held by
+the #ClutterInterval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="911">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="912">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_interval"
+              c:identifier="clutter_interval_get_interval"
+              version="1.0"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1081">Variable arguments wrapper for clutter_interval_get_initial_value()
+and clutter_interval_get_final_value() that avoids using the
+#GValue arguments:
+
+|[
+  gint a = 0, b = 0;
+  clutter_interval_get_interval (interval, &amp;a, &amp;b);
+]|
+
+This function is meant for the convenience of the C API; bindings
+should reimplement this function using the #GValue-based API.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1083">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1084">return locations for the initial and final values of
+  the interval</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_type"
+              c:identifier="clutter_interval_get_value_type"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="844">Retrieves the #GType of the values inside @interval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="110"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="850">the type of the value, or G_TYPE_INVALID</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="846">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_valid"
+              c:identifier="clutter_interval_is_valid"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1207">Checks if the @interval has a valid initial and final values.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="155"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1213">%TRUE if the #ClutterInterval has an initial and
+  final values, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1209">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="peek_final_value"
+              c:identifier="clutter_interval_peek_final_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1021">Gets the pointer to the final value of @interval</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="133"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1027">the final value of the interval.
+  The value is owned by the #ClutterInterval and it should not be
+  modified or freed</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1023">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="peek_initial_value"
+              c:identifier="clutter_interval_peek_initial_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="932">Gets the pointer to the initial value of @interval</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="122"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="938">the initial value of the interval.
+  The value is owned by the #ClutterInterval and it should not be
+  modified or freed</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="934">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_final"
+              c:identifier="clutter_interval_set_final"
+              shadowed-by="set_final_value"
+              version="1.10"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="995">Variadic arguments version of clutter_interval_set_final_value().
+
+This function is meant as a convenience for the C API.
+
+Language bindings should use clutter_interval_set_final_value() instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="124"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="997">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="998">the final value of the interval</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_final_value"
+              c:identifier="clutter_interval_set_final_value"
+              shadows="set_final"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="952">Sets the final value of @interval to @value. The value is
+copied inside the #ClutterInterval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="127"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="954">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="955">a #GValue</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_initial"
+              c:identifier="clutter_interval_set_initial"
+              shadowed-by="set_initial_value"
+              version="1.10"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="882">Variadic arguments version of clutter_interval_set_initial_value().
+
+This function is meant as a convenience for the C API.
+
+Language bindings should use clutter_interval_set_initial_value()
+instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="884">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="885">the initial value of the interval.</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_initial_value"
+              c:identifier="clutter_interval_set_initial_value"
+              shadows="set_initial"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="862">Sets the initial value of @interval to @value. The value is copied
+inside the #ClutterInterval.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="116"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="864">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="865">a #GValue</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_interval"
+              c:identifier="clutter_interval_set_interval"
+              version="1.0"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1041">Variable arguments wrapper for clutter_interval_set_initial_value()
+and clutter_interval_set_final_value() that avoids using the
+#GValue arguments:
+
+|[
+  clutter_interval_set_interval (interval, 0, 50);
+  clutter_interval_set_interval (interval, 1.0, 0.0);
+  clutter_interval_set_interval (interval, FALSE, TRUE);
+]|
+
+This function is meant for the convenience of the C API; bindings
+should reimplement this function using the #GValue-based API.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1043">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1044">the initial and final values of the interval</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="validate"
+              c:identifier="clutter_interval_validate"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="1115">Validates the initial and final values of @interval against
+a #GParamSpec.</doc>
+        <source-position filename="../clutter/clutter/clutter-interval.h"
+                         line="143"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-interval.c"
+               line="1123">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="interval" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1117">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </instance-parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1118">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="final"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="554">The final value of the interval.</doc>
+        <type name="GObject.Value"/>
+      </property>
+      <property name="initial"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="539">The initial value of the interval.</doc>
+        <type name="GObject.Value"/>
+      </property>
+      <property name="value-type"
+                version="1.0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-interval.c"
+             line="523">The type of the values in the interval.</doc>
+        <type name="GType" c:type="GType"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="IntervalPrivate" c:type="ClutterIntervalPrivate*"/>
+      </field>
+    </class>
+    <record name="IntervalClass"
+            c:type="ClutterIntervalClass"
+            glib:is-gtype-struct-for="Interval"
+            version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-interval.h"
+           line="62">The #ClutterIntervalClass contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="validate">
+        <callback name="validate">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1123">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="interval" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-interval.c"
+                   line="1117">a #ClutterInterval</doc>
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-interval.c"
+                   line="1118">a #GParamSpec</doc>
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="compute_value">
+        <callback name="compute_value">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="81"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-interval.c"
+                 line="1146">%TRUE if the operation was successful</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="interval" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-interval.c"
+                   line="1139">a #ClutterInterval</doc>
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="factor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-interval.c"
+                   line="1140">the progress factor, between 0 and 1</doc>
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-interval.c"
+                   line="1141">return location for an initialized #GValue</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <source-position filename="../clutter/clutter/clutter-interval.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="IntervalPrivate"
+            c:type="ClutterIntervalPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-interval.h"
+                       line="43"/>
+    </record>
+    <function-macro name="KEYFRAME_TRANSITION"
+                    c:identifier="CLUTTER_KEYFRAME_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="KEYFRAME_TRANSITION_CLASS"
+                    c:identifier="CLUTTER_KEYFRAME_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="KEYFRAME_TRANSITION_GET_CLASS"
+                    c:identifier="CLUTTER_KEYFRAME_TRANSITION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="KEY_0" value="48" c:type="CLUTTER_KEY_0">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="397"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_1" value="49" c:type="CLUTTER_KEY_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="398"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_2" value="50" c:type="CLUTTER_KEY_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="399"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3" value="51" c:type="CLUTTER_KEY_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="400"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_AltCursor"
+              value="64784"
+              c:type="CLUTTER_KEY_3270_AltCursor">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="365"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Attn"
+              value="64782"
+              c:type="CLUTTER_KEY_3270_Attn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="363"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_BackTab"
+              value="64773"
+              c:type="CLUTTER_KEY_3270_BackTab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="354"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ChangeScreen"
+              value="64793"
+              c:type="CLUTTER_KEY_3270_ChangeScreen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="374"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Copy"
+              value="64789"
+              c:type="CLUTTER_KEY_3270_Copy">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="370"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorBlink"
+              value="64783"
+              c:type="CLUTTER_KEY_3270_CursorBlink">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="364"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorSelect"
+              value="64796"
+              c:type="CLUTTER_KEY_3270_CursorSelect">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="377"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_DeleteWord"
+              value="64794"
+              c:type="CLUTTER_KEY_3270_DeleteWord">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="375"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Duplicate"
+              value="64769"
+              c:type="CLUTTER_KEY_3270_Duplicate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="350"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Enter"
+              value="64798"
+              c:type="CLUTTER_KEY_3270_Enter">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="379"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseEOF"
+              value="64774"
+              c:type="CLUTTER_KEY_3270_EraseEOF">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="355"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseInput"
+              value="64775"
+              c:type="CLUTTER_KEY_3270_EraseInput">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="356"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ExSelect"
+              value="64795"
+              c:type="CLUTTER_KEY_3270_ExSelect">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="376"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_FieldMark"
+              value="64770"
+              c:type="CLUTTER_KEY_3270_FieldMark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="351"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Ident"
+              value="64787"
+              c:type="CLUTTER_KEY_3270_Ident">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="368"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Jump"
+              value="64786"
+              c:type="CLUTTER_KEY_3270_Jump">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="367"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_KeyClick"
+              value="64785"
+              c:type="CLUTTER_KEY_3270_KeyClick">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="366"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Left2"
+              value="64772"
+              c:type="CLUTTER_KEY_3270_Left2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="353"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA1" value="64778" c:type="CLUTTER_KEY_3270_PA1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="359"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA2" value="64779" c:type="CLUTTER_KEY_3270_PA2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="360"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA3" value="64780" c:type="CLUTTER_KEY_3270_PA3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="361"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Play"
+              value="64790"
+              c:type="CLUTTER_KEY_3270_Play">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="371"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PrintScreen"
+              value="64797"
+              c:type="CLUTTER_KEY_3270_PrintScreen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="378"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Quit"
+              value="64777"
+              c:type="CLUTTER_KEY_3270_Quit">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="358"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Record"
+              value="64792"
+              c:type="CLUTTER_KEY_3270_Record">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="373"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Reset"
+              value="64776"
+              c:type="CLUTTER_KEY_3270_Reset">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="357"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Right2"
+              value="64771"
+              c:type="CLUTTER_KEY_3270_Right2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="352"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Rule"
+              value="64788"
+              c:type="CLUTTER_KEY_3270_Rule">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="369"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Setup"
+              value="64791"
+              c:type="CLUTTER_KEY_3270_Setup">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="372"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Test"
+              value="64781"
+              c:type="CLUTTER_KEY_3270_Test">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="362"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_4" value="52" c:type="CLUTTER_KEY_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="401"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_5" value="53" c:type="CLUTTER_KEY_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="402"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_6" value="54" c:type="CLUTTER_KEY_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="403"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_7" value="55" c:type="CLUTTER_KEY_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="404"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_8" value="56" c:type="CLUTTER_KEY_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="405"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_9" value="57" c:type="CLUTTER_KEY_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="406"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_A" value="65" c:type="CLUTTER_KEY_A">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="414"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AE" value="198" c:type="CLUTTER_KEY_AE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="515"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aacute" value="193" c:type="CLUTTER_KEY_Aacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="510"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abelowdot"
+              value="16785056"
+              c:type="CLUTTER_KEY_Abelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1650"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreve" value="451" c:type="CLUTTER_KEY_Abreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="602"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreveacute"
+              value="16785070"
+              c:type="CLUTTER_KEY_Abreveacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1664"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevebelowdot"
+              value="16785078"
+              c:type="CLUTTER_KEY_Abrevebelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1672"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevegrave"
+              value="16785072"
+              c:type="CLUTTER_KEY_Abrevegrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1666"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevehook"
+              value="16785074"
+              c:type="CLUTTER_KEY_Abrevehook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1668"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevetilde"
+              value="16785076"
+              c:type="CLUTTER_KEY_Abrevetilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1670"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Enable"
+              value="65136"
+              c:type="CLUTTER_KEY_AccessX_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="303"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Feedback_Enable"
+              value="65137"
+              c:type="CLUTTER_KEY_AccessX_Feedback_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="304"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflex"
+              value="194"
+              c:type="CLUTTER_KEY_Acircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="511"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexacute"
+              value="16785060"
+              c:type="CLUTTER_KEY_Acircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1654"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexbelowdot"
+              value="16785068"
+              c:type="CLUTTER_KEY_Acircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1662"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexgrave"
+              value="16785062"
+              c:type="CLUTTER_KEY_Acircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1656"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexhook"
+              value="16785064"
+              c:type="CLUTTER_KEY_Acircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1658"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflextilde"
+              value="16785066"
+              c:type="CLUTTER_KEY_Acircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1660"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AddFavorite"
+              value="269025081"
+              c:type="CLUTTER_KEY_AddFavorite">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2180"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Adiaeresis"
+              value="196"
+              c:type="CLUTTER_KEY_Adiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="513"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Agrave" value="192" c:type="CLUTTER_KEY_Agrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="509"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ahook" value="16785058" c:type="CLUTTER_KEY_Ahook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1652"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_L" value="65513" c:type="CLUTTER_KEY_Alt_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="200"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_R" value="65514" c:type="CLUTTER_KEY_Alt_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="201"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Amacron" value="960" c:type="CLUTTER_KEY_Amacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="672"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aogonek" value="417" c:type="CLUTTER_KEY_Aogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="577"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ApplicationLeft"
+              value="269025104"
+              c:type="CLUTTER_KEY_ApplicationLeft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2203"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ApplicationRight"
+              value="269025105"
+              c:type="CLUTTER_KEY_ApplicationRight">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2204"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_0"
+              value="16778848"
+              c:type="CLUTTER_KEY_Arabic_0">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="810"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_1"
+              value="16778849"
+              c:type="CLUTTER_KEY_Arabic_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="811"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_2"
+              value="16778850"
+              c:type="CLUTTER_KEY_Arabic_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="812"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_3"
+              value="16778851"
+              c:type="CLUTTER_KEY_Arabic_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="813"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_4"
+              value="16778852"
+              c:type="CLUTTER_KEY_Arabic_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="814"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_5"
+              value="16778853"
+              c:type="CLUTTER_KEY_Arabic_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="815"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_6"
+              value="16778854"
+              c:type="CLUTTER_KEY_Arabic_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="816"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_7"
+              value="16778855"
+              c:type="CLUTTER_KEY_Arabic_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="817"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_8"
+              value="16778856"
+              c:type="CLUTTER_KEY_Arabic_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="818"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_9"
+              value="16778857"
+              c:type="CLUTTER_KEY_Arabic_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="819"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ain"
+              value="1497"
+              c:type="CLUTTER_KEY_Arabic_ain">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="846"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alef"
+              value="1479"
+              c:type="CLUTTER_KEY_Arabic_alef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="828"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alefmaksura"
+              value="1513"
+              c:type="CLUTTER_KEY_Arabic_alefmaksura">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="858"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_beh"
+              value="1480"
+              c:type="CLUTTER_KEY_Arabic_beh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="829"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_comma"
+              value="1452"
+              c:type="CLUTTER_KEY_Arabic_comma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="808"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dad"
+              value="1494"
+              c:type="CLUTTER_KEY_Arabic_dad">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="843"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dal"
+              value="1487"
+              c:type="CLUTTER_KEY_Arabic_dal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="836"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_damma"
+              value="1519"
+              c:type="CLUTTER_KEY_Arabic_damma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="864"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dammatan"
+              value="1516"
+              c:type="CLUTTER_KEY_Arabic_dammatan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="861"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ddal"
+              value="16778888"
+              c:type="CLUTTER_KEY_Arabic_ddal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="806"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_farsi_yeh"
+              value="16778956"
+              c:type="CLUTTER_KEY_Arabic_farsi_yeh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="878"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fatha"
+              value="1518"
+              c:type="CLUTTER_KEY_Arabic_fatha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="863"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fathatan"
+              value="1515"
+              c:type="CLUTTER_KEY_Arabic_fathatan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="860"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_feh"
+              value="1505"
+              c:type="CLUTTER_KEY_Arabic_feh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="849"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fullstop"
+              value="16778964"
+              c:type="CLUTTER_KEY_Arabic_fullstop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="809"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_gaf"
+              value="16778927"
+              c:type="CLUTTER_KEY_Arabic_gaf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="874"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ghain"
+              value="1498"
+              c:type="CLUTTER_KEY_Arabic_ghain">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="847"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ha" value="1511" c:type="CLUTTER_KEY_Arabic_ha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="855"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hah"
+              value="1485"
+              c:type="CLUTTER_KEY_Arabic_hah">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="834"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza"
+              value="1473"
+              c:type="CLUTTER_KEY_Arabic_hamza">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="822"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_above"
+              value="16778836"
+              c:type="CLUTTER_KEY_Arabic_hamza_above">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="869"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_below"
+              value="16778837"
+              c:type="CLUTTER_KEY_Arabic_hamza_below">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="870"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonalef"
+              value="1475"
+              c:type="CLUTTER_KEY_Arabic_hamzaonalef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="824"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonwaw"
+              value="1476"
+              c:type="CLUTTER_KEY_Arabic_hamzaonwaw">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="825"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonyeh"
+              value="1478"
+              c:type="CLUTTER_KEY_Arabic_hamzaonyeh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="827"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaunderalef"
+              value="1477"
+              c:type="CLUTTER_KEY_Arabic_hamzaunderalef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="826"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh"
+              value="1511"
+              c:type="CLUTTER_KEY_Arabic_heh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="856"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_doachashmee"
+              value="16778942"
+              c:type="CLUTTER_KEY_Arabic_heh_doachashmee">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="876"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_goal"
+              value="16778945"
+              c:type="CLUTTER_KEY_Arabic_heh_goal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="880"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeem"
+              value="1484"
+              c:type="CLUTTER_KEY_Arabic_jeem">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="833"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeh"
+              value="16778904"
+              c:type="CLUTTER_KEY_Arabic_jeh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="871"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kaf"
+              value="1507"
+              c:type="CLUTTER_KEY_Arabic_kaf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="851"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasra"
+              value="1520"
+              c:type="CLUTTER_KEY_Arabic_kasra">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="865"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasratan"
+              value="1517"
+              c:type="CLUTTER_KEY_Arabic_kasratan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="862"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_keheh"
+              value="16778921"
+              c:type="CLUTTER_KEY_Arabic_keheh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="873"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_khah"
+              value="1486"
+              c:type="CLUTTER_KEY_Arabic_khah">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="835"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_lam"
+              value="1508"
+              c:type="CLUTTER_KEY_Arabic_lam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="852"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_madda_above"
+              value="16778835"
+              c:type="CLUTTER_KEY_Arabic_madda_above">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="868"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_maddaonalef"
+              value="1474"
+              c:type="CLUTTER_KEY_Arabic_maddaonalef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="823"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_meem"
+              value="1509"
+              c:type="CLUTTER_KEY_Arabic_meem">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="853"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon"
+              value="1510"
+              c:type="CLUTTER_KEY_Arabic_noon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="854"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon_ghunna"
+              value="16778938"
+              c:type="CLUTTER_KEY_Arabic_noon_ghunna">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="875"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_peh"
+              value="16778878"
+              c:type="CLUTTER_KEY_Arabic_peh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="804"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_percent"
+              value="16778858"
+              c:type="CLUTTER_KEY_Arabic_percent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="801"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_qaf"
+              value="1506"
+              c:type="CLUTTER_KEY_Arabic_qaf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="850"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_question_mark"
+              value="1471"
+              c:type="CLUTTER_KEY_Arabic_question_mark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="821"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ra" value="1489" c:type="CLUTTER_KEY_Arabic_ra">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="838"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_rreh"
+              value="16778897"
+              c:type="CLUTTER_KEY_Arabic_rreh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="807"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sad"
+              value="1493"
+              c:type="CLUTTER_KEY_Arabic_sad">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="842"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_seen"
+              value="1491"
+              c:type="CLUTTER_KEY_Arabic_seen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="840"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_semicolon"
+              value="1467"
+              c:type="CLUTTER_KEY_Arabic_semicolon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="820"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_shadda"
+              value="1521"
+              c:type="CLUTTER_KEY_Arabic_shadda">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="866"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sheen"
+              value="1492"
+              c:type="CLUTTER_KEY_Arabic_sheen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="841"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sukun"
+              value="1522"
+              c:type="CLUTTER_KEY_Arabic_sukun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="867"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_superscript_alef"
+              value="16778864"
+              c:type="CLUTTER_KEY_Arabic_superscript_alef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="802"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_Arabic_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="881"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tah"
+              value="1495"
+              c:type="CLUTTER_KEY_Arabic_tah">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="844"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tatweel"
+              value="1504"
+              c:type="CLUTTER_KEY_Arabic_tatweel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="848"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tcheh"
+              value="16778886"
+              c:type="CLUTTER_KEY_Arabic_tcheh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="805"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_teh"
+              value="1482"
+              c:type="CLUTTER_KEY_Arabic_teh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="831"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tehmarbuta"
+              value="1481"
+              c:type="CLUTTER_KEY_Arabic_tehmarbuta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="830"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_thal"
+              value="1488"
+              c:type="CLUTTER_KEY_Arabic_thal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="837"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_theh"
+              value="1483"
+              c:type="CLUTTER_KEY_Arabic_theh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="832"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tteh"
+              value="16778873"
+              c:type="CLUTTER_KEY_Arabic_tteh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="803"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_veh"
+              value="16778916"
+              c:type="CLUTTER_KEY_Arabic_veh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="872"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_waw"
+              value="1512"
+              c:type="CLUTTER_KEY_Arabic_waw">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="857"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh"
+              value="1514"
+              c:type="CLUTTER_KEY_Arabic_yeh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="859"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh_baree"
+              value="16778962"
+              c:type="CLUTTER_KEY_Arabic_yeh_baree">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="879"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zah"
+              value="1496"
+              c:type="CLUTTER_KEY_Arabic_zah">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="845"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zain"
+              value="1490"
+              c:type="CLUTTER_KEY_Arabic_zain">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="839"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aring" value="197" c:type="CLUTTER_KEY_Aring">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="514"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AT"
+              value="16778552"
+              c:type="CLUTTER_KEY_Armenian_AT">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1530"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AYB"
+              value="16778545"
+              c:type="CLUTTER_KEY_Armenian_AYB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1516"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_BEN"
+              value="16778546"
+              c:type="CLUTTER_KEY_Armenian_BEN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1518"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_CHA"
+              value="16778569"
+              c:type="CLUTTER_KEY_Armenian_CHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1564"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DA"
+              value="16778548"
+              c:type="CLUTTER_KEY_Armenian_DA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1522"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DZA"
+              value="16778561"
+              c:type="CLUTTER_KEY_Armenian_DZA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1548"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_E"
+              value="16778551"
+              c:type="CLUTTER_KEY_Armenian_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1528"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_FE"
+              value="16778582"
+              c:type="CLUTTER_KEY_Armenian_FE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1590"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GHAT"
+              value="16778562"
+              c:type="CLUTTER_KEY_Armenian_GHAT">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1550"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GIM"
+              value="16778547"
+              c:type="CLUTTER_KEY_Armenian_GIM">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1520"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HI"
+              value="16778565"
+              c:type="CLUTTER_KEY_Armenian_HI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1556"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HO"
+              value="16778560"
+              c:type="CLUTTER_KEY_Armenian_HO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1546"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_INI"
+              value="16778555"
+              c:type="CLUTTER_KEY_Armenian_INI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1536"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_JE"
+              value="16778571"
+              c:type="CLUTTER_KEY_Armenian_JE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1568"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KE"
+              value="16778580"
+              c:type="CLUTTER_KEY_Armenian_KE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1586"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KEN"
+              value="16778559"
+              c:type="CLUTTER_KEY_Armenian_KEN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1544"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KHE"
+              value="16778557"
+              c:type="CLUTTER_KEY_Armenian_KHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1540"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_LYUN"
+              value="16778556"
+              c:type="CLUTTER_KEY_Armenian_LYUN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1538"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_MEN"
+              value="16778564"
+              c:type="CLUTTER_KEY_Armenian_MEN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1554"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_NU"
+              value="16778566"
+              c:type="CLUTTER_KEY_Armenian_NU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1558"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_O"
+              value="16778581"
+              c:type="CLUTTER_KEY_Armenian_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1588"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PE"
+              value="16778570"
+              c:type="CLUTTER_KEY_Armenian_PE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1566"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PYUR"
+              value="16778579"
+              c:type="CLUTTER_KEY_Armenian_PYUR">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1584"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RA"
+              value="16778572"
+              c:type="CLUTTER_KEY_Armenian_RA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1570"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RE"
+              value="16778576"
+              c:type="CLUTTER_KEY_Armenian_RE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1578"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SE"
+              value="16778573"
+              c:type="CLUTTER_KEY_Armenian_SE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1572"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SHA"
+              value="16778567"
+              c:type="CLUTTER_KEY_Armenian_SHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1560"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TCHE"
+              value="16778563"
+              c:type="CLUTTER_KEY_Armenian_TCHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1552"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TO"
+              value="16778553"
+              c:type="CLUTTER_KEY_Armenian_TO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1532"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSA"
+              value="16778558"
+              c:type="CLUTTER_KEY_Armenian_TSA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1542"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSO"
+              value="16778577"
+              c:type="CLUTTER_KEY_Armenian_TSO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1580"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TYUN"
+              value="16778575"
+              c:type="CLUTTER_KEY_Armenian_TYUN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1576"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VEV"
+              value="16778574"
+              c:type="CLUTTER_KEY_Armenian_VEV">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1574"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VO"
+              value="16778568"
+              c:type="CLUTTER_KEY_Armenian_VO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1562"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VYUN"
+              value="16778578"
+              c:type="CLUTTER_KEY_Armenian_VYUN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1582"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_YECH"
+              value="16778549"
+              c:type="CLUTTER_KEY_Armenian_YECH">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1524"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZA"
+              value="16778550"
+              c:type="CLUTTER_KEY_Armenian_ZA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1526"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZHE"
+              value="16778554"
+              c:type="CLUTTER_KEY_Armenian_ZHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1534"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_accent"
+              value="16778587"
+              c:type="CLUTTER_KEY_Armenian_accent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1512"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_amanak"
+              value="16778588"
+              c:type="CLUTTER_KEY_Armenian_amanak">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1511"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_apostrophe"
+              value="16778586"
+              c:type="CLUTTER_KEY_Armenian_apostrophe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1592"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_at"
+              value="16778600"
+              c:type="CLUTTER_KEY_Armenian_at">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1531"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ayb"
+              value="16778593"
+              c:type="CLUTTER_KEY_Armenian_ayb">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1517"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ben"
+              value="16778594"
+              c:type="CLUTTER_KEY_Armenian_ben">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1519"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_but"
+              value="16778589"
+              c:type="CLUTTER_KEY_Armenian_but">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1507"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_cha"
+              value="16778617"
+              c:type="CLUTTER_KEY_Armenian_cha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1565"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_da"
+              value="16778596"
+              c:type="CLUTTER_KEY_Armenian_da">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1523"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_dza"
+              value="16778609"
+              c:type="CLUTTER_KEY_Armenian_dza">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1549"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_e"
+              value="16778599"
+              c:type="CLUTTER_KEY_Armenian_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1529"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_exclam"
+              value="16778588"
+              c:type="CLUTTER_KEY_Armenian_exclam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1510"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_fe"
+              value="16778630"
+              c:type="CLUTTER_KEY_Armenian_fe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1591"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_full_stop"
+              value="16778633"
+              c:type="CLUTTER_KEY_Armenian_full_stop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1504"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ghat"
+              value="16778610"
+              c:type="CLUTTER_KEY_Armenian_ghat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1551"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_gim"
+              value="16778595"
+              c:type="CLUTTER_KEY_Armenian_gim">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1521"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hi"
+              value="16778613"
+              c:type="CLUTTER_KEY_Armenian_hi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1557"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ho"
+              value="16778608"
+              c:type="CLUTTER_KEY_Armenian_ho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1547"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hyphen"
+              value="16778634"
+              c:type="CLUTTER_KEY_Armenian_hyphen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1508"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ini"
+              value="16778603"
+              c:type="CLUTTER_KEY_Armenian_ini">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1537"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_je"
+              value="16778619"
+              c:type="CLUTTER_KEY_Armenian_je">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1569"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ke"
+              value="16778628"
+              c:type="CLUTTER_KEY_Armenian_ke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1587"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ken"
+              value="16778607"
+              c:type="CLUTTER_KEY_Armenian_ken">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1545"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_khe"
+              value="16778605"
+              c:type="CLUTTER_KEY_Armenian_khe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1541"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ligature_ew"
+              value="16778631"
+              c:type="CLUTTER_KEY_Armenian_ligature_ew">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1503"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_lyun"
+              value="16778604"
+              c:type="CLUTTER_KEY_Armenian_lyun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1539"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_men"
+              value="16778612"
+              c:type="CLUTTER_KEY_Armenian_men">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1555"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_nu"
+              value="16778614"
+              c:type="CLUTTER_KEY_Armenian_nu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1559"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_o"
+              value="16778629"
+              c:type="CLUTTER_KEY_Armenian_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1589"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_paruyk"
+              value="16778590"
+              c:type="CLUTTER_KEY_Armenian_paruyk">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1515"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pe"
+              value="16778618"
+              c:type="CLUTTER_KEY_Armenian_pe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1567"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pyur"
+              value="16778627"
+              c:type="CLUTTER_KEY_Armenian_pyur">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1585"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_question"
+              value="16778590"
+              c:type="CLUTTER_KEY_Armenian_question">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1514"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ra"
+              value="16778620"
+              c:type="CLUTTER_KEY_Armenian_ra">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1571"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_re"
+              value="16778624"
+              c:type="CLUTTER_KEY_Armenian_re">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1579"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_se"
+              value="16778621"
+              c:type="CLUTTER_KEY_Armenian_se">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1573"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_separation_mark"
+              value="16778589"
+              c:type="CLUTTER_KEY_Armenian_separation_mark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1506"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_sha"
+              value="16778615"
+              c:type="CLUTTER_KEY_Armenian_sha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1561"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_shesht"
+              value="16778587"
+              c:type="CLUTTER_KEY_Armenian_shesht">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1513"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tche"
+              value="16778611"
+              c:type="CLUTTER_KEY_Armenian_tche">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1553"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_to"
+              value="16778601"
+              c:type="CLUTTER_KEY_Armenian_to">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1533"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tsa"
+              value="16778606"
+              c:type="CLUTTER_KEY_Armenian_tsa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1543"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tso"
+              value="16778625"
+              c:type="CLUTTER_KEY_Armenian_tso">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1581"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tyun"
+              value="16778623"
+              c:type="CLUTTER_KEY_Armenian_tyun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1577"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_verjaket"
+              value="16778633"
+              c:type="CLUTTER_KEY_Armenian_verjaket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1505"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vev"
+              value="16778622"
+              c:type="CLUTTER_KEY_Armenian_vev">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1575"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vo"
+              value="16778616"
+              c:type="CLUTTER_KEY_Armenian_vo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1563"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vyun"
+              value="16778626"
+              c:type="CLUTTER_KEY_Armenian_vyun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1583"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yech"
+              value="16778597"
+              c:type="CLUTTER_KEY_Armenian_yech">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1525"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yentamna"
+              value="16778634"
+              c:type="CLUTTER_KEY_Armenian_yentamna">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1509"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_za"
+              value="16778598"
+              c:type="CLUTTER_KEY_Armenian_za">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1527"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_zhe"
+              value="16778602"
+              c:type="CLUTTER_KEY_Armenian_zhe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1535"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Atilde" value="195" c:type="CLUTTER_KEY_Atilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="512"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudibleBell_Enable"
+              value="65146"
+              c:type="CLUTTER_KEY_AudibleBell_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="313"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioCycleTrack"
+              value="269025179"
+              c:type="CLUTTER_KEY_AudioCycleTrack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2272"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioForward"
+              value="269025175"
+              c:type="CLUTTER_KEY_AudioForward">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2268"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioLowerVolume"
+              value="269025041"
+              c:type="CLUTTER_KEY_AudioLowerVolume">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2140"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioMedia"
+              value="269025074"
+              c:type="CLUTTER_KEY_AudioMedia">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2173"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioMicMute"
+              value="269025202"
+              c:type="CLUTTER_KEY_AudioMicMute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2289"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioMute"
+              value="269025042"
+              c:type="CLUTTER_KEY_AudioMute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2141"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioNext"
+              value="269025047"
+              c:type="CLUTTER_KEY_AudioNext">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2146"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPause"
+              value="269025073"
+              c:type="CLUTTER_KEY_AudioPause">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2172"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPlay"
+              value="269025044"
+              c:type="CLUTTER_KEY_AudioPlay">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2143"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPrev"
+              value="269025046"
+              c:type="CLUTTER_KEY_AudioPrev">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2145"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRaiseVolume"
+              value="269025043"
+              c:type="CLUTTER_KEY_AudioRaiseVolume">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2142"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRandomPlay"
+              value="269025177"
+              c:type="CLUTTER_KEY_AudioRandomPlay">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2270"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRecord"
+              value="269025052"
+              c:type="CLUTTER_KEY_AudioRecord">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2151"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRepeat"
+              value="269025176"
+              c:type="CLUTTER_KEY_AudioRepeat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2269"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRewind"
+              value="269025086"
+              c:type="CLUTTER_KEY_AudioRewind">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2185"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioStop"
+              value="269025045"
+              c:type="CLUTTER_KEY_AudioStop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2144"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Away" value="269025165" c:type="CLUTTER_KEY_Away">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2258"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_B" value="66" c:type="CLUTTER_KEY_B">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="415"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Babovedot"
+              value="16784898"
+              c:type="CLUTTER_KEY_Babovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="696"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Back" value="269025062" c:type="CLUTTER_KEY_Back">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2161"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BackForward"
+              value="269025087"
+              c:type="CLUTTER_KEY_BackForward">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2186"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BackSpace"
+              value="65288"
+              c:type="CLUTTER_KEY_BackSpace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="35"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Battery"
+              value="269025171"
+              c:type="CLUTTER_KEY_Battery">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2264"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Begin" value="65368" c:type="CLUTTER_KEY_Begin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="80"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Blue" value="269025190" c:type="CLUTTER_KEY_Blue">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2283"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Bluetooth"
+              value="269025172"
+              c:type="CLUTTER_KEY_Bluetooth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2265"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Book" value="269025106" c:type="CLUTTER_KEY_Book">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2205"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BounceKeys_Enable"
+              value="65140"
+              c:type="CLUTTER_KEY_BounceKeys_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="307"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Break" value="65387" c:type="CLUTTER_KEY_Break">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="91"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BrightnessAdjust"
+              value="269025083"
+              c:type="CLUTTER_KEY_BrightnessAdjust">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2182"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_SHORTU"
+              value="1726"
+              c:type="CLUTTER_KEY_Byelorussian_SHORTU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="954"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_shortu"
+              value="1710"
+              c:type="CLUTTER_KEY_Byelorussian_shortu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="931"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C" value="67" c:type="CLUTTER_KEY_C">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="416"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CD" value="269025107" c:type="CLUTTER_KEY_CD">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2206"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CH" value="65186" c:type="CLUTTER_KEY_CH">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="346"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C_H" value="65189" c:type="CLUTTER_KEY_C_H">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="349"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C_h" value="65188" c:type="CLUTTER_KEY_C_h">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="348"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cabovedot" value="709" c:type="CLUTTER_KEY_Cabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="644"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cacute" value="454" c:type="CLUTTER_KEY_Cacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="604"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Calculator"
+              value="269025053"
+              c:type="CLUTTER_KEY_Calculator">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2152"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Calendar"
+              value="269025056"
+              c:type="CLUTTER_KEY_Calendar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2155"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cancel" value="65385" c:type="CLUTTER_KEY_Cancel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="89"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Caps_Lock"
+              value="65509"
+              c:type="CLUTTER_KEY_Caps_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="196"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccaron" value="456" c:type="CLUTTER_KEY_Ccaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="605"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccedilla" value="199" c:type="CLUTTER_KEY_Ccedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="516"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccircumflex"
+              value="710"
+              c:type="CLUTTER_KEY_Ccircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="645"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ch" value="65185" c:type="CLUTTER_KEY_Ch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="345"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Clear" value="65291" c:type="CLUTTER_KEY_Clear">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="38"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ClearGrab"
+              value="269024801"
+              c:type="CLUTTER_KEY_ClearGrab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2303"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Close" value="269025110" c:type="CLUTTER_KEY_Close">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2208"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Codeinput"
+              value="65335"
+              c:type="CLUTTER_KEY_Codeinput">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="46"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ColonSign"
+              value="16785569"
+              c:type="CLUTTER_KEY_ColonSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1743"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Community"
+              value="269025085"
+              c:type="CLUTTER_KEY_Community">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2184"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ContrastAdjust"
+              value="269025058"
+              c:type="CLUTTER_KEY_ContrastAdjust">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2157"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_L"
+              value="65507"
+              c:type="CLUTTER_KEY_Control_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="194"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_R"
+              value="65508"
+              c:type="CLUTTER_KEY_Control_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="195"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Copy" value="269025111" c:type="CLUTTER_KEY_Copy">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2209"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CruzeiroSign"
+              value="16785570"
+              c:type="CLUTTER_KEY_CruzeiroSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1744"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cut" value="269025112" c:type="CLUTTER_KEY_Cut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2210"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CycleAngle"
+              value="269025180"
+              c:type="CLUTTER_KEY_CycleAngle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2273"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_A"
+              value="1761"
+              c:type="CLUTTER_KEY_Cyrillic_A">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="990"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_BE"
+              value="1762"
+              c:type="CLUTTER_KEY_Cyrillic_BE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="991"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE"
+              value="1790"
+              c:type="CLUTTER_KEY_Cyrillic_CHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1019"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_descender"
+              value="16778422"
+              c:type="CLUTTER_KEY_Cyrillic_CHE_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="898"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_vertstroke"
+              value="16778424"
+              c:type="CLUTTER_KEY_Cyrillic_CHE_vertstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="900"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DE"
+              value="1764"
+              c:type="CLUTTER_KEY_Cyrillic_DE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="993"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DZHE"
+              value="1727"
+              c:type="CLUTTER_KEY_Cyrillic_DZHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="955"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_E"
+              value="1788"
+              c:type="CLUTTER_KEY_Cyrillic_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1017"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EF"
+              value="1766"
+              c:type="CLUTTER_KEY_Cyrillic_EF">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="995"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EL"
+              value="1772"
+              c:type="CLUTTER_KEY_Cyrillic_EL">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1001"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EM"
+              value="1773"
+              c:type="CLUTTER_KEY_Cyrillic_EM">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1002"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN"
+              value="1774"
+              c:type="CLUTTER_KEY_Cyrillic_EN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1003"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN_descender"
+              value="16778402"
+              c:type="CLUTTER_KEY_Cyrillic_EN_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="890"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ER"
+              value="1778"
+              c:type="CLUTTER_KEY_Cyrillic_ER">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1007"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ES"
+              value="1779"
+              c:type="CLUTTER_KEY_Cyrillic_ES">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1008"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE"
+              value="1767"
+              c:type="CLUTTER_KEY_Cyrillic_GHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="996"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE_bar"
+              value="16778386"
+              c:type="CLUTTER_KEY_Cyrillic_GHE_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="882"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA"
+              value="1768"
+              c:type="CLUTTER_KEY_Cyrillic_HA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="997"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HARDSIGN"
+              value="1791"
+              c:type="CLUTTER_KEY_Cyrillic_HARDSIGN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1020"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA_descender"
+              value="16778418"
+              c:type="CLUTTER_KEY_Cyrillic_HA_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="896"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I"
+              value="1769"
+              c:type="CLUTTER_KEY_Cyrillic_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="998"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IE"
+              value="1765"
+              c:type="CLUTTER_KEY_Cyrillic_IE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="994"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IO"
+              value="1715"
+              c:type="CLUTTER_KEY_Cyrillic_IO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="937"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I_macron"
+              value="16778466"
+              c:type="CLUTTER_KEY_Cyrillic_I_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="906"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_JE"
+              value="1720"
+              c:type="CLUTTER_KEY_Cyrillic_JE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="945"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA"
+              value="1771"
+              c:type="CLUTTER_KEY_Cyrillic_KA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1000"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_descender"
+              value="16778394"
+              c:type="CLUTTER_KEY_Cyrillic_KA_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="886"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_vertstroke"
+              value="16778396"
+              c:type="CLUTTER_KEY_Cyrillic_KA_vertstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="888"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_LJE"
+              value="1721"
+              c:type="CLUTTER_KEY_Cyrillic_LJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="947"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_NJE"
+              value="1722"
+              c:type="CLUTTER_KEY_Cyrillic_NJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="949"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O"
+              value="1775"
+              c:type="CLUTTER_KEY_Cyrillic_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1004"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O_bar"
+              value="16778472"
+              c:type="CLUTTER_KEY_Cyrillic_O_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="908"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_PE"
+              value="1776"
+              c:type="CLUTTER_KEY_Cyrillic_PE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1005"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SCHWA"
+              value="16778456"
+              c:type="CLUTTER_KEY_Cyrillic_SCHWA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="904"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHA"
+              value="1787"
+              c:type="CLUTTER_KEY_Cyrillic_SHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1016"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHCHA"
+              value="1789"
+              c:type="CLUTTER_KEY_Cyrillic_SHCHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1018"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHHA"
+              value="16778426"
+              c:type="CLUTTER_KEY_Cyrillic_SHHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="902"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHORTI"
+              value="1770"
+              c:type="CLUTTER_KEY_Cyrillic_SHORTI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="999"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SOFTSIGN"
+              value="1784"
+              c:type="CLUTTER_KEY_Cyrillic_SOFTSIGN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1013"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TE"
+              value="1780"
+              c:type="CLUTTER_KEY_Cyrillic_TE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1009"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TSE"
+              value="1763"
+              c:type="CLUTTER_KEY_Cyrillic_TSE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="992"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U"
+              value="1781"
+              c:type="CLUTTER_KEY_Cyrillic_U">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1010"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_macron"
+              value="16778478"
+              c:type="CLUTTER_KEY_Cyrillic_U_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="910"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight"
+              value="16778414"
+              c:type="CLUTTER_KEY_Cyrillic_U_straight">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="892"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight_bar"
+              value="16778416"
+              c:type="CLUTTER_KEY_Cyrillic_U_straight_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="894"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_VE"
+              value="1783"
+              c:type="CLUTTER_KEY_Cyrillic_VE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1012"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YA"
+              value="1777"
+              c:type="CLUTTER_KEY_Cyrillic_YA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1006"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YERU"
+              value="1785"
+              c:type="CLUTTER_KEY_Cyrillic_YERU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1014"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YU"
+              value="1760"
+              c:type="CLUTTER_KEY_Cyrillic_YU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="989"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZE"
+              value="1786"
+              c:type="CLUTTER_KEY_Cyrillic_ZE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1015"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE"
+              value="1782"
+              c:type="CLUTTER_KEY_Cyrillic_ZHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1011"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE_descender"
+              value="16778390"
+              c:type="CLUTTER_KEY_Cyrillic_ZHE_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="884"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_a"
+              value="1729"
+              c:type="CLUTTER_KEY_Cyrillic_a">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="958"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_be"
+              value="1730"
+              c:type="CLUTTER_KEY_Cyrillic_be">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="959"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che"
+              value="1758"
+              c:type="CLUTTER_KEY_Cyrillic_che">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="987"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_descender"
+              value="16778423"
+              c:type="CLUTTER_KEY_Cyrillic_che_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="899"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_vertstroke"
+              value="16778425"
+              c:type="CLUTTER_KEY_Cyrillic_che_vertstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="901"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_de"
+              value="1732"
+              c:type="CLUTTER_KEY_Cyrillic_de">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="961"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_dzhe"
+              value="1711"
+              c:type="CLUTTER_KEY_Cyrillic_dzhe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="932"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_e"
+              value="1756"
+              c:type="CLUTTER_KEY_Cyrillic_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="985"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ef"
+              value="1734"
+              c:type="CLUTTER_KEY_Cyrillic_ef">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="963"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_el"
+              value="1740"
+              c:type="CLUTTER_KEY_Cyrillic_el">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="969"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_em"
+              value="1741"
+              c:type="CLUTTER_KEY_Cyrillic_em">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="970"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en"
+              value="1742"
+              c:type="CLUTTER_KEY_Cyrillic_en">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="971"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en_descender"
+              value="16778403"
+              c:type="CLUTTER_KEY_Cyrillic_en_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="891"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_er"
+              value="1746"
+              c:type="CLUTTER_KEY_Cyrillic_er">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="975"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_es"
+              value="1747"
+              c:type="CLUTTER_KEY_Cyrillic_es">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="976"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe"
+              value="1735"
+              c:type="CLUTTER_KEY_Cyrillic_ghe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="964"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe_bar"
+              value="16778387"
+              c:type="CLUTTER_KEY_Cyrillic_ghe_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="883"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha"
+              value="1736"
+              c:type="CLUTTER_KEY_Cyrillic_ha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="965"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha_descender"
+              value="16778419"
+              c:type="CLUTTER_KEY_Cyrillic_ha_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="897"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_hardsign"
+              value="1759"
+              c:type="CLUTTER_KEY_Cyrillic_hardsign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="988"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i"
+              value="1737"
+              c:type="CLUTTER_KEY_Cyrillic_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="966"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i_macron"
+              value="16778467"
+              c:type="CLUTTER_KEY_Cyrillic_i_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="907"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ie"
+              value="1733"
+              c:type="CLUTTER_KEY_Cyrillic_ie">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="962"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_io"
+              value="1699"
+              c:type="CLUTTER_KEY_Cyrillic_io">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="914"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_je"
+              value="1704"
+              c:type="CLUTTER_KEY_Cyrillic_je">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="922"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka"
+              value="1739"
+              c:type="CLUTTER_KEY_Cyrillic_ka">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="968"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_descender"
+              value="16778395"
+              c:type="CLUTTER_KEY_Cyrillic_ka_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="887"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_vertstroke"
+              value="16778397"
+              c:type="CLUTTER_KEY_Cyrillic_ka_vertstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="889"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_lje"
+              value="1705"
+              c:type="CLUTTER_KEY_Cyrillic_lje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="924"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_nje"
+              value="1706"
+              c:type="CLUTTER_KEY_Cyrillic_nje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="926"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o"
+              value="1743"
+              c:type="CLUTTER_KEY_Cyrillic_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="972"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o_bar"
+              value="16778473"
+              c:type="CLUTTER_KEY_Cyrillic_o_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="909"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_pe"
+              value="1744"
+              c:type="CLUTTER_KEY_Cyrillic_pe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="973"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_schwa"
+              value="16778457"
+              c:type="CLUTTER_KEY_Cyrillic_schwa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="905"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_sha"
+              value="1755"
+              c:type="CLUTTER_KEY_Cyrillic_sha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="984"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shcha"
+              value="1757"
+              c:type="CLUTTER_KEY_Cyrillic_shcha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="986"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shha"
+              value="16778427"
+              c:type="CLUTTER_KEY_Cyrillic_shha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="903"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shorti"
+              value="1738"
+              c:type="CLUTTER_KEY_Cyrillic_shorti">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="967"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_softsign"
+              value="1752"
+              c:type="CLUTTER_KEY_Cyrillic_softsign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="981"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_te"
+              value="1748"
+              c:type="CLUTTER_KEY_Cyrillic_te">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="977"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_tse"
+              value="1731"
+              c:type="CLUTTER_KEY_Cyrillic_tse">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="960"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u"
+              value="1749"
+              c:type="CLUTTER_KEY_Cyrillic_u">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="978"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_macron"
+              value="16778479"
+              c:type="CLUTTER_KEY_Cyrillic_u_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="911"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight"
+              value="16778415"
+              c:type="CLUTTER_KEY_Cyrillic_u_straight">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="893"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight_bar"
+              value="16778417"
+              c:type="CLUTTER_KEY_Cyrillic_u_straight_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="895"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ve"
+              value="1751"
+              c:type="CLUTTER_KEY_Cyrillic_ve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="980"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ya"
+              value="1745"
+              c:type="CLUTTER_KEY_Cyrillic_ya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="974"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yeru"
+              value="1753"
+              c:type="CLUTTER_KEY_Cyrillic_yeru">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="982"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yu"
+              value="1728"
+              c:type="CLUTTER_KEY_Cyrillic_yu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="957"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ze"
+              value="1754"
+              c:type="CLUTTER_KEY_Cyrillic_ze">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="983"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe"
+              value="1750"
+              c:type="CLUTTER_KEY_Cyrillic_zhe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="979"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe_descender"
+              value="16778391"
+              c:type="CLUTTER_KEY_Cyrillic_zhe_descender">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="885"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_D" value="68" c:type="CLUTTER_KEY_D">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="417"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_DOS" value="269025114" c:type="CLUTTER_KEY_DOS">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2212"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dabovedot"
+              value="16784906"
+              c:type="CLUTTER_KEY_Dabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="698"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dcaron" value="463" c:type="CLUTTER_KEY_Dcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="608"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Delete" value="65535" c:type="CLUTTER_KEY_Delete">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="44"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Display"
+              value="269025113"
+              c:type="CLUTTER_KEY_Display">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2211"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Documents"
+              value="269025115"
+              c:type="CLUTTER_KEY_Documents">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2213"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_DongSign"
+              value="16785579"
+              c:type="CLUTTER_KEY_DongSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1753"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Down" value="65364" c:type="CLUTTER_KEY_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="74"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dstroke" value="464" c:type="CLUTTER_KEY_Dstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="609"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_E" value="69" c:type="CLUTTER_KEY_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="418"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ENG" value="957" c:type="CLUTTER_KEY_ENG">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="670"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ETH" value="208" c:type="CLUTTER_KEY_ETH">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="525"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EZH" value="16777655" c:type="CLUTTER_KEY_EZH">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1646"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eabovedot" value="972" c:type="CLUTTER_KEY_Eabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="674"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eacute" value="201" c:type="CLUTTER_KEY_Eacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="518"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ebelowdot"
+              value="16785080"
+              c:type="CLUTTER_KEY_Ebelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1674"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecaron" value="460" c:type="CLUTTER_KEY_Ecaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="607"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflex"
+              value="202"
+              c:type="CLUTTER_KEY_Ecircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="519"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexacute"
+              value="16785086"
+              c:type="CLUTTER_KEY_Ecircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1680"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexbelowdot"
+              value="16785094"
+              c:type="CLUTTER_KEY_Ecircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1688"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexgrave"
+              value="16785088"
+              c:type="CLUTTER_KEY_Ecircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1682"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexhook"
+              value="16785090"
+              c:type="CLUTTER_KEY_Ecircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1684"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflextilde"
+              value="16785092"
+              c:type="CLUTTER_KEY_Ecircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1686"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EcuSign" value="16785568" c:type="CLUTTER_KEY_EcuSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1742"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ediaeresis"
+              value="203"
+              c:type="CLUTTER_KEY_Ediaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="520"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Egrave" value="200" c:type="CLUTTER_KEY_Egrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="517"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ehook" value="16785082" c:type="CLUTTER_KEY_Ehook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1676"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_Shift"
+              value="65327"
+              c:type="CLUTTER_KEY_Eisu_Shift">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="65"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_toggle"
+              value="65328"
+              c:type="CLUTTER_KEY_Eisu_toggle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="66"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eject" value="269025068" c:type="CLUTTER_KEY_Eject">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2167"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Emacron" value="938" c:type="CLUTTER_KEY_Emacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="661"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_End" value="65367" c:type="CLUTTER_KEY_End">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="79"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eogonek" value="458" c:type="CLUTTER_KEY_Eogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="606"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Escape" value="65307" c:type="CLUTTER_KEY_Escape">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="43"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eth" value="208" c:type="CLUTTER_KEY_Eth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="526"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Etilde" value="16785084" c:type="CLUTTER_KEY_Etilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1678"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EuroSign" value="8364" c:type="CLUTTER_KEY_EuroSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1754"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Excel" value="269025116" c:type="CLUTTER_KEY_Excel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2214"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Execute" value="65378" c:type="CLUTTER_KEY_Execute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="83"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Explorer"
+              value="269025117"
+              c:type="CLUTTER_KEY_Explorer">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2215"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F" value="70" c:type="CLUTTER_KEY_F">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="419"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F1" value="65470" c:type="CLUTTER_KEY_F1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="132"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F10" value="65479" c:type="CLUTTER_KEY_F10">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="141"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F11" value="65480" c:type="CLUTTER_KEY_F11">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="142"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F12" value="65481" c:type="CLUTTER_KEY_F12">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="144"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F13" value="65482" c:type="CLUTTER_KEY_F13">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="146"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F14" value="65483" c:type="CLUTTER_KEY_F14">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="148"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F15" value="65484" c:type="CLUTTER_KEY_F15">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="150"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F16" value="65485" c:type="CLUTTER_KEY_F16">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="152"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F17" value="65486" c:type="CLUTTER_KEY_F17">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="154"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F18" value="65487" c:type="CLUTTER_KEY_F18">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="156"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F19" value="65488" c:type="CLUTTER_KEY_F19">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="158"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F2" value="65471" c:type="CLUTTER_KEY_F2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="133"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F20" value="65489" c:type="CLUTTER_KEY_F20">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="160"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F21" value="65490" c:type="CLUTTER_KEY_F21">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="162"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F22" value="65491" c:type="CLUTTER_KEY_F22">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="164"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F23" value="65492" c:type="CLUTTER_KEY_F23">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="166"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F24" value="65493" c:type="CLUTTER_KEY_F24">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="168"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F25" value="65494" c:type="CLUTTER_KEY_F25">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="170"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F26" value="65495" c:type="CLUTTER_KEY_F26">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="172"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F27" value="65496" c:type="CLUTTER_KEY_F27">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="174"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F28" value="65497" c:type="CLUTTER_KEY_F28">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="176"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F29" value="65498" c:type="CLUTTER_KEY_F29">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="178"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F3" value="65472" c:type="CLUTTER_KEY_F3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="134"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F30" value="65499" c:type="CLUTTER_KEY_F30">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="180"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F31" value="65500" c:type="CLUTTER_KEY_F31">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="182"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F32" value="65501" c:type="CLUTTER_KEY_F32">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="184"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F33" value="65502" c:type="CLUTTER_KEY_F33">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="186"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F34" value="65503" c:type="CLUTTER_KEY_F34">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="188"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F35" value="65504" c:type="CLUTTER_KEY_F35">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="190"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F4" value="65473" c:type="CLUTTER_KEY_F4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="135"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F5" value="65474" c:type="CLUTTER_KEY_F5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="136"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F6" value="65475" c:type="CLUTTER_KEY_F6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="137"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F7" value="65476" c:type="CLUTTER_KEY_F7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="138"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F8" value="65477" c:type="CLUTTER_KEY_F8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="139"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F9" value="65478" c:type="CLUTTER_KEY_F9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="140"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FFrancSign"
+              value="16785571"
+              c:type="CLUTTER_KEY_FFrancSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1745"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Fabovedot"
+              value="16784926"
+              c:type="CLUTTER_KEY_Fabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="700"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_0" value="16778992" c:type="CLUTTER_KEY_Farsi_0">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="791"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_1" value="16778993" c:type="CLUTTER_KEY_Farsi_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="792"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_2" value="16778994" c:type="CLUTTER_KEY_Farsi_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="793"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_3" value="16778995" c:type="CLUTTER_KEY_Farsi_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="794"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_4" value="16778996" c:type="CLUTTER_KEY_Farsi_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="795"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_5" value="16778997" c:type="CLUTTER_KEY_Farsi_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="796"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_6" value="16778998" c:type="CLUTTER_KEY_Farsi_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="797"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_7" value="16778999" c:type="CLUTTER_KEY_Farsi_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="798"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_8" value="16779000" c:type="CLUTTER_KEY_Farsi_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="799"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_9" value="16779001" c:type="CLUTTER_KEY_Farsi_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="800"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_yeh"
+              value="16778956"
+              c:type="CLUTTER_KEY_Farsi_yeh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="877"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Favorites"
+              value="269025072"
+              c:type="CLUTTER_KEY_Favorites">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2171"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Finance"
+              value="269025084"
+              c:type="CLUTTER_KEY_Finance">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2183"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Find" value="65384" c:type="CLUTTER_KEY_Find">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="88"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_First_Virtual_Screen"
+              value="65232"
+              c:type="CLUTTER_KEY_First_Virtual_Screen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="298"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Forward"
+              value="269025063"
+              c:type="CLUTTER_KEY_Forward">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2162"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FrameBack"
+              value="269025181"
+              c:type="CLUTTER_KEY_FrameBack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2274"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FrameForward"
+              value="269025182"
+              c:type="CLUTTER_KEY_FrameForward">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2275"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_G" value="71" c:type="CLUTTER_KEY_G">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="420"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gabovedot" value="725" c:type="CLUTTER_KEY_Gabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="646"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Game" value="269025118" c:type="CLUTTER_KEY_Game">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2216"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gbreve" value="683" c:type="CLUTTER_KEY_Gbreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="637"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcaron" value="16777702" c:type="CLUTTER_KEY_Gcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1635"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcedilla" value="939" c:type="CLUTTER_KEY_Gcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="662"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcircumflex"
+              value="728"
+              c:type="CLUTTER_KEY_Gcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="647"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_an"
+              value="16781520"
+              c:type="CLUTTER_KEY_Georgian_an">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1593"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ban"
+              value="16781521"
+              c:type="CLUTTER_KEY_Georgian_ban">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1594"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_can"
+              value="16781546"
+              c:type="CLUTTER_KEY_Georgian_can">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1619"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_char"
+              value="16781549"
+              c:type="CLUTTER_KEY_Georgian_char">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1622"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_chin"
+              value="16781545"
+              c:type="CLUTTER_KEY_Georgian_chin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1618"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_cil"
+              value="16781548"
+              c:type="CLUTTER_KEY_Georgian_cil">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1621"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_don"
+              value="16781523"
+              c:type="CLUTTER_KEY_Georgian_don">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1596"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_en"
+              value="16781524"
+              c:type="CLUTTER_KEY_Georgian_en">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1597"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_fi"
+              value="16781558"
+              c:type="CLUTTER_KEY_Georgian_fi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1631"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_gan"
+              value="16781522"
+              c:type="CLUTTER_KEY_Georgian_gan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1595"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ghan"
+              value="16781542"
+              c:type="CLUTTER_KEY_Georgian_ghan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1615"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hae"
+              value="16781552"
+              c:type="CLUTTER_KEY_Georgian_hae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1625"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_har"
+              value="16781556"
+              c:type="CLUTTER_KEY_Georgian_har">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1629"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_he"
+              value="16781553"
+              c:type="CLUTTER_KEY_Georgian_he">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1626"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hie"
+              value="16781554"
+              c:type="CLUTTER_KEY_Georgian_hie">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1627"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hoe"
+              value="16781557"
+              c:type="CLUTTER_KEY_Georgian_hoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1630"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_in"
+              value="16781528"
+              c:type="CLUTTER_KEY_Georgian_in">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1601"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jhan"
+              value="16781551"
+              c:type="CLUTTER_KEY_Georgian_jhan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1624"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jil"
+              value="16781547"
+              c:type="CLUTTER_KEY_Georgian_jil">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1620"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_kan"
+              value="16781529"
+              c:type="CLUTTER_KEY_Georgian_kan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1602"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_khar"
+              value="16781541"
+              c:type="CLUTTER_KEY_Georgian_khar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1614"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_las"
+              value="16781530"
+              c:type="CLUTTER_KEY_Georgian_las">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1603"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_man"
+              value="16781531"
+              c:type="CLUTTER_KEY_Georgian_man">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1604"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_nar"
+              value="16781532"
+              c:type="CLUTTER_KEY_Georgian_nar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1605"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_on"
+              value="16781533"
+              c:type="CLUTTER_KEY_Georgian_on">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1606"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_par"
+              value="16781534"
+              c:type="CLUTTER_KEY_Georgian_par">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1607"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_phar"
+              value="16781540"
+              c:type="CLUTTER_KEY_Georgian_phar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1613"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_qar"
+              value="16781543"
+              c:type="CLUTTER_KEY_Georgian_qar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1616"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_rae"
+              value="16781536"
+              c:type="CLUTTER_KEY_Georgian_rae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1609"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_san"
+              value="16781537"
+              c:type="CLUTTER_KEY_Georgian_san">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1610"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_shin"
+              value="16781544"
+              c:type="CLUTTER_KEY_Georgian_shin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1617"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tan"
+              value="16781527"
+              c:type="CLUTTER_KEY_Georgian_tan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1600"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tar"
+              value="16781538"
+              c:type="CLUTTER_KEY_Georgian_tar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1611"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_un"
+              value="16781539"
+              c:type="CLUTTER_KEY_Georgian_un">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1612"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_vin"
+              value="16781525"
+              c:type="CLUTTER_KEY_Georgian_vin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1598"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_we"
+              value="16781555"
+              c:type="CLUTTER_KEY_Georgian_we">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1628"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_xan"
+              value="16781550"
+              c:type="CLUTTER_KEY_Georgian_xan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1623"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zen"
+              value="16781526"
+              c:type="CLUTTER_KEY_Georgian_zen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1599"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zhar"
+              value="16781535"
+              c:type="CLUTTER_KEY_Georgian_zhar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1608"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Go" value="269025119" c:type="CLUTTER_KEY_Go">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2217"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHA"
+              value="1985"
+              c:type="CLUTTER_KEY_Greek_ALPHA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1044"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHAaccent"
+              value="1953"
+              c:type="CLUTTER_KEY_Greek_ALPHAaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1021"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_BETA"
+              value="1986"
+              c:type="CLUTTER_KEY_Greek_BETA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1045"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_CHI" value="2007" c:type="CLUTTER_KEY_Greek_CHI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1066"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_DELTA"
+              value="1988"
+              c:type="CLUTTER_KEY_Greek_DELTA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1047"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILON"
+              value="1989"
+              c:type="CLUTTER_KEY_Greek_EPSILON">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1048"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILONaccent"
+              value="1954"
+              c:type="CLUTTER_KEY_Greek_EPSILONaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1022"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETA" value="1991" c:type="CLUTTER_KEY_Greek_ETA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1050"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETAaccent"
+              value="1955"
+              c:type="CLUTTER_KEY_Greek_ETAaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1023"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_GAMMA"
+              value="1987"
+              c:type="CLUTTER_KEY_Greek_GAMMA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1046"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTA"
+              value="1993"
+              c:type="CLUTTER_KEY_Greek_IOTA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1052"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAaccent"
+              value="1956"
+              c:type="CLUTTER_KEY_Greek_IOTAaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1024"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdiaeresis"
+              value="1957"
+              c:type="CLUTTER_KEY_Greek_IOTAdiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1026"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdieresis"
+              value="1957"
+              c:type="CLUTTER_KEY_Greek_IOTAdieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1025"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_KAPPA"
+              value="1994"
+              c:type="CLUTTER_KEY_Greek_KAPPA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1053"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMBDA"
+              value="1995"
+              c:type="CLUTTER_KEY_Greek_LAMBDA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1055"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMDA"
+              value="1995"
+              c:type="CLUTTER_KEY_Greek_LAMDA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1054"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_MU" value="1996" c:type="CLUTTER_KEY_Greek_MU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1056"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_NU" value="1997" c:type="CLUTTER_KEY_Greek_NU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1057"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGA"
+              value="2009"
+              c:type="CLUTTER_KEY_Greek_OMEGA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1068"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGAaccent"
+              value="1963"
+              c:type="CLUTTER_KEY_Greek_OMEGAaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1030"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRON"
+              value="1999"
+              c:type="CLUTTER_KEY_Greek_OMICRON">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1059"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRONaccent"
+              value="1959"
+              c:type="CLUTTER_KEY_Greek_OMICRONaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1027"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PHI" value="2006" c:type="CLUTTER_KEY_Greek_PHI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1065"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PI" value="2000" c:type="CLUTTER_KEY_Greek_PI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1060"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PSI" value="2008" c:type="CLUTTER_KEY_Greek_PSI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1067"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_RHO" value="2001" c:type="CLUTTER_KEY_Greek_RHO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1061"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_SIGMA"
+              value="2002"
+              c:type="CLUTTER_KEY_Greek_SIGMA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1062"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_TAU" value="2004" c:type="CLUTTER_KEY_Greek_TAU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1063"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_THETA"
+              value="1992"
+              c:type="CLUTTER_KEY_Greek_THETA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1051"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILON"
+              value="2005"
+              c:type="CLUTTER_KEY_Greek_UPSILON">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1064"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONaccent"
+              value="1960"
+              c:type="CLUTTER_KEY_Greek_UPSILONaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1028"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONdieresis"
+              value="1961"
+              c:type="CLUTTER_KEY_Greek_UPSILONdieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1029"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_XI" value="1998" c:type="CLUTTER_KEY_Greek_XI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1058"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ZETA"
+              value="1990"
+              c:type="CLUTTER_KEY_Greek_ZETA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1049"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_accentdieresis"
+              value="1966"
+              c:type="CLUTTER_KEY_Greek_accentdieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1031"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alpha"
+              value="2017"
+              c:type="CLUTTER_KEY_Greek_alpha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1069"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alphaaccent"
+              value="1969"
+              c:type="CLUTTER_KEY_Greek_alphaaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1033"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_beta"
+              value="2018"
+              c:type="CLUTTER_KEY_Greek_beta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1070"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_chi" value="2039" c:type="CLUTTER_KEY_Greek_chi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1092"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_delta"
+              value="2020"
+              c:type="CLUTTER_KEY_Greek_delta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1072"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilon"
+              value="2021"
+              c:type="CLUTTER_KEY_Greek_epsilon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1073"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilonaccent"
+              value="1970"
+              c:type="CLUTTER_KEY_Greek_epsilonaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1034"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_eta" value="2023" c:type="CLUTTER_KEY_Greek_eta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1075"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_etaaccent"
+              value="1971"
+              c:type="CLUTTER_KEY_Greek_etaaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1035"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_finalsmallsigma"
+              value="2035"
+              c:type="CLUTTER_KEY_Greek_finalsmallsigma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1088"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_gamma"
+              value="2019"
+              c:type="CLUTTER_KEY_Greek_gamma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1071"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_horizbar"
+              value="1967"
+              c:type="CLUTTER_KEY_Greek_horizbar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1032"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iota"
+              value="2025"
+              c:type="CLUTTER_KEY_Greek_iota">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1077"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccent"
+              value="1972"
+              c:type="CLUTTER_KEY_Greek_iotaaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1036"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccentdieresis"
+              value="1974"
+              c:type="CLUTTER_KEY_Greek_iotaaccentdieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1038"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotadieresis"
+              value="1973"
+              c:type="CLUTTER_KEY_Greek_iotadieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1037"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_kappa"
+              value="2026"
+              c:type="CLUTTER_KEY_Greek_kappa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1078"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lambda"
+              value="2027"
+              c:type="CLUTTER_KEY_Greek_lambda">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1080"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lamda"
+              value="2027"
+              c:type="CLUTTER_KEY_Greek_lamda">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1079"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_mu" value="2028" c:type="CLUTTER_KEY_Greek_mu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1081"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_nu" value="2029" c:type="CLUTTER_KEY_Greek_nu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1082"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omega"
+              value="2041"
+              c:type="CLUTTER_KEY_Greek_omega">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1094"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omegaaccent"
+              value="1979"
+              c:type="CLUTTER_KEY_Greek_omegaaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1043"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicron"
+              value="2031"
+              c:type="CLUTTER_KEY_Greek_omicron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1084"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicronaccent"
+              value="1975"
+              c:type="CLUTTER_KEY_Greek_omicronaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1039"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_phi" value="2038" c:type="CLUTTER_KEY_Greek_phi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1091"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_pi" value="2032" c:type="CLUTTER_KEY_Greek_pi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1085"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_psi" value="2040" c:type="CLUTTER_KEY_Greek_psi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1093"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_rho" value="2033" c:type="CLUTTER_KEY_Greek_rho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1086"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_sigma"
+              value="2034"
+              c:type="CLUTTER_KEY_Greek_sigma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1087"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_Greek_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1095"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_tau" value="2036" c:type="CLUTTER_KEY_Greek_tau">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1089"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_theta"
+              value="2024"
+              c:type="CLUTTER_KEY_Greek_theta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1076"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilon"
+              value="2037"
+              c:type="CLUTTER_KEY_Greek_upsilon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1090"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccent"
+              value="1976"
+              c:type="CLUTTER_KEY_Greek_upsilonaccent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1040"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccentdieresis"
+              value="1978"
+              c:type="CLUTTER_KEY_Greek_upsilonaccentdieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1042"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilondieresis"
+              value="1977"
+              c:type="CLUTTER_KEY_Greek_upsilondieresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1041"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_xi" value="2030" c:type="CLUTTER_KEY_Greek_xi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1083"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_zeta"
+              value="2022"
+              c:type="CLUTTER_KEY_Greek_zeta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1074"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Green" value="269025188" c:type="CLUTTER_KEY_Green">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2281"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_H" value="72" c:type="CLUTTER_KEY_H">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="421"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul" value="65329" c:type="CLUTTER_KEY_Hangul">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1396"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_A" value="3775" c:type="CLUTTER_KEY_Hangul_A">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1442"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AE" value="3776" c:type="CLUTTER_KEY_Hangul_AE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1443"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeA"
+              value="3830"
+              c:type="CLUTTER_KEY_Hangul_AraeA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1497"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeAE"
+              value="3831"
+              c:type="CLUTTER_KEY_Hangul_AraeAE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1498"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Banja"
+              value="65337"
+              c:type="CLUTTER_KEY_Hangul_Banja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1404"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Cieuc"
+              value="3770"
+              c:type="CLUTTER_KEY_Hangul_Cieuc">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1437"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Codeinput"
+              value="65335"
+              c:type="CLUTTER_KEY_Hangul_Codeinput">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1402"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Dikeud"
+              value="3751"
+              c:type="CLUTTER_KEY_Hangul_Dikeud">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1418"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_E" value="3780" c:type="CLUTTER_KEY_Hangul_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1447"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EO" value="3779" c:type="CLUTTER_KEY_Hangul_EO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1446"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EU" value="3793" c:type="CLUTTER_KEY_Hangul_EU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1460"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_End"
+              value="65331"
+              c:type="CLUTTER_KEY_Hangul_End">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1398"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hanja"
+              value="65332"
+              c:type="CLUTTER_KEY_Hangul_Hanja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1399"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hieuh"
+              value="3774"
+              c:type="CLUTTER_KEY_Hangul_Hieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1441"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_I" value="3795" c:type="CLUTTER_KEY_Hangul_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1462"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Ieung"
+              value="3767"
+              c:type="CLUTTER_KEY_Hangul_Ieung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1434"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Cieuc"
+              value="3818"
+              c:type="CLUTTER_KEY_Hangul_J_Cieuc">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1485"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Dikeud"
+              value="3802"
+              c:type="CLUTTER_KEY_Hangul_J_Dikeud">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1469"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Hieuh"
+              value="3822"
+              c:type="CLUTTER_KEY_Hangul_J_Hieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1489"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Ieung"
+              value="3816"
+              c:type="CLUTTER_KEY_Hangul_J_Ieung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1483"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Jieuj"
+              value="3817"
+              c:type="CLUTTER_KEY_Hangul_J_Jieuj">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1484"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Khieuq"
+              value="3819"
+              c:type="CLUTTER_KEY_Hangul_J_Khieuq">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1486"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Kiyeog"
+              value="3796"
+              c:type="CLUTTER_KEY_Hangul_J_Kiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1463"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KiyeogSios"
+              value="3798"
+              c:type="CLUTTER_KEY_Hangul_J_KiyeogSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1465"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KkogjiDalrinIeung"
+              value="3833"
+              c:type="CLUTTER_KEY_Hangul_J_KkogjiDalrinIeung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1500"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Mieum"
+              value="3811"
+              c:type="CLUTTER_KEY_Hangul_J_Mieum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1478"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Nieun"
+              value="3799"
+              c:type="CLUTTER_KEY_Hangul_J_Nieun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1466"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunHieuh"
+              value="3801"
+              c:type="CLUTTER_KEY_Hangul_J_NieunHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1468"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunJieuj"
+              value="3800"
+              c:type="CLUTTER_KEY_Hangul_J_NieunJieuj">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1467"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PanSios"
+              value="3832"
+              c:type="CLUTTER_KEY_Hangul_J_PanSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1499"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Phieuf"
+              value="3821"
+              c:type="CLUTTER_KEY_Hangul_J_Phieuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1488"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Pieub"
+              value="3812"
+              c:type="CLUTTER_KEY_Hangul_J_Pieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1479"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PieubSios"
+              value="3813"
+              c:type="CLUTTER_KEY_Hangul_J_PieubSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1480"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Rieul"
+              value="3803"
+              c:type="CLUTTER_KEY_Hangul_J_Rieul">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1470"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulHieuh"
+              value="3810"
+              c:type="CLUTTER_KEY_Hangul_J_RieulHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1477"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulKiyeog"
+              value="3804"
+              c:type="CLUTTER_KEY_Hangul_J_RieulKiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1471"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulMieum"
+              value="3805"
+              c:type="CLUTTER_KEY_Hangul_J_RieulMieum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1472"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPhieuf"
+              value="3809"
+              c:type="CLUTTER_KEY_Hangul_J_RieulPhieuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1476"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPieub"
+              value="3806"
+              c:type="CLUTTER_KEY_Hangul_J_RieulPieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1473"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulSios"
+              value="3807"
+              c:type="CLUTTER_KEY_Hangul_J_RieulSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1474"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulTieut"
+              value="3808"
+              c:type="CLUTTER_KEY_Hangul_J_RieulTieut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1475"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Sios"
+              value="3814"
+              c:type="CLUTTER_KEY_Hangul_J_Sios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1481"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangKiyeog"
+              value="3797"
+              c:type="CLUTTER_KEY_Hangul_J_SsangKiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1464"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangSios"
+              value="3815"
+              c:type="CLUTTER_KEY_Hangul_J_SsangSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1482"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Tieut"
+              value="3820"
+              c:type="CLUTTER_KEY_Hangul_J_Tieut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1487"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_YeorinHieuh"
+              value="3834"
+              c:type="CLUTTER_KEY_Hangul_J_YeorinHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1501"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jamo"
+              value="65333"
+              c:type="CLUTTER_KEY_Hangul_Jamo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1400"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jeonja"
+              value="65336"
+              c:type="CLUTTER_KEY_Hangul_Jeonja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1403"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jieuj"
+              value="3768"
+              c:type="CLUTTER_KEY_Hangul_Jieuj">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1435"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Khieuq"
+              value="3771"
+              c:type="CLUTTER_KEY_Hangul_Khieuq">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1438"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Kiyeog"
+              value="3745"
+              c:type="CLUTTER_KEY_Hangul_Kiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1412"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KiyeogSios"
+              value="3747"
+              c:type="CLUTTER_KEY_Hangul_KiyeogSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1414"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KkogjiDalrinIeung"
+              value="3827"
+              c:type="CLUTTER_KEY_Hangul_KkogjiDalrinIeung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1494"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Mieum"
+              value="3761"
+              c:type="CLUTTER_KEY_Hangul_Mieum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1428"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_MultipleCandidate"
+              value="65341"
+              c:type="CLUTTER_KEY_Hangul_MultipleCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1408"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Nieun"
+              value="3748"
+              c:type="CLUTTER_KEY_Hangul_Nieun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1415"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunHieuh"
+              value="3750"
+              c:type="CLUTTER_KEY_Hangul_NieunHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1417"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunJieuj"
+              value="3749"
+              c:type="CLUTTER_KEY_Hangul_NieunJieuj">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1416"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_O" value="3783" c:type="CLUTTER_KEY_Hangul_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1450"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_OE" value="3786" c:type="CLUTTER_KEY_Hangul_OE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1453"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PanSios"
+              value="3826"
+              c:type="CLUTTER_KEY_Hangul_PanSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1493"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Phieuf"
+              value="3773"
+              c:type="CLUTTER_KEY_Hangul_Phieuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1440"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Pieub"
+              value="3762"
+              c:type="CLUTTER_KEY_Hangul_Pieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1429"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PieubSios"
+              value="3764"
+              c:type="CLUTTER_KEY_Hangul_PieubSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1431"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PostHanja"
+              value="65339"
+              c:type="CLUTTER_KEY_Hangul_PostHanja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1406"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreHanja"
+              value="65338"
+              c:type="CLUTTER_KEY_Hangul_PreHanja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1405"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreviousCandidate"
+              value="65342"
+              c:type="CLUTTER_KEY_Hangul_PreviousCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1409"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Rieul"
+              value="3753"
+              c:type="CLUTTER_KEY_Hangul_Rieul">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1420"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulHieuh"
+              value="3760"
+              c:type="CLUTTER_KEY_Hangul_RieulHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1427"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulKiyeog"
+              value="3754"
+              c:type="CLUTTER_KEY_Hangul_RieulKiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1421"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulMieum"
+              value="3755"
+              c:type="CLUTTER_KEY_Hangul_RieulMieum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1422"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPhieuf"
+              value="3759"
+              c:type="CLUTTER_KEY_Hangul_RieulPhieuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1426"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPieub"
+              value="3756"
+              c:type="CLUTTER_KEY_Hangul_RieulPieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1423"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulSios"
+              value="3757"
+              c:type="CLUTTER_KEY_Hangul_RieulSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1424"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulTieut"
+              value="3758"
+              c:type="CLUTTER_KEY_Hangul_RieulTieut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1425"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulYeorinHieuh"
+              value="3823"
+              c:type="CLUTTER_KEY_Hangul_RieulYeorinHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1490"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Romaja"
+              value="65334"
+              c:type="CLUTTER_KEY_Hangul_Romaja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1401"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SingleCandidate"
+              value="65340"
+              c:type="CLUTTER_KEY_Hangul_SingleCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1407"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Sios"
+              value="3765"
+              c:type="CLUTTER_KEY_Hangul_Sios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1432"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Special"
+              value="65343"
+              c:type="CLUTTER_KEY_Hangul_Special">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1410"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangDikeud"
+              value="3752"
+              c:type="CLUTTER_KEY_Hangul_SsangDikeud">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1419"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangJieuj"
+              value="3769"
+              c:type="CLUTTER_KEY_Hangul_SsangJieuj">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1436"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangKiyeog"
+              value="3746"
+              c:type="CLUTTER_KEY_Hangul_SsangKiyeog">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1413"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangPieub"
+              value="3763"
+              c:type="CLUTTER_KEY_Hangul_SsangPieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1430"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangSios"
+              value="3766"
+              c:type="CLUTTER_KEY_Hangul_SsangSios">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1433"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Start"
+              value="65330"
+              c:type="CLUTTER_KEY_Hangul_Start">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1397"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumMieum"
+              value="3824"
+              c:type="CLUTTER_KEY_Hangul_SunkyeongeumMieum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1491"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPhieuf"
+              value="3828"
+              c:type="CLUTTER_KEY_Hangul_SunkyeongeumPhieuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1495"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPieub"
+              value="3825"
+              c:type="CLUTTER_KEY_Hangul_SunkyeongeumPieub">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1492"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Tieut"
+              value="3772"
+              c:type="CLUTTER_KEY_Hangul_Tieut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1439"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_U" value="3788" c:type="CLUTTER_KEY_Hangul_U">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1455"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WA" value="3784" c:type="CLUTTER_KEY_Hangul_WA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1451"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WAE"
+              value="3785"
+              c:type="CLUTTER_KEY_Hangul_WAE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1452"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WE" value="3790" c:type="CLUTTER_KEY_Hangul_WE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1457"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WEO"
+              value="3789"
+              c:type="CLUTTER_KEY_Hangul_WEO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1456"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WI" value="3791" c:type="CLUTTER_KEY_Hangul_WI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1458"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YA" value="3777" c:type="CLUTTER_KEY_Hangul_YA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1444"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YAE"
+              value="3778"
+              c:type="CLUTTER_KEY_Hangul_YAE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1445"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YE" value="3782" c:type="CLUTTER_KEY_Hangul_YE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1449"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YEO"
+              value="3781"
+              c:type="CLUTTER_KEY_Hangul_YEO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1448"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YI" value="3794" c:type="CLUTTER_KEY_Hangul_YI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1461"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YO" value="3787" c:type="CLUTTER_KEY_Hangul_YO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1454"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YU" value="3792" c:type="CLUTTER_KEY_Hangul_YU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1459"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YeorinHieuh"
+              value="3829"
+              c:type="CLUTTER_KEY_Hangul_YeorinHieuh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1496"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_Hangul_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1411"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hankaku" value="65321" c:type="CLUTTER_KEY_Hankaku">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="59"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hcircumflex"
+              value="678"
+              c:type="CLUTTER_KEY_Hcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="635"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hebrew_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_Hebrew_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1311"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Help" value="65386" c:type="CLUTTER_KEY_Help">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="90"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan" value="65315" c:type="CLUTTER_KEY_Henkan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="53"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan_Mode"
+              value="65315"
+              c:type="CLUTTER_KEY_Henkan_Mode">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="52"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hibernate"
+              value="269025192"
+              c:type="CLUTTER_KEY_Hibernate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2285"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana" value="65317" c:type="CLUTTER_KEY_Hiragana">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="55"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana_Katakana"
+              value="65319"
+              c:type="CLUTTER_KEY_Hiragana_Katakana">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="57"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_History"
+              value="269025079"
+              c:type="CLUTTER_KEY_History">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2178"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Home" value="65360" c:type="CLUTTER_KEY_Home">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="70"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_HomePage"
+              value="269025048"
+              c:type="CLUTTER_KEY_HomePage">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2147"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_HotLinks"
+              value="269025082"
+              c:type="CLUTTER_KEY_HotLinks">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2181"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hstroke" value="673" c:type="CLUTTER_KEY_Hstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="634"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_L" value="65517" c:type="CLUTTER_KEY_Hyper_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="204"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_R" value="65518" c:type="CLUTTER_KEY_Hyper_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="205"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_I" value="73" c:type="CLUTTER_KEY_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="422"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Center_Object"
+              value="65075"
+              c:type="CLUTTER_KEY_ISO_Center_Object">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="244"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Continuous_Underline"
+              value="65072"
+              c:type="CLUTTER_KEY_ISO_Continuous_Underline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="241"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Discontinuous_Underline"
+              value="65073"
+              c:type="CLUTTER_KEY_ISO_Discontinuous_Underline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="242"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Emphasize"
+              value="65074"
+              c:type="CLUTTER_KEY_ISO_Emphasize">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="243"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Enter"
+              value="65076"
+              c:type="CLUTTER_KEY_ISO_Enter">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="245"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Down"
+              value="65071"
+              c:type="CLUTTER_KEY_ISO_Fast_Cursor_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="240"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Left"
+              value="65068"
+              c:type="CLUTTER_KEY_ISO_Fast_Cursor_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="237"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Right"
+              value="65069"
+              c:type="CLUTTER_KEY_ISO_Fast_Cursor_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="238"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Up"
+              value="65070"
+              c:type="CLUTTER_KEY_ISO_Fast_Cursor_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="239"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group"
+              value="65036"
+              c:type="CLUTTER_KEY_ISO_First_Group">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="221"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group_Lock"
+              value="65037"
+              c:type="CLUTTER_KEY_ISO_First_Group_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="222"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Latch"
+              value="65030"
+              c:type="CLUTTER_KEY_ISO_Group_Latch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="215"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Lock"
+              value="65031"
+              c:type="CLUTTER_KEY_ISO_Group_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="216"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Shift"
+              value="65406"
+              c:type="CLUTTER_KEY_ISO_Group_Shift">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="214"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group"
+              value="65038"
+              c:type="CLUTTER_KEY_ISO_Last_Group">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="223"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group_Lock"
+              value="65039"
+              c:type="CLUTTER_KEY_ISO_Last_Group_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="224"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Left_Tab"
+              value="65056"
+              c:type="CLUTTER_KEY_ISO_Left_Tab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="225"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level2_Latch"
+              value="65026"
+              c:type="CLUTTER_KEY_ISO_Level2_Latch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="207"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Latch"
+              value="65028"
+              c:type="CLUTTER_KEY_ISO_Level3_Latch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="209"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Lock"
+              value="65029"
+              c:type="CLUTTER_KEY_ISO_Level3_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="210"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Shift"
+              value="65027"
+              c:type="CLUTTER_KEY_ISO_Level3_Shift">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="208"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Latch"
+              value="65042"
+              c:type="CLUTTER_KEY_ISO_Level5_Latch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="212"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Lock"
+              value="65043"
+              c:type="CLUTTER_KEY_ISO_Level5_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="213"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Shift"
+              value="65041"
+              c:type="CLUTTER_KEY_ISO_Level5_Shift">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="211"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Lock" value="65025" c:type="CLUTTER_KEY_ISO_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="206"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Down"
+              value="65058"
+              c:type="CLUTTER_KEY_ISO_Move_Line_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="227"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Up"
+              value="65057"
+              c:type="CLUTTER_KEY_ISO_Move_Line_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="226"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group"
+              value="65032"
+              c:type="CLUTTER_KEY_ISO_Next_Group">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="217"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group_Lock"
+              value="65033"
+              c:type="CLUTTER_KEY_ISO_Next_Group_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="218"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Down"
+              value="65060"
+              c:type="CLUTTER_KEY_ISO_Partial_Line_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="229"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Up"
+              value="65059"
+              c:type="CLUTTER_KEY_ISO_Partial_Line_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="228"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Left"
+              value="65061"
+              c:type="CLUTTER_KEY_ISO_Partial_Space_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="230"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Right"
+              value="65062"
+              c:type="CLUTTER_KEY_ISO_Partial_Space_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="231"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group"
+              value="65034"
+              c:type="CLUTTER_KEY_ISO_Prev_Group">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="219"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group_Lock"
+              value="65035"
+              c:type="CLUTTER_KEY_ISO_Prev_Group_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="220"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Both_Margins"
+              value="65067"
+              c:type="CLUTTER_KEY_ISO_Release_Both_Margins">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="236"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Left"
+              value="65065"
+              c:type="CLUTTER_KEY_ISO_Release_Margin_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="234"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Right"
+              value="65066"
+              c:type="CLUTTER_KEY_ISO_Release_Margin_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="235"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Left"
+              value="65063"
+              c:type="CLUTTER_KEY_ISO_Set_Margin_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="232"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Right"
+              value="65064"
+              c:type="CLUTTER_KEY_ISO_Set_Margin_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="233"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iabovedot" value="681" c:type="CLUTTER_KEY_Iabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="636"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iacute" value="205" c:type="CLUTTER_KEY_Iacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="522"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibelowdot"
+              value="16785098"
+              c:type="CLUTTER_KEY_Ibelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1692"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibreve" value="16777516" c:type="CLUTTER_KEY_Ibreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1633"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Icircumflex"
+              value="206"
+              c:type="CLUTTER_KEY_Icircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="523"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Idiaeresis"
+              value="207"
+              c:type="CLUTTER_KEY_Idiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="524"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Igrave" value="204" c:type="CLUTTER_KEY_Igrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="521"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ihook" value="16785096" c:type="CLUTTER_KEY_Ihook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1690"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Imacron" value="975" c:type="CLUTTER_KEY_Imacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="675"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Insert" value="65379" c:type="CLUTTER_KEY_Insert">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="84"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iogonek" value="967" c:type="CLUTTER_KEY_Iogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="673"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Itilde" value="933" c:type="CLUTTER_KEY_Itilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="659"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_J" value="74" c:type="CLUTTER_KEY_J">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="423"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Jcircumflex"
+              value="684"
+              c:type="CLUTTER_KEY_Jcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="638"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_K" value="75" c:type="CLUTTER_KEY_K">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="424"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_0" value="65456" c:type="CLUTTER_KEY_KP_0">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="122"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_1" value="65457" c:type="CLUTTER_KEY_KP_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="123"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_2" value="65458" c:type="CLUTTER_KEY_KP_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="124"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_3" value="65459" c:type="CLUTTER_KEY_KP_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="125"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_4" value="65460" c:type="CLUTTER_KEY_KP_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="126"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_5" value="65461" c:type="CLUTTER_KEY_KP_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="127"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_6" value="65462" c:type="CLUTTER_KEY_KP_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="128"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_7" value="65463" c:type="CLUTTER_KEY_KP_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="129"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_8" value="65464" c:type="CLUTTER_KEY_KP_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="130"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_9" value="65465" c:type="CLUTTER_KEY_KP_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="131"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Add" value="65451" c:type="CLUTTER_KEY_KP_Add">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="117"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Begin" value="65437" c:type="CLUTTER_KEY_KP_Begin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="112"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Decimal"
+              value="65454"
+              c:type="CLUTTER_KEY_KP_Decimal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="120"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Delete"
+              value="65439"
+              c:type="CLUTTER_KEY_KP_Delete">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="114"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Divide"
+              value="65455"
+              c:type="CLUTTER_KEY_KP_Divide">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="121"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Down" value="65433" c:type="CLUTTER_KEY_KP_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="106"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_End" value="65436" c:type="CLUTTER_KEY_KP_End">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="111"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Enter" value="65421" c:type="CLUTTER_KEY_KP_Enter">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="97"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Equal" value="65469" c:type="CLUTTER_KEY_KP_Equal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="115"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F1" value="65425" c:type="CLUTTER_KEY_KP_F1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="98"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F2" value="65426" c:type="CLUTTER_KEY_KP_F2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="99"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F3" value="65427" c:type="CLUTTER_KEY_KP_F3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="100"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F4" value="65428" c:type="CLUTTER_KEY_KP_F4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="101"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Home" value="65429" c:type="CLUTTER_KEY_KP_Home">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="102"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Insert"
+              value="65438"
+              c:type="CLUTTER_KEY_KP_Insert">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="113"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Left" value="65430" c:type="CLUTTER_KEY_KP_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="103"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Multiply"
+              value="65450"
+              c:type="CLUTTER_KEY_KP_Multiply">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="116"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Next" value="65435" c:type="CLUTTER_KEY_KP_Next">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="109"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Down"
+              value="65435"
+              c:type="CLUTTER_KEY_KP_Page_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="110"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Up"
+              value="65434"
+              c:type="CLUTTER_KEY_KP_Page_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="108"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Prior" value="65434" c:type="CLUTTER_KEY_KP_Prior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="107"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Right" value="65432" c:type="CLUTTER_KEY_KP_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="105"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Separator"
+              value="65452"
+              c:type="CLUTTER_KEY_KP_Separator">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="118"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Space" value="65408" c:type="CLUTTER_KEY_KP_Space">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="95"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Subtract"
+              value="65453"
+              c:type="CLUTTER_KEY_KP_Subtract">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="119"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Tab" value="65417" c:type="CLUTTER_KEY_KP_Tab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="96"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Up" value="65431" c:type="CLUTTER_KEY_KP_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="104"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Lock"
+              value="65325"
+              c:type="CLUTTER_KEY_Kana_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="63"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Shift"
+              value="65326"
+              c:type="CLUTTER_KEY_Kana_Shift">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="64"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji" value="65313" c:type="CLUTTER_KEY_Kanji">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="50"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji_Bangou"
+              value="65335"
+              c:type="CLUTTER_KEY_Kanji_Bangou">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="67"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Katakana" value="65318" c:type="CLUTTER_KEY_Katakana">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="56"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdBrightnessDown"
+              value="269025030"
+              c:type="CLUTTER_KEY_KbdBrightnessDown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2138"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdBrightnessUp"
+              value="269025029"
+              c:type="CLUTTER_KEY_KbdBrightnessUp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2137"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdLightOnOff"
+              value="269025028"
+              c:type="CLUTTER_KEY_KbdLightOnOff">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2136"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kcedilla" value="979" c:type="CLUTTER_KEY_Kcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="678"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Korean_Won"
+              value="3839"
+              c:type="CLUTTER_KEY_Korean_Won">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1502"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L" value="76" c:type="CLUTTER_KEY_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="425"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L1" value="65480" c:type="CLUTTER_KEY_L1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="143"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L10" value="65489" c:type="CLUTTER_KEY_L10">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="161"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L2" value="65481" c:type="CLUTTER_KEY_L2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="145"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L3" value="65482" c:type="CLUTTER_KEY_L3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="147"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L4" value="65483" c:type="CLUTTER_KEY_L4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="149"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L5" value="65484" c:type="CLUTTER_KEY_L5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="151"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L6" value="65485" c:type="CLUTTER_KEY_L6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="153"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L7" value="65486" c:type="CLUTTER_KEY_L7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="155"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L8" value="65487" c:type="CLUTTER_KEY_L8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="157"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L9" value="65488" c:type="CLUTTER_KEY_L9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="159"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lacute" value="453" c:type="CLUTTER_KEY_Lacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="603"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Last_Virtual_Screen"
+              value="65236"
+              c:type="CLUTTER_KEY_Last_Virtual_Screen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="301"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch0"
+              value="269025088"
+              c:type="CLUTTER_KEY_Launch0">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2187"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch1"
+              value="269025089"
+              c:type="CLUTTER_KEY_Launch1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2188"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch2"
+              value="269025090"
+              c:type="CLUTTER_KEY_Launch2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2189"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch3"
+              value="269025091"
+              c:type="CLUTTER_KEY_Launch3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2190"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch4"
+              value="269025092"
+              c:type="CLUTTER_KEY_Launch4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2191"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch5"
+              value="269025093"
+              c:type="CLUTTER_KEY_Launch5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2192"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch6"
+              value="269025094"
+              c:type="CLUTTER_KEY_Launch6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2193"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch7"
+              value="269025095"
+              c:type="CLUTTER_KEY_Launch7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2194"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch8"
+              value="269025096"
+              c:type="CLUTTER_KEY_Launch8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2195"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch9"
+              value="269025097"
+              c:type="CLUTTER_KEY_Launch9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2196"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchA"
+              value="269025098"
+              c:type="CLUTTER_KEY_LaunchA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2197"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchB"
+              value="269025099"
+              c:type="CLUTTER_KEY_LaunchB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2198"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchC"
+              value="269025100"
+              c:type="CLUTTER_KEY_LaunchC">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2199"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchD"
+              value="269025101"
+              c:type="CLUTTER_KEY_LaunchD">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2200"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchE"
+              value="269025102"
+              c:type="CLUTTER_KEY_LaunchE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2201"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchF"
+              value="269025103"
+              c:type="CLUTTER_KEY_LaunchF">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2202"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lbelowdot"
+              value="16784950"
+              c:type="CLUTTER_KEY_Lbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1648"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcaron" value="421" c:type="CLUTTER_KEY_Lcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="580"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcedilla" value="934" c:type="CLUTTER_KEY_Lcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="660"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Left" value="65361" c:type="CLUTTER_KEY_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="71"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LightBulb"
+              value="269025077"
+              c:type="CLUTTER_KEY_LightBulb">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2176"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Linefeed" value="65290" c:type="CLUTTER_KEY_Linefeed">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="37"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LiraSign"
+              value="16785572"
+              c:type="CLUTTER_KEY_LiraSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1746"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LogGrabInfo"
+              value="269024805"
+              c:type="CLUTTER_KEY_LogGrabInfo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2307"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LogOff" value="269025121" c:type="CLUTTER_KEY_LogOff">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2219"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LogWindowTree"
+              value="269024804"
+              c:type="CLUTTER_KEY_LogWindowTree">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2306"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lstroke" value="419" c:type="CLUTTER_KEY_Lstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="579"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_M" value="77" c:type="CLUTTER_KEY_M">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="426"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mabovedot"
+              value="16784960"
+              c:type="CLUTTER_KEY_Mabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="702"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_DSE"
+              value="1717"
+              c:type="CLUTTER_KEY_Macedonia_DSE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="940"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_GJE"
+              value="1714"
+              c:type="CLUTTER_KEY_Macedonia_GJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="936"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_KJE"
+              value="1724"
+              c:type="CLUTTER_KEY_Macedonia_KJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="952"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_dse"
+              value="1701"
+              c:type="CLUTTER_KEY_Macedonia_dse">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="917"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_gje"
+              value="1698"
+              c:type="CLUTTER_KEY_Macedonia_gje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="913"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_kje"
+              value="1708"
+              c:type="CLUTTER_KEY_Macedonia_kje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="929"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mae_Koho" value="65342" c:type="CLUTTER_KEY_Mae_Koho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="69"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mail" value="269025049" c:type="CLUTTER_KEY_Mail">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2148"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MailForward"
+              value="269025168"
+              c:type="CLUTTER_KEY_MailForward">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2261"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Market" value="269025122" c:type="CLUTTER_KEY_Market">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2220"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Massyo" value="65324" c:type="CLUTTER_KEY_Massyo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="62"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meeting"
+              value="269025123"
+              c:type="CLUTTER_KEY_Meeting">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2221"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Memo" value="269025054" c:type="CLUTTER_KEY_Memo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2153"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Menu" value="65383" c:type="CLUTTER_KEY_Menu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="87"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MenuKB" value="269025125" c:type="CLUTTER_KEY_MenuKB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2222"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MenuPB" value="269025126" c:type="CLUTTER_KEY_MenuPB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2223"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Messenger"
+              value="269025166"
+              c:type="CLUTTER_KEY_Messenger">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2259"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_L" value="65511" c:type="CLUTTER_KEY_Meta_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="198"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_R" value="65512" c:type="CLUTTER_KEY_Meta_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="199"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MillSign"
+              value="16785573"
+              c:type="CLUTTER_KEY_MillSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1747"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ModeLock"
+              value="269025025"
+              c:type="CLUTTER_KEY_ModeLock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2133"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mode_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_Mode_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="92"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MonBrightnessDown"
+              value="269025027"
+              c:type="CLUTTER_KEY_MonBrightnessDown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2135"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MonBrightnessUp"
+              value="269025026"
+              c:type="CLUTTER_KEY_MonBrightnessUp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2134"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Accel_Enable"
+              value="65143"
+              c:type="CLUTTER_KEY_MouseKeys_Accel_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="310"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Enable"
+              value="65142"
+              c:type="CLUTTER_KEY_MouseKeys_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="309"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Muhenkan" value="65314" c:type="CLUTTER_KEY_Muhenkan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="51"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Multi_key"
+              value="65312"
+              c:type="CLUTTER_KEY_Multi_key">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="45"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MultipleCandidate"
+              value="65341"
+              c:type="CLUTTER_KEY_MultipleCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="48"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Music" value="269025170" c:type="CLUTTER_KEY_Music">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2263"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MyComputer"
+              value="269025075"
+              c:type="CLUTTER_KEY_MyComputer">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2174"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MySites"
+              value="269025127"
+              c:type="CLUTTER_KEY_MySites">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2224"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_N" value="78" c:type="CLUTTER_KEY_N">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="427"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Nacute" value="465" c:type="CLUTTER_KEY_Nacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="610"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NairaSign"
+              value="16785574"
+              c:type="CLUTTER_KEY_NairaSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1748"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncaron" value="466" c:type="CLUTTER_KEY_Ncaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="611"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncedilla" value="977" c:type="CLUTTER_KEY_Ncedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="676"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_New" value="269025128" c:type="CLUTTER_KEY_New">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2225"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NewSheqelSign"
+              value="16785578"
+              c:type="CLUTTER_KEY_NewSheqelSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1752"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_News" value="269025129" c:type="CLUTTER_KEY_News">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2226"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next" value="65366" c:type="CLUTTER_KEY_Next">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="77"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next_VMode"
+              value="269024802"
+              c:type="CLUTTER_KEY_Next_VMode">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2304"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next_Virtual_Screen"
+              value="65234"
+              c:type="CLUTTER_KEY_Next_Virtual_Screen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="300"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ntilde" value="209" c:type="CLUTTER_KEY_Ntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="527"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Num_Lock" value="65407" c:type="CLUTTER_KEY_Num_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="94"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_O" value="79" c:type="CLUTTER_KEY_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="428"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OE" value="5052" c:type="CLUTTER_KEY_OE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="718"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oacute" value="211" c:type="CLUTTER_KEY_Oacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="529"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obarred" value="16777631" c:type="CLUTTER_KEY_Obarred">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1637"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obelowdot"
+              value="16785100"
+              c:type="CLUTTER_KEY_Obelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1694"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocaron" value="16777681" c:type="CLUTTER_KEY_Ocaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1636"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflex"
+              value="212"
+              c:type="CLUTTER_KEY_Ocircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="530"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexacute"
+              value="16785104"
+              c:type="CLUTTER_KEY_Ocircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1698"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexbelowdot"
+              value="16785112"
+              c:type="CLUTTER_KEY_Ocircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1706"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexgrave"
+              value="16785106"
+              c:type="CLUTTER_KEY_Ocircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1700"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexhook"
+              value="16785108"
+              c:type="CLUTTER_KEY_Ocircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1702"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflextilde"
+              value="16785110"
+              c:type="CLUTTER_KEY_Ocircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1704"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odiaeresis"
+              value="214"
+              c:type="CLUTTER_KEY_Odiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="532"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odoubleacute"
+              value="469"
+              c:type="CLUTTER_KEY_Odoubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="612"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OfficeHome"
+              value="269025130"
+              c:type="CLUTTER_KEY_OfficeHome">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2227"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ograve" value="210" c:type="CLUTTER_KEY_Ograve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="528"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohook" value="16785102" c:type="CLUTTER_KEY_Ohook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1696"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorn" value="16777632" c:type="CLUTTER_KEY_Ohorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1738"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornacute"
+              value="16785114"
+              c:type="CLUTTER_KEY_Ohornacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1708"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornbelowdot"
+              value="16785122"
+              c:type="CLUTTER_KEY_Ohornbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1716"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorngrave"
+              value="16785116"
+              c:type="CLUTTER_KEY_Ohorngrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1710"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornhook"
+              value="16785118"
+              c:type="CLUTTER_KEY_Ohornhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1712"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorntilde"
+              value="16785120"
+              c:type="CLUTTER_KEY_Ohorntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1714"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Omacron" value="978" c:type="CLUTTER_KEY_Omacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="677"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ooblique" value="216" c:type="CLUTTER_KEY_Ooblique">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="535"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Open" value="269025131" c:type="CLUTTER_KEY_Open">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2228"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OpenURL"
+              value="269025080"
+              c:type="CLUTTER_KEY_OpenURL">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2179"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Option" value="269025132" c:type="CLUTTER_KEY_Option">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2229"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oslash" value="216" c:type="CLUTTER_KEY_Oslash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="534"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Otilde" value="213" c:type="CLUTTER_KEY_Otilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="531"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay1_Enable"
+              value="65144"
+              c:type="CLUTTER_KEY_Overlay1_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="311"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay2_Enable"
+              value="65145"
+              c:type="CLUTTER_KEY_Overlay2_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="312"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_P" value="80" c:type="CLUTTER_KEY_P">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="429"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pabovedot"
+              value="16784982"
+              c:type="CLUTTER_KEY_Pabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="704"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Down"
+              value="65366"
+              c:type="CLUTTER_KEY_Page_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="78"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Up" value="65365" c:type="CLUTTER_KEY_Page_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="76"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Paste" value="269025133" c:type="CLUTTER_KEY_Paste">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2230"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pause" value="65299" c:type="CLUTTER_KEY_Pause">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="40"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PesetaSign"
+              value="16785575"
+              c:type="CLUTTER_KEY_PesetaSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1749"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Phone" value="269025134" c:type="CLUTTER_KEY_Phone">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2231"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pictures"
+              value="269025169"
+              c:type="CLUTTER_KEY_Pictures">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2262"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Accelerate"
+              value="65274"
+              c:type="CLUTTER_KEY_Pointer_Accelerate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="341"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button1"
+              value="65257"
+              c:type="CLUTTER_KEY_Pointer_Button1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="323"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button2"
+              value="65258"
+              c:type="CLUTTER_KEY_Pointer_Button2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="324"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button3"
+              value="65259"
+              c:type="CLUTTER_KEY_Pointer_Button3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="325"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button4"
+              value="65260"
+              c:type="CLUTTER_KEY_Pointer_Button4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="326"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button5"
+              value="65261"
+              c:type="CLUTTER_KEY_Pointer_Button5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="327"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button_Dflt"
+              value="65256"
+              c:type="CLUTTER_KEY_Pointer_Button_Dflt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="322"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick1"
+              value="65263"
+              c:type="CLUTTER_KEY_Pointer_DblClick1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="329"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick2"
+              value="65264"
+              c:type="CLUTTER_KEY_Pointer_DblClick2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="330"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick3"
+              value="65265"
+              c:type="CLUTTER_KEY_Pointer_DblClick3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="331"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick4"
+              value="65266"
+              c:type="CLUTTER_KEY_Pointer_DblClick4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="332"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick5"
+              value="65267"
+              c:type="CLUTTER_KEY_Pointer_DblClick5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="333"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick_Dflt"
+              value="65262"
+              c:type="CLUTTER_KEY_Pointer_DblClick_Dflt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="328"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnNext"
+              value="65275"
+              c:type="CLUTTER_KEY_Pointer_DfltBtnNext">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="342"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnPrev"
+              value="65276"
+              c:type="CLUTTER_KEY_Pointer_DfltBtnPrev">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="343"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Down"
+              value="65251"
+              c:type="CLUTTER_KEY_Pointer_Down">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="317"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownLeft"
+              value="65254"
+              c:type="CLUTTER_KEY_Pointer_DownLeft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="320"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownRight"
+              value="65255"
+              c:type="CLUTTER_KEY_Pointer_DownRight">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="321"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag1"
+              value="65269"
+              c:type="CLUTTER_KEY_Pointer_Drag1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="335"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag2"
+              value="65270"
+              c:type="CLUTTER_KEY_Pointer_Drag2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="336"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag3"
+              value="65271"
+              c:type="CLUTTER_KEY_Pointer_Drag3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="337"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag4"
+              value="65272"
+              c:type="CLUTTER_KEY_Pointer_Drag4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="338"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag5"
+              value="65277"
+              c:type="CLUTTER_KEY_Pointer_Drag5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="339"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag_Dflt"
+              value="65268"
+              c:type="CLUTTER_KEY_Pointer_Drag_Dflt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="334"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_EnableKeys"
+              value="65273"
+              c:type="CLUTTER_KEY_Pointer_EnableKeys">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="340"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Left"
+              value="65248"
+              c:type="CLUTTER_KEY_Pointer_Left">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="314"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Right"
+              value="65249"
+              c:type="CLUTTER_KEY_Pointer_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="315"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Up"
+              value="65250"
+              c:type="CLUTTER_KEY_Pointer_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="316"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpLeft"
+              value="65252"
+              c:type="CLUTTER_KEY_Pointer_UpLeft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="318"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpRight"
+              value="65253"
+              c:type="CLUTTER_KEY_Pointer_UpRight">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="319"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PowerDown"
+              value="269025057"
+              c:type="CLUTTER_KEY_PowerDown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2156"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PowerOff"
+              value="269025066"
+              c:type="CLUTTER_KEY_PowerOff">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2165"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prev_VMode"
+              value="269024803"
+              c:type="CLUTTER_KEY_Prev_VMode">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2305"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prev_Virtual_Screen"
+              value="65233"
+              c:type="CLUTTER_KEY_Prev_Virtual_Screen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="299"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PreviousCandidate"
+              value="65342"
+              c:type="CLUTTER_KEY_PreviousCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="49"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Print" value="65377" c:type="CLUTTER_KEY_Print">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="82"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prior" value="65365" c:type="CLUTTER_KEY_Prior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="75"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Q" value="81" c:type="CLUTTER_KEY_Q">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="430"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R" value="82" c:type="CLUTTER_KEY_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="431"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R1" value="65490" c:type="CLUTTER_KEY_R1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="163"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R10" value="65499" c:type="CLUTTER_KEY_R10">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="181"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R11" value="65500" c:type="CLUTTER_KEY_R11">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="183"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R12" value="65501" c:type="CLUTTER_KEY_R12">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="185"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R13" value="65502" c:type="CLUTTER_KEY_R13">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="187"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R14" value="65503" c:type="CLUTTER_KEY_R14">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="189"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R15" value="65504" c:type="CLUTTER_KEY_R15">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="191"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R2" value="65491" c:type="CLUTTER_KEY_R2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="165"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R3" value="65492" c:type="CLUTTER_KEY_R3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="167"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R4" value="65493" c:type="CLUTTER_KEY_R4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="169"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R5" value="65494" c:type="CLUTTER_KEY_R5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="171"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R6" value="65495" c:type="CLUTTER_KEY_R6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="173"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R7" value="65496" c:type="CLUTTER_KEY_R7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="175"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R8" value="65497" c:type="CLUTTER_KEY_R8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="177"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R9" value="65498" c:type="CLUTTER_KEY_R9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="179"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Racute" value="448" c:type="CLUTTER_KEY_Racute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="601"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcaron" value="472" c:type="CLUTTER_KEY_Rcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="613"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcedilla" value="931" c:type="CLUTTER_KEY_Rcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="658"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Red" value="269025187" c:type="CLUTTER_KEY_Red">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2280"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Redo" value="65382" c:type="CLUTTER_KEY_Redo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="86"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Refresh"
+              value="269025065"
+              c:type="CLUTTER_KEY_Refresh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2164"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Reload" value="269025139" c:type="CLUTTER_KEY_Reload">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2233"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RepeatKeys_Enable"
+              value="65138"
+              c:type="CLUTTER_KEY_RepeatKeys_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="305"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Reply" value="269025138" c:type="CLUTTER_KEY_Reply">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2232"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Return" value="65293" c:type="CLUTTER_KEY_Return">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="39"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Right" value="65363" c:type="CLUTTER_KEY_Right">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="73"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerDown"
+              value="269025060"
+              c:type="CLUTTER_KEY_RockerDown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2159"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerEnter"
+              value="269025061"
+              c:type="CLUTTER_KEY_RockerEnter">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2160"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerUp"
+              value="269025059"
+              c:type="CLUTTER_KEY_RockerUp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2158"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Romaji" value="65316" c:type="CLUTTER_KEY_Romaji">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="54"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotateWindows"
+              value="269025140"
+              c:type="CLUTTER_KEY_RotateWindows">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2234"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotationKB"
+              value="269025142"
+              c:type="CLUTTER_KEY_RotationKB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2236"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotationPB"
+              value="269025141"
+              c:type="CLUTTER_KEY_RotationPB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2235"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RupeeSign"
+              value="16785576"
+              c:type="CLUTTER_KEY_RupeeSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1750"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_S" value="83" c:type="CLUTTER_KEY_S">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="432"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SCHWA" value="16777615" c:type="CLUTTER_KEY_SCHWA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1644"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sabovedot"
+              value="16784992"
+              c:type="CLUTTER_KEY_Sabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="706"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sacute" value="422" c:type="CLUTTER_KEY_Sacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="581"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Save" value="269025143" c:type="CLUTTER_KEY_Save">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2237"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scaron" value="425" c:type="CLUTTER_KEY_Scaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="582"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scedilla" value="426" c:type="CLUTTER_KEY_Scedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="583"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scircumflex"
+              value="734"
+              c:type="CLUTTER_KEY_Scircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="649"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScreenSaver"
+              value="269025069"
+              c:type="CLUTTER_KEY_ScreenSaver">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2168"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollClick"
+              value="269025146"
+              c:type="CLUTTER_KEY_ScrollClick">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2240"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollDown"
+              value="269025145"
+              c:type="CLUTTER_KEY_ScrollDown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2239"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollUp"
+              value="269025144"
+              c:type="CLUTTER_KEY_ScrollUp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2238"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scroll_Lock"
+              value="65300"
+              c:type="CLUTTER_KEY_Scroll_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="41"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Search" value="269025051" c:type="CLUTTER_KEY_Search">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2150"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Select" value="65376" c:type="CLUTTER_KEY_Select">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="81"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SelectButton"
+              value="269025184"
+              c:type="CLUTTER_KEY_SelectButton">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2277"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Send" value="269025147" c:type="CLUTTER_KEY_Send">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2241"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DJE"
+              value="1713"
+              c:type="CLUTTER_KEY_Serbian_DJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="935"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DZE"
+              value="1727"
+              c:type="CLUTTER_KEY_Serbian_DZE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="956"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_JE"
+              value="1720"
+              c:type="CLUTTER_KEY_Serbian_JE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="946"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_LJE"
+              value="1721"
+              c:type="CLUTTER_KEY_Serbian_LJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="948"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_NJE"
+              value="1722"
+              c:type="CLUTTER_KEY_Serbian_NJE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="950"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_TSHE"
+              value="1723"
+              c:type="CLUTTER_KEY_Serbian_TSHE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="951"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dje"
+              value="1697"
+              c:type="CLUTTER_KEY_Serbian_dje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="912"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dze"
+              value="1711"
+              c:type="CLUTTER_KEY_Serbian_dze">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="933"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_je"
+              value="1704"
+              c:type="CLUTTER_KEY_Serbian_je">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="923"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_lje"
+              value="1705"
+              c:type="CLUTTER_KEY_Serbian_lje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="925"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_nje"
+              value="1706"
+              c:type="CLUTTER_KEY_Serbian_nje">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="927"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_tshe"
+              value="1707"
+              c:type="CLUTTER_KEY_Serbian_tshe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="928"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_L" value="65505" c:type="CLUTTER_KEY_Shift_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="192"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_Lock"
+              value="65510"
+              c:type="CLUTTER_KEY_Shift_Lock">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="197"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_R" value="65506" c:type="CLUTTER_KEY_Shift_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="193"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shop" value="269025078" c:type="CLUTTER_KEY_Shop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2177"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SingleCandidate"
+              value="65340"
+              c:type="CLUTTER_KEY_SingleCandidate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="47"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_a" value="16780677" c:type="CLUTTER_KEY_Sinh_a">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2055"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aa" value="16780678" c:type="CLUTTER_KEY_Sinh_aa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2056"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aa2"
+              value="16780751"
+              c:type="CLUTTER_KEY_Sinh_aa2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2115"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ae" value="16780679" c:type="CLUTTER_KEY_Sinh_ae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2057"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ae2"
+              value="16780752"
+              c:type="CLUTTER_KEY_Sinh_ae2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2116"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aee"
+              value="16780680"
+              c:type="CLUTTER_KEY_Sinh_aee">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2058"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aee2"
+              value="16780753"
+              c:type="CLUTTER_KEY_Sinh_aee2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2117"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ai" value="16780691" c:type="CLUTTER_KEY_Sinh_ai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2069"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ai2"
+              value="16780763"
+              c:type="CLUTTER_KEY_Sinh_ai2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2125"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_al" value="16780746" c:type="CLUTTER_KEY_Sinh_al">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2114"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_au" value="16780694" c:type="CLUTTER_KEY_Sinh_au">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2072"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_au2"
+              value="16780766"
+              c:type="CLUTTER_KEY_Sinh_au2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2128"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ba" value="16780726" c:type="CLUTTER_KEY_Sinh_ba">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2100"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_bha"
+              value="16780727"
+              c:type="CLUTTER_KEY_Sinh_bha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2101"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ca" value="16780704" c:type="CLUTTER_KEY_Sinh_ca">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2079"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_cha"
+              value="16780705"
+              c:type="CLUTTER_KEY_Sinh_cha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2080"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dda"
+              value="16780713"
+              c:type="CLUTTER_KEY_Sinh_dda">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2088"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ddha"
+              value="16780714"
+              c:type="CLUTTER_KEY_Sinh_ddha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2089"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dha"
+              value="16780719"
+              c:type="CLUTTER_KEY_Sinh_dha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2094"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dhha"
+              value="16780720"
+              c:type="CLUTTER_KEY_Sinh_dhha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2095"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_e" value="16780689" c:type="CLUTTER_KEY_Sinh_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2067"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_e2" value="16780761" c:type="CLUTTER_KEY_Sinh_e2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2123"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ee" value="16780690" c:type="CLUTTER_KEY_Sinh_ee">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2068"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ee2"
+              value="16780762"
+              c:type="CLUTTER_KEY_Sinh_ee2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2124"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_fa" value="16780742" c:type="CLUTTER_KEY_Sinh_fa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2113"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ga" value="16780700" c:type="CLUTTER_KEY_Sinh_ga">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2075"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_gha"
+              value="16780701"
+              c:type="CLUTTER_KEY_Sinh_gha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2076"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_h2" value="16780675" c:type="CLUTTER_KEY_Sinh_h2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2054"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ha" value="16780740" c:type="CLUTTER_KEY_Sinh_ha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2111"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_i" value="16780681" c:type="CLUTTER_KEY_Sinh_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2059"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_i2" value="16780754" c:type="CLUTTER_KEY_Sinh_i2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2118"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ii" value="16780682" c:type="CLUTTER_KEY_Sinh_ii">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2060"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ii2"
+              value="16780755"
+              c:type="CLUTTER_KEY_Sinh_ii2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2119"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ja" value="16780706" c:type="CLUTTER_KEY_Sinh_ja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2081"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_jha"
+              value="16780707"
+              c:type="CLUTTER_KEY_Sinh_jha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2082"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_jnya"
+              value="16780709"
+              c:type="CLUTTER_KEY_Sinh_jnya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2084"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ka" value="16780698" c:type="CLUTTER_KEY_Sinh_ka">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2073"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_kha"
+              value="16780699"
+              c:type="CLUTTER_KEY_Sinh_kha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2074"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_kunddaliya"
+              value="16780788"
+              c:type="CLUTTER_KEY_Sinh_kunddaliya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2132"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_la" value="16780733" c:type="CLUTTER_KEY_Sinh_la">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2106"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lla"
+              value="16780741"
+              c:type="CLUTTER_KEY_Sinh_lla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2112"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lu" value="16780687" c:type="CLUTTER_KEY_Sinh_lu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2065"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lu2"
+              value="16780767"
+              c:type="CLUTTER_KEY_Sinh_lu2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2129"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_luu"
+              value="16780688"
+              c:type="CLUTTER_KEY_Sinh_luu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2066"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_luu2"
+              value="16780787"
+              c:type="CLUTTER_KEY_Sinh_luu2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2131"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ma" value="16780728" c:type="CLUTTER_KEY_Sinh_ma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2102"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_mba"
+              value="16780729"
+              c:type="CLUTTER_KEY_Sinh_mba">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2103"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_na" value="16780721" c:type="CLUTTER_KEY_Sinh_na">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2096"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ndda"
+              value="16780716"
+              c:type="CLUTTER_KEY_Sinh_ndda">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2091"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ndha"
+              value="16780723"
+              c:type="CLUTTER_KEY_Sinh_ndha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2097"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ng" value="16780674" c:type="CLUTTER_KEY_Sinh_ng">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2053"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ng2"
+              value="16780702"
+              c:type="CLUTTER_KEY_Sinh_ng2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2077"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nga"
+              value="16780703"
+              c:type="CLUTTER_KEY_Sinh_nga">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2078"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nja"
+              value="16780710"
+              c:type="CLUTTER_KEY_Sinh_nja">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2085"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nna"
+              value="16780715"
+              c:type="CLUTTER_KEY_Sinh_nna">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2090"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nya"
+              value="16780708"
+              c:type="CLUTTER_KEY_Sinh_nya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2083"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_o" value="16780692" c:type="CLUTTER_KEY_Sinh_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2070"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_o2" value="16780764" c:type="CLUTTER_KEY_Sinh_o2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2126"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_oo" value="16780693" c:type="CLUTTER_KEY_Sinh_oo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2071"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_oo2"
+              value="16780765"
+              c:type="CLUTTER_KEY_Sinh_oo2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2127"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_pa" value="16780724" c:type="CLUTTER_KEY_Sinh_pa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2098"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_pha"
+              value="16780725"
+              c:type="CLUTTER_KEY_Sinh_pha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2099"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ra" value="16780731" c:type="CLUTTER_KEY_Sinh_ra">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2105"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ri" value="16780685" c:type="CLUTTER_KEY_Sinh_ri">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2063"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_rii"
+              value="16780686"
+              c:type="CLUTTER_KEY_Sinh_rii">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2064"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ru2"
+              value="16780760"
+              c:type="CLUTTER_KEY_Sinh_ru2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2122"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ruu2"
+              value="16780786"
+              c:type="CLUTTER_KEY_Sinh_ruu2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2130"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_sa" value="16780739" c:type="CLUTTER_KEY_Sinh_sa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2110"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_sha"
+              value="16780737"
+              c:type="CLUTTER_KEY_Sinh_sha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2108"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ssha"
+              value="16780738"
+              c:type="CLUTTER_KEY_Sinh_ssha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2109"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_tha"
+              value="16780717"
+              c:type="CLUTTER_KEY_Sinh_tha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2092"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_thha"
+              value="16780718"
+              c:type="CLUTTER_KEY_Sinh_thha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2093"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_tta"
+              value="16780711"
+              c:type="CLUTTER_KEY_Sinh_tta">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2086"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ttha"
+              value="16780712"
+              c:type="CLUTTER_KEY_Sinh_ttha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2087"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_u" value="16780683" c:type="CLUTTER_KEY_Sinh_u">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2061"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_u2" value="16780756" c:type="CLUTTER_KEY_Sinh_u2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2120"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_uu" value="16780684" c:type="CLUTTER_KEY_Sinh_uu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2062"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_uu2"
+              value="16780758"
+              c:type="CLUTTER_KEY_Sinh_uu2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2121"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_va" value="16780736" c:type="CLUTTER_KEY_Sinh_va">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2107"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ya" value="16780730" c:type="CLUTTER_KEY_Sinh_ya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2104"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sleep" value="269025071" c:type="CLUTTER_KEY_Sleep">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2170"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SlowKeys_Enable"
+              value="65139"
+              c:type="CLUTTER_KEY_SlowKeys_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="306"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Spell" value="269025148" c:type="CLUTTER_KEY_Spell">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2242"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SplitScreen"
+              value="269025149"
+              c:type="CLUTTER_KEY_SplitScreen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2243"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Standby"
+              value="269025040"
+              c:type="CLUTTER_KEY_Standby">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2139"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Start" value="269025050" c:type="CLUTTER_KEY_Start">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2149"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_StickyKeys_Enable"
+              value="65141"
+              c:type="CLUTTER_KEY_StickyKeys_Enable">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="308"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Stop" value="269025064" c:type="CLUTTER_KEY_Stop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2163"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Subtitle"
+              value="269025178"
+              c:type="CLUTTER_KEY_Subtitle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2271"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_L" value="65515" c:type="CLUTTER_KEY_Super_L">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="202"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_R" value="65516" c:type="CLUTTER_KEY_Super_R">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="203"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Support"
+              value="269025150"
+              c:type="CLUTTER_KEY_Support">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2244"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Suspend"
+              value="269025191"
+              c:type="CLUTTER_KEY_Suspend">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2284"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_1"
+              value="269024769"
+              c:type="CLUTTER_KEY_Switch_VT_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2290"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_10"
+              value="269024778"
+              c:type="CLUTTER_KEY_Switch_VT_10">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2299"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_11"
+              value="269024779"
+              c:type="CLUTTER_KEY_Switch_VT_11">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2300"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_12"
+              value="269024780"
+              c:type="CLUTTER_KEY_Switch_VT_12">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2301"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_2"
+              value="269024770"
+              c:type="CLUTTER_KEY_Switch_VT_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2291"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_3"
+              value="269024771"
+              c:type="CLUTTER_KEY_Switch_VT_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2292"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_4"
+              value="269024772"
+              c:type="CLUTTER_KEY_Switch_VT_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2293"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_5"
+              value="269024773"
+              c:type="CLUTTER_KEY_Switch_VT_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2294"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_6"
+              value="269024774"
+              c:type="CLUTTER_KEY_Switch_VT_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2295"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_7"
+              value="269024775"
+              c:type="CLUTTER_KEY_Switch_VT_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2296"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_8"
+              value="269024776"
+              c:type="CLUTTER_KEY_Switch_VT_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2297"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_9"
+              value="269024777"
+              c:type="CLUTTER_KEY_Switch_VT_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2298"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sys_Req" value="65301" c:type="CLUTTER_KEY_Sys_Req">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="42"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_T" value="84" c:type="CLUTTER_KEY_T">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="433"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_THORN" value="222" c:type="CLUTTER_KEY_THORN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="541"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tab" value="65289" c:type="CLUTTER_KEY_Tab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="36"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tabovedot"
+              value="16785002"
+              c:type="CLUTTER_KEY_Tabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="708"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TaskPane"
+              value="269025151"
+              c:type="CLUTTER_KEY_TaskPane">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2245"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcaron" value="427" c:type="CLUTTER_KEY_Tcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="584"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcedilla" value="478" c:type="CLUTTER_KEY_Tcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="616"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Terminal"
+              value="269025152"
+              c:type="CLUTTER_KEY_Terminal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2246"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Terminate_Server"
+              value="65237"
+              c:type="CLUTTER_KEY_Terminate_Server">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="302"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_baht" value="3551" c:type="CLUTTER_KEY_Thai_baht">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1371"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_bobaimai"
+              value="3514"
+              c:type="CLUTTER_KEY_Thai_bobaimai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1337"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochan"
+              value="3496"
+              c:type="CLUTTER_KEY_Thai_chochan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1319"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochang"
+              value="3498"
+              c:type="CLUTTER_KEY_Thai_chochang">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1321"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_choching"
+              value="3497"
+              c:type="CLUTTER_KEY_Thai_choching">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1320"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochoe"
+              value="3500"
+              c:type="CLUTTER_KEY_Thai_chochoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1323"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dochada"
+              value="3502"
+              c:type="CLUTTER_KEY_Thai_dochada">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1325"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dodek"
+              value="3508"
+              c:type="CLUTTER_KEY_Thai_dodek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1331"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofa" value="3517" c:type="CLUTTER_KEY_Thai_fofa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1340"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofan"
+              value="3519"
+              c:type="CLUTTER_KEY_Thai_fofan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1342"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_hohip"
+              value="3531"
+              c:type="CLUTTER_KEY_Thai_hohip">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1354"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_honokhuk"
+              value="3534"
+              c:type="CLUTTER_KEY_Thai_honokhuk">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1357"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhai"
+              value="3490"
+              c:type="CLUTTER_KEY_Thai_khokhai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1313"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhon"
+              value="3493"
+              c:type="CLUTTER_KEY_Thai_khokhon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1316"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhuat"
+              value="3491"
+              c:type="CLUTTER_KEY_Thai_khokhuat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1314"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhwai"
+              value="3492"
+              c:type="CLUTTER_KEY_Thai_khokhwai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1315"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khorakhang"
+              value="3494"
+              c:type="CLUTTER_KEY_Thai_khorakhang">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1317"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_kokai"
+              value="3489"
+              c:type="CLUTTER_KEY_Thai_kokai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1312"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lakkhangyao"
+              value="3557"
+              c:type="CLUTTER_KEY_Thai_lakkhangyao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1377"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekchet"
+              value="3575"
+              c:type="CLUTTER_KEY_Thai_lekchet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1393"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekha"
+              value="3573"
+              c:type="CLUTTER_KEY_Thai_lekha">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1391"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekhok"
+              value="3574"
+              c:type="CLUTTER_KEY_Thai_lekhok">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1392"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekkao"
+              value="3577"
+              c:type="CLUTTER_KEY_Thai_lekkao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1395"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leknung"
+              value="3569"
+              c:type="CLUTTER_KEY_Thai_leknung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1387"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekpaet"
+              value="3576"
+              c:type="CLUTTER_KEY_Thai_lekpaet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1394"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksam"
+              value="3571"
+              c:type="CLUTTER_KEY_Thai_leksam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1389"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksi"
+              value="3572"
+              c:type="CLUTTER_KEY_Thai_leksi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1390"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksong"
+              value="3570"
+              c:type="CLUTTER_KEY_Thai_leksong">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1388"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksun"
+              value="3568"
+              c:type="CLUTTER_KEY_Thai_leksun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1386"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lochula"
+              value="3532"
+              c:type="CLUTTER_KEY_Thai_lochula">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1355"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_loling"
+              value="3525"
+              c:type="CLUTTER_KEY_Thai_loling">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1348"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lu" value="3526" c:type="CLUTTER_KEY_Thai_lu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1349"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maichattawa"
+              value="3563"
+              c:type="CLUTTER_KEY_Thai_maichattawa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1383"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiek"
+              value="3560"
+              c:type="CLUTTER_KEY_Thai_maiek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1380"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat"
+              value="3537"
+              c:type="CLUTTER_KEY_Thai_maihanakat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1360"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat_maitho"
+              value="3550"
+              c:type="CLUTTER_KEY_Thai_maihanakat_maitho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1370"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitaikhu"
+              value="3559"
+              c:type="CLUTTER_KEY_Thai_maitaikhu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1379"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitho"
+              value="3561"
+              c:type="CLUTTER_KEY_Thai_maitho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1381"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitri"
+              value="3562"
+              c:type="CLUTTER_KEY_Thai_maitri">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1382"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiyamok"
+              value="3558"
+              c:type="CLUTTER_KEY_Thai_maiyamok">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1378"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_moma" value="3521" c:type="CLUTTER_KEY_Thai_moma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1344"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ngongu"
+              value="3495"
+              c:type="CLUTTER_KEY_Thai_ngongu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1318"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nikhahit"
+              value="3565"
+              c:type="CLUTTER_KEY_Thai_nikhahit">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1385"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonen"
+              value="3507"
+              c:type="CLUTTER_KEY_Thai_nonen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1330"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonu" value="3513" c:type="CLUTTER_KEY_Thai_nonu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1336"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_oang" value="3533" c:type="CLUTTER_KEY_Thai_oang">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1356"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_paiyannoi"
+              value="3535"
+              c:type="CLUTTER_KEY_Thai_paiyannoi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1358"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phinthu"
+              value="3546"
+              c:type="CLUTTER_KEY_Thai_phinthu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1369"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophan"
+              value="3518"
+              c:type="CLUTTER_KEY_Thai_phophan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1341"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophung"
+              value="3516"
+              c:type="CLUTTER_KEY_Thai_phophung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1339"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phosamphao"
+              value="3520"
+              c:type="CLUTTER_KEY_Thai_phosamphao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1343"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_popla"
+              value="3515"
+              c:type="CLUTTER_KEY_Thai_popla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1338"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_rorua"
+              value="3523"
+              c:type="CLUTTER_KEY_Thai_rorua">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1346"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ru" value="3524" c:type="CLUTTER_KEY_Thai_ru">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1347"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraa"
+              value="3536"
+              c:type="CLUTTER_KEY_Thai_saraa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1359"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaa"
+              value="3538"
+              c:type="CLUTTER_KEY_Thai_saraaa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1361"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraae"
+              value="3553"
+              c:type="CLUTTER_KEY_Thai_saraae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1373"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimalai"
+              value="3556"
+              c:type="CLUTTER_KEY_Thai_saraaimaimalai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1376"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimuan"
+              value="3555"
+              c:type="CLUTTER_KEY_Thai_saraaimaimuan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1375"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraam"
+              value="3539"
+              c:type="CLUTTER_KEY_Thai_saraam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1362"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarae"
+              value="3552"
+              c:type="CLUTTER_KEY_Thai_sarae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1372"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarai"
+              value="3540"
+              c:type="CLUTTER_KEY_Thai_sarai">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1363"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraii"
+              value="3541"
+              c:type="CLUTTER_KEY_Thai_saraii">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1364"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarao"
+              value="3554"
+              c:type="CLUTTER_KEY_Thai_sarao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1374"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarau"
+              value="3544"
+              c:type="CLUTTER_KEY_Thai_sarau">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1367"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraue"
+              value="3542"
+              c:type="CLUTTER_KEY_Thai_saraue">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1365"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauee"
+              value="3543"
+              c:type="CLUTTER_KEY_Thai_sarauee">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1366"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauu"
+              value="3545"
+              c:type="CLUTTER_KEY_Thai_sarauu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1368"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sorusi"
+              value="3529"
+              c:type="CLUTTER_KEY_Thai_sorusi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1352"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosala"
+              value="3528"
+              c:type="CLUTTER_KEY_Thai_sosala">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1351"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_soso" value="3499" c:type="CLUTTER_KEY_Thai_soso">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1322"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosua"
+              value="3530"
+              c:type="CLUTTER_KEY_Thai_sosua">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1353"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thanthakhat"
+              value="3564"
+              c:type="CLUTTER_KEY_Thai_thanthakhat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1384"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thonangmontho"
+              value="3505"
+              c:type="CLUTTER_KEY_Thai_thonangmontho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1328"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thophuthao"
+              value="3506"
+              c:type="CLUTTER_KEY_Thai_thophuthao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1329"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothahan"
+              value="3511"
+              c:type="CLUTTER_KEY_Thai_thothahan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1334"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothan"
+              value="3504"
+              c:type="CLUTTER_KEY_Thai_thothan">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1327"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothong"
+              value="3512"
+              c:type="CLUTTER_KEY_Thai_thothong">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1335"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothung"
+              value="3510"
+              c:type="CLUTTER_KEY_Thai_thothung">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1333"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_topatak"
+              value="3503"
+              c:type="CLUTTER_KEY_Thai_topatak">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1326"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_totao"
+              value="3509"
+              c:type="CLUTTER_KEY_Thai_totao">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1332"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_wowaen"
+              value="3527"
+              c:type="CLUTTER_KEY_Thai_wowaen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1350"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoyak"
+              value="3522"
+              c:type="CLUTTER_KEY_Thai_yoyak">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1345"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoying"
+              value="3501"
+              c:type="CLUTTER_KEY_Thai_yoying">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1324"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thorn" value="222" c:type="CLUTTER_KEY_Thorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="542"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Time" value="269025183" c:type="CLUTTER_KEY_Time">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2276"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ToDoList"
+              value="269025055"
+              c:type="CLUTTER_KEY_ToDoList">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2154"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tools" value="269025153" c:type="CLUTTER_KEY_Tools">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2247"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TopMenu"
+              value="269025186"
+              c:type="CLUTTER_KEY_TopMenu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2279"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TouchpadOff"
+              value="269025201"
+              c:type="CLUTTER_KEY_TouchpadOff">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2288"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TouchpadOn"
+              value="269025200"
+              c:type="CLUTTER_KEY_TouchpadOn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2287"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TouchpadToggle"
+              value="269025193"
+              c:type="CLUTTER_KEY_TouchpadToggle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2286"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Touroku" value="65323" c:type="CLUTTER_KEY_Touroku">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="61"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Travel" value="269025154" c:type="CLUTTER_KEY_Travel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2248"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tslash" value="940" c:type="CLUTTER_KEY_Tslash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="663"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_U" value="85" c:type="CLUTTER_KEY_U">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="434"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_UWB" value="269025174" c:type="CLUTTER_KEY_UWB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2267"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uacute" value="218" c:type="CLUTTER_KEY_Uacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="537"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubelowdot"
+              value="16785124"
+              c:type="CLUTTER_KEY_Ubelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1718"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubreve" value="733" c:type="CLUTTER_KEY_Ubreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="648"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ucircumflex"
+              value="219"
+              c:type="CLUTTER_KEY_Ucircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="538"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udiaeresis"
+              value="220"
+              c:type="CLUTTER_KEY_Udiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="539"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udoubleacute"
+              value="475"
+              c:type="CLUTTER_KEY_Udoubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="615"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ugrave" value="217" c:type="CLUTTER_KEY_Ugrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="536"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhook" value="16785126" c:type="CLUTTER_KEY_Uhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1720"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorn" value="16777647" c:type="CLUTTER_KEY_Uhorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1740"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornacute"
+              value="16785128"
+              c:type="CLUTTER_KEY_Uhornacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1722"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornbelowdot"
+              value="16785136"
+              c:type="CLUTTER_KEY_Uhornbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1730"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorngrave"
+              value="16785130"
+              c:type="CLUTTER_KEY_Uhorngrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1724"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornhook"
+              value="16785132"
+              c:type="CLUTTER_KEY_Uhornhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1726"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorntilde"
+              value="16785134"
+              c:type="CLUTTER_KEY_Uhorntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1728"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_GHE_WITH_UPTURN"
+              value="1725"
+              c:type="CLUTTER_KEY_Ukrainian_GHE_WITH_UPTURN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="953"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_I"
+              value="1718"
+              c:type="CLUTTER_KEY_Ukrainian_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="941"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_IE"
+              value="1716"
+              c:type="CLUTTER_KEY_Ukrainian_IE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="938"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_YI"
+              value="1719"
+              c:type="CLUTTER_KEY_Ukrainian_YI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="943"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ghe_with_upturn"
+              value="1709"
+              c:type="CLUTTER_KEY_Ukrainian_ghe_with_upturn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="930"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_i"
+              value="1702"
+              c:type="CLUTTER_KEY_Ukrainian_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="918"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ie"
+              value="1700"
+              c:type="CLUTTER_KEY_Ukrainian_ie">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="915"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_yi"
+              value="1703"
+              c:type="CLUTTER_KEY_Ukrainian_yi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="920"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_I"
+              value="1718"
+              c:type="CLUTTER_KEY_Ukranian_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="942"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_JE"
+              value="1716"
+              c:type="CLUTTER_KEY_Ukranian_JE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="939"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_YI"
+              value="1719"
+              c:type="CLUTTER_KEY_Ukranian_YI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="944"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_i"
+              value="1702"
+              c:type="CLUTTER_KEY_Ukranian_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="919"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_je"
+              value="1700"
+              c:type="CLUTTER_KEY_Ukranian_je">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="916"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_yi"
+              value="1703"
+              c:type="CLUTTER_KEY_Ukranian_yi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="921"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Umacron" value="990" c:type="CLUTTER_KEY_Umacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="681"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Undo" value="65381" c:type="CLUTTER_KEY_Undo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="85"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ungrab" value="269024800" c:type="CLUTTER_KEY_Ungrab">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2302"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uogonek" value="985" c:type="CLUTTER_KEY_Uogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="679"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Up" value="65362" c:type="CLUTTER_KEY_Up">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="72"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uring" value="473" c:type="CLUTTER_KEY_Uring">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="614"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_User1KB"
+              value="269025157"
+              c:type="CLUTTER_KEY_User1KB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2250"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_User2KB"
+              value="269025158"
+              c:type="CLUTTER_KEY_User2KB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2251"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_UserPB" value="269025156" c:type="CLUTTER_KEY_UserPB">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2249"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Utilde" value="989" c:type="CLUTTER_KEY_Utilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="680"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_V" value="86" c:type="CLUTTER_KEY_V">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="435"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_VendorHome"
+              value="269025076"
+              c:type="CLUTTER_KEY_VendorHome">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2175"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Video" value="269025159" c:type="CLUTTER_KEY_Video">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2252"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_View" value="269025185" c:type="CLUTTER_KEY_View">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2278"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_VoidSymbol"
+              value="16777215"
+              c:type="CLUTTER_KEY_VoidSymbol">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="34"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_W" value="87" c:type="CLUTTER_KEY_W">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="436"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WLAN" value="269025173" c:type="CLUTTER_KEY_WLAN">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2266"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WWW" value="269025070" c:type="CLUTTER_KEY_WWW">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2169"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wacute" value="16785026" c:type="CLUTTER_KEY_Wacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="712"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WakeUp" value="269025067" c:type="CLUTTER_KEY_WakeUp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2166"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wcircumflex"
+              value="16777588"
+              c:type="CLUTTER_KEY_Wcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="692"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wdiaeresis"
+              value="16785028"
+              c:type="CLUTTER_KEY_Wdiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="714"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WebCam" value="269025167" c:type="CLUTTER_KEY_WebCam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2260"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wgrave" value="16785024" c:type="CLUTTER_KEY_Wgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="710"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WheelButton"
+              value="269025160"
+              c:type="CLUTTER_KEY_WheelButton">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2253"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WindowClear"
+              value="269025109"
+              c:type="CLUTTER_KEY_WindowClear">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2207"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WonSign" value="16785577" c:type="CLUTTER_KEY_WonSign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1751"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Word" value="269025161" c:type="CLUTTER_KEY_Word">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2254"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_X" value="88" c:type="CLUTTER_KEY_X">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="437"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Xabovedot"
+              value="16785034"
+              c:type="CLUTTER_KEY_Xabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1632"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Xfer" value="269025162" c:type="CLUTTER_KEY_Xfer">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2255"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Y" value="89" c:type="CLUTTER_KEY_Y">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="438"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yacute" value="221" c:type="CLUTTER_KEY_Yacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="540"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ybelowdot"
+              value="16785140"
+              c:type="CLUTTER_KEY_Ybelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1732"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ycircumflex"
+              value="16777590"
+              c:type="CLUTTER_KEY_Ycircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="694"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ydiaeresis"
+              value="5054"
+              c:type="CLUTTER_KEY_Ydiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="720"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yellow" value="269025189" c:type="CLUTTER_KEY_Yellow">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2282"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ygrave" value="16785138" c:type="CLUTTER_KEY_Ygrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="716"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yhook" value="16785142" c:type="CLUTTER_KEY_Yhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1734"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ytilde" value="16785144" c:type="CLUTTER_KEY_Ytilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1736"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Z" value="90" c:type="CLUTTER_KEY_Z">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="439"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zabovedot" value="431" c:type="CLUTTER_KEY_Zabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="587"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zacute" value="428" c:type="CLUTTER_KEY_Zacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="585"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zcaron" value="430" c:type="CLUTTER_KEY_Zcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="586"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zen_Koho" value="65341" c:type="CLUTTER_KEY_Zen_Koho">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="68"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku" value="65320" c:type="CLUTTER_KEY_Zenkaku">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="58"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku_Hankaku"
+              value="65322"
+              c:type="CLUTTER_KEY_Zenkaku_Hankaku">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="60"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ZoomIn" value="269025163" c:type="CLUTTER_KEY_ZoomIn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2256"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ZoomOut"
+              value="269025164"
+              c:type="CLUTTER_KEY_ZoomOut">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2257"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zstroke" value="16777653" c:type="CLUTTER_KEY_Zstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1634"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_a" value="97" c:type="CLUTTER_KEY_a">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="447"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aacute" value="225" c:type="CLUTTER_KEY_aacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="545"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abelowdot"
+              value="16785057"
+              c:type="CLUTTER_KEY_abelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1651"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abovedot" value="511" c:type="CLUTTER_KEY_abovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="633"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreve" value="483" c:type="CLUTTER_KEY_abreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="618"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreveacute"
+              value="16785071"
+              c:type="CLUTTER_KEY_abreveacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1665"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevebelowdot"
+              value="16785079"
+              c:type="CLUTTER_KEY_abrevebelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1673"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevegrave"
+              value="16785073"
+              c:type="CLUTTER_KEY_abrevegrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1667"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevehook"
+              value="16785075"
+              c:type="CLUTTER_KEY_abrevehook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1669"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevetilde"
+              value="16785077"
+              c:type="CLUTTER_KEY_abrevetilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1671"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflex"
+              value="226"
+              c:type="CLUTTER_KEY_acircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="546"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexacute"
+              value="16785061"
+              c:type="CLUTTER_KEY_acircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1655"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexbelowdot"
+              value="16785069"
+              c:type="CLUTTER_KEY_acircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1663"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexgrave"
+              value="16785063"
+              c:type="CLUTTER_KEY_acircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1657"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexhook"
+              value="16785065"
+              c:type="CLUTTER_KEY_acircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1659"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflextilde"
+              value="16785067"
+              c:type="CLUTTER_KEY_acircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1661"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acute" value="180" c:type="CLUTTER_KEY_acute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="497"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_adiaeresis"
+              value="228"
+              c:type="CLUTTER_KEY_adiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="548"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ae" value="230" c:type="CLUTTER_KEY_ae">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="550"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_agrave" value="224" c:type="CLUTTER_KEY_agrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="544"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ahook" value="16785059" c:type="CLUTTER_KEY_ahook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1653"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_amacron" value="992" c:type="CLUTTER_KEY_amacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="682"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ampersand" value="38" c:type="CLUTTER_KEY_ampersand">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="386"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aogonek" value="433" c:type="CLUTTER_KEY_aogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="588"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_apostrophe" value="39" c:type="CLUTTER_KEY_apostrophe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="387"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approxeq"
+              value="16785992"
+              c:type="CLUTTER_KEY_approxeq">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1783"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approximate"
+              value="2248"
+              c:type="CLUTTER_KEY_approximate">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1127"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aring" value="229" c:type="CLUTTER_KEY_aring">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="549"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciicircum"
+              value="94"
+              c:type="CLUTTER_KEY_asciicircum">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="443"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciitilde"
+              value="126"
+              c:type="CLUTTER_KEY_asciitilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="476"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asterisk" value="42" c:type="CLUTTER_KEY_asterisk">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="391"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_at" value="64" c:type="CLUTTER_KEY_at">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="413"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_atilde" value="227" c:type="CLUTTER_KEY_atilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="547"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_b" value="98" c:type="CLUTTER_KEY_b">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="448"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_babovedot"
+              value="16784899"
+              c:type="CLUTTER_KEY_babovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="697"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_backslash" value="92" c:type="CLUTTER_KEY_backslash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="441"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ballotcross"
+              value="2804"
+              c:type="CLUTTER_KEY_ballotcross">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1241"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bar" value="124" c:type="CLUTTER_KEY_bar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="474"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_because" value="16785973" c:type="CLUTTER_KEY_because">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1782"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_blank" value="2527" c:type="CLUTTER_KEY_blank">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1145"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botintegral"
+              value="2213"
+              c:type="CLUTTER_KEY_botintegral">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1100"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftparens"
+              value="2220"
+              c:type="CLUTTER_KEY_botleftparens">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1107"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsqbracket"
+              value="2216"
+              c:type="CLUTTER_KEY_botleftsqbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1103"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsummation"
+              value="2226"
+              c:type="CLUTTER_KEY_botleftsummation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1113"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightparens"
+              value="2222"
+              c:type="CLUTTER_KEY_botrightparens">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1109"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsqbracket"
+              value="2218"
+              c:type="CLUTTER_KEY_botrightsqbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1105"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsummation"
+              value="2230"
+              c:type="CLUTTER_KEY_botrightsummation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1117"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bott" value="2550" c:type="CLUTTER_KEY_bott">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1166"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botvertsummationconnector"
+              value="2228"
+              c:type="CLUTTER_KEY_botvertsummationconnector">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1115"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceleft" value="123" c:type="CLUTTER_KEY_braceleft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="473"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceright"
+              value="125"
+              c:type="CLUTTER_KEY_braceright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="475"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketleft"
+              value="91"
+              c:type="CLUTTER_KEY_bracketleft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="440"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketright"
+              value="93"
+              c:type="CLUTTER_KEY_bracketright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="442"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_blank"
+              value="16787456"
+              c:type="CLUTTER_KEY_braille_blank">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1797"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_1"
+              value="65521"
+              c:type="CLUTTER_KEY_braille_dot_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1787"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_10"
+              value="65530"
+              c:type="CLUTTER_KEY_braille_dot_10">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1796"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_2"
+              value="65522"
+              c:type="CLUTTER_KEY_braille_dot_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1788"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_3"
+              value="65523"
+              c:type="CLUTTER_KEY_braille_dot_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1789"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_4"
+              value="65524"
+              c:type="CLUTTER_KEY_braille_dot_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1790"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_5"
+              value="65525"
+              c:type="CLUTTER_KEY_braille_dot_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1791"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_6"
+              value="65526"
+              c:type="CLUTTER_KEY_braille_dot_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1792"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_7"
+              value="65527"
+              c:type="CLUTTER_KEY_braille_dot_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1793"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_8"
+              value="65528"
+              c:type="CLUTTER_KEY_braille_dot_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1794"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_9"
+              value="65529"
+              c:type="CLUTTER_KEY_braille_dot_9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1795"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1"
+              value="16787457"
+              c:type="CLUTTER_KEY_braille_dots_1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1798"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12"
+              value="16787459"
+              c:type="CLUTTER_KEY_braille_dots_12">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1800"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123"
+              value="16787463"
+              c:type="CLUTTER_KEY_braille_dots_123">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1804"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234"
+              value="16787471"
+              c:type="CLUTTER_KEY_braille_dots_1234">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1812"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345"
+              value="16787487"
+              c:type="CLUTTER_KEY_braille_dots_12345">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1828"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123456"
+              value="16787519"
+              c:type="CLUTTER_KEY_braille_dots_123456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1860"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234567"
+              value="16787583"
+              c:type="CLUTTER_KEY_braille_dots_1234567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1924"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345678"
+              value="16787711"
+              c:type="CLUTTER_KEY_braille_dots_12345678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2052"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234568"
+              value="16787647"
+              c:type="CLUTTER_KEY_braille_dots_1234568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1988"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123457"
+              value="16787551"
+              c:type="CLUTTER_KEY_braille_dots_123457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1892"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234578"
+              value="16787679"
+              c:type="CLUTTER_KEY_braille_dots_1234578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2020"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123458"
+              value="16787615"
+              c:type="CLUTTER_KEY_braille_dots_123458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1956"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12346"
+              value="16787503"
+              c:type="CLUTTER_KEY_braille_dots_12346">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1844"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123467"
+              value="16787567"
+              c:type="CLUTTER_KEY_braille_dots_123467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1908"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234678"
+              value="16787695"
+              c:type="CLUTTER_KEY_braille_dots_1234678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2036"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123468"
+              value="16787631"
+              c:type="CLUTTER_KEY_braille_dots_123468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1972"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12347"
+              value="16787535"
+              c:type="CLUTTER_KEY_braille_dots_12347">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1876"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123478"
+              value="16787663"
+              c:type="CLUTTER_KEY_braille_dots_123478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2004"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12348"
+              value="16787599"
+              c:type="CLUTTER_KEY_braille_dots_12348">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1940"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235"
+              value="16787479"
+              c:type="CLUTTER_KEY_braille_dots_1235">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1820"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12356"
+              value="16787511"
+              c:type="CLUTTER_KEY_braille_dots_12356">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1852"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123567"
+              value="16787575"
+              c:type="CLUTTER_KEY_braille_dots_123567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1916"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235678"
+              value="16787703"
+              c:type="CLUTTER_KEY_braille_dots_1235678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2044"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123568"
+              value="16787639"
+              c:type="CLUTTER_KEY_braille_dots_123568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1980"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12357"
+              value="16787543"
+              c:type="CLUTTER_KEY_braille_dots_12357">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1884"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123578"
+              value="16787671"
+              c:type="CLUTTER_KEY_braille_dots_123578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2012"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12358"
+              value="16787607"
+              c:type="CLUTTER_KEY_braille_dots_12358">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1948"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1236"
+              value="16787495"
+              c:type="CLUTTER_KEY_braille_dots_1236">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1836"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12367"
+              value="16787559"
+              c:type="CLUTTER_KEY_braille_dots_12367">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1900"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123678"
+              value="16787687"
+              c:type="CLUTTER_KEY_braille_dots_123678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2028"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12368"
+              value="16787623"
+              c:type="CLUTTER_KEY_braille_dots_12368">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1964"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1237"
+              value="16787527"
+              c:type="CLUTTER_KEY_braille_dots_1237">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1868"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12378"
+              value="16787655"
+              c:type="CLUTTER_KEY_braille_dots_12378">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1996"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1238"
+              value="16787591"
+              c:type="CLUTTER_KEY_braille_dots_1238">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1932"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124"
+              value="16787467"
+              c:type="CLUTTER_KEY_braille_dots_124">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1808"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245"
+              value="16787483"
+              c:type="CLUTTER_KEY_braille_dots_1245">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1824"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12456"
+              value="16787515"
+              c:type="CLUTTER_KEY_braille_dots_12456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1856"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124567"
+              value="16787579"
+              c:type="CLUTTER_KEY_braille_dots_124567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1920"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245678"
+              value="16787707"
+              c:type="CLUTTER_KEY_braille_dots_1245678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2048"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124568"
+              value="16787643"
+              c:type="CLUTTER_KEY_braille_dots_124568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1984"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12457"
+              value="16787547"
+              c:type="CLUTTER_KEY_braille_dots_12457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1888"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124578"
+              value="16787675"
+              c:type="CLUTTER_KEY_braille_dots_124578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2016"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12458"
+              value="16787611"
+              c:type="CLUTTER_KEY_braille_dots_12458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1952"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1246"
+              value="16787499"
+              c:type="CLUTTER_KEY_braille_dots_1246">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1840"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12467"
+              value="16787563"
+              c:type="CLUTTER_KEY_braille_dots_12467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1904"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124678"
+              value="16787691"
+              c:type="CLUTTER_KEY_braille_dots_124678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2032"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12468"
+              value="16787627"
+              c:type="CLUTTER_KEY_braille_dots_12468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1968"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1247"
+              value="16787531"
+              c:type="CLUTTER_KEY_braille_dots_1247">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1872"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12478"
+              value="16787659"
+              c:type="CLUTTER_KEY_braille_dots_12478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2000"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1248"
+              value="16787595"
+              c:type="CLUTTER_KEY_braille_dots_1248">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1936"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125"
+              value="16787475"
+              c:type="CLUTTER_KEY_braille_dots_125">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1816"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1256"
+              value="16787507"
+              c:type="CLUTTER_KEY_braille_dots_1256">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1848"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12567"
+              value="16787571"
+              c:type="CLUTTER_KEY_braille_dots_12567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1912"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125678"
+              value="16787699"
+              c:type="CLUTTER_KEY_braille_dots_125678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2040"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12568"
+              value="16787635"
+              c:type="CLUTTER_KEY_braille_dots_12568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1976"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1257"
+              value="16787539"
+              c:type="CLUTTER_KEY_braille_dots_1257">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1880"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12578"
+              value="16787667"
+              c:type="CLUTTER_KEY_braille_dots_12578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2008"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1258"
+              value="16787603"
+              c:type="CLUTTER_KEY_braille_dots_1258">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1944"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_126"
+              value="16787491"
+              c:type="CLUTTER_KEY_braille_dots_126">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1832"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1267"
+              value="16787555"
+              c:type="CLUTTER_KEY_braille_dots_1267">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1896"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12678"
+              value="16787683"
+              c:type="CLUTTER_KEY_braille_dots_12678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2024"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1268"
+              value="16787619"
+              c:type="CLUTTER_KEY_braille_dots_1268">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1960"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_127"
+              value="16787523"
+              c:type="CLUTTER_KEY_braille_dots_127">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1864"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1278"
+              value="16787651"
+              c:type="CLUTTER_KEY_braille_dots_1278">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1992"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_128"
+              value="16787587"
+              c:type="CLUTTER_KEY_braille_dots_128">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1928"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13"
+              value="16787461"
+              c:type="CLUTTER_KEY_braille_dots_13">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1802"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134"
+              value="16787469"
+              c:type="CLUTTER_KEY_braille_dots_134">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1810"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345"
+              value="16787485"
+              c:type="CLUTTER_KEY_braille_dots_1345">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1826"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13456"
+              value="16787517"
+              c:type="CLUTTER_KEY_braille_dots_13456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1858"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134567"
+              value="16787581"
+              c:type="CLUTTER_KEY_braille_dots_134567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1922"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345678"
+              value="16787709"
+              c:type="CLUTTER_KEY_braille_dots_1345678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2050"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134568"
+              value="16787645"
+              c:type="CLUTTER_KEY_braille_dots_134568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1986"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13457"
+              value="16787549"
+              c:type="CLUTTER_KEY_braille_dots_13457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1890"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134578"
+              value="16787677"
+              c:type="CLUTTER_KEY_braille_dots_134578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2018"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13458"
+              value="16787613"
+              c:type="CLUTTER_KEY_braille_dots_13458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1954"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1346"
+              value="16787501"
+              c:type="CLUTTER_KEY_braille_dots_1346">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1842"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13467"
+              value="16787565"
+              c:type="CLUTTER_KEY_braille_dots_13467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1906"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134678"
+              value="16787693"
+              c:type="CLUTTER_KEY_braille_dots_134678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2034"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13468"
+              value="16787629"
+              c:type="CLUTTER_KEY_braille_dots_13468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1970"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1347"
+              value="16787533"
+              c:type="CLUTTER_KEY_braille_dots_1347">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1874"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13478"
+              value="16787661"
+              c:type="CLUTTER_KEY_braille_dots_13478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2002"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1348"
+              value="16787597"
+              c:type="CLUTTER_KEY_braille_dots_1348">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1938"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135"
+              value="16787477"
+              c:type="CLUTTER_KEY_braille_dots_135">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1818"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1356"
+              value="16787509"
+              c:type="CLUTTER_KEY_braille_dots_1356">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1850"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13567"
+              value="16787573"
+              c:type="CLUTTER_KEY_braille_dots_13567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1914"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135678"
+              value="16787701"
+              c:type="CLUTTER_KEY_braille_dots_135678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2042"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13568"
+              value="16787637"
+              c:type="CLUTTER_KEY_braille_dots_13568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1978"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1357"
+              value="16787541"
+              c:type="CLUTTER_KEY_braille_dots_1357">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1882"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13578"
+              value="16787669"
+              c:type="CLUTTER_KEY_braille_dots_13578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2010"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1358"
+              value="16787605"
+              c:type="CLUTTER_KEY_braille_dots_1358">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1946"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_136"
+              value="16787493"
+              c:type="CLUTTER_KEY_braille_dots_136">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1834"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1367"
+              value="16787557"
+              c:type="CLUTTER_KEY_braille_dots_1367">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1898"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13678"
+              value="16787685"
+              c:type="CLUTTER_KEY_braille_dots_13678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2026"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1368"
+              value="16787621"
+              c:type="CLUTTER_KEY_braille_dots_1368">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1962"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_137"
+              value="16787525"
+              c:type="CLUTTER_KEY_braille_dots_137">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1866"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1378"
+              value="16787653"
+              c:type="CLUTTER_KEY_braille_dots_1378">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1994"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_138"
+              value="16787589"
+              c:type="CLUTTER_KEY_braille_dots_138">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1930"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14"
+              value="16787465"
+              c:type="CLUTTER_KEY_braille_dots_14">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1806"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145"
+              value="16787481"
+              c:type="CLUTTER_KEY_braille_dots_145">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1822"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1456"
+              value="16787513"
+              c:type="CLUTTER_KEY_braille_dots_1456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1854"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14567"
+              value="16787577"
+              c:type="CLUTTER_KEY_braille_dots_14567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1918"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145678"
+              value="16787705"
+              c:type="CLUTTER_KEY_braille_dots_145678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2046"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14568"
+              value="16787641"
+              c:type="CLUTTER_KEY_braille_dots_14568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1982"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1457"
+              value="16787545"
+              c:type="CLUTTER_KEY_braille_dots_1457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1886"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14578"
+              value="16787673"
+              c:type="CLUTTER_KEY_braille_dots_14578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2014"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1458"
+              value="16787609"
+              c:type="CLUTTER_KEY_braille_dots_1458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1950"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_146"
+              value="16787497"
+              c:type="CLUTTER_KEY_braille_dots_146">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1838"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1467"
+              value="16787561"
+              c:type="CLUTTER_KEY_braille_dots_1467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1902"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14678"
+              value="16787689"
+              c:type="CLUTTER_KEY_braille_dots_14678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2030"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1468"
+              value="16787625"
+              c:type="CLUTTER_KEY_braille_dots_1468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1966"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_147"
+              value="16787529"
+              c:type="CLUTTER_KEY_braille_dots_147">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1870"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1478"
+              value="16787657"
+              c:type="CLUTTER_KEY_braille_dots_1478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1998"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_148"
+              value="16787593"
+              c:type="CLUTTER_KEY_braille_dots_148">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1934"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15"
+              value="16787473"
+              c:type="CLUTTER_KEY_braille_dots_15">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1814"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_156"
+              value="16787505"
+              c:type="CLUTTER_KEY_braille_dots_156">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1846"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1567"
+              value="16787569"
+              c:type="CLUTTER_KEY_braille_dots_1567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1910"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15678"
+              value="16787697"
+              c:type="CLUTTER_KEY_braille_dots_15678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2038"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1568"
+              value="16787633"
+              c:type="CLUTTER_KEY_braille_dots_1568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1974"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_157"
+              value="16787537"
+              c:type="CLUTTER_KEY_braille_dots_157">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1878"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1578"
+              value="16787665"
+              c:type="CLUTTER_KEY_braille_dots_1578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2006"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_158"
+              value="16787601"
+              c:type="CLUTTER_KEY_braille_dots_158">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1942"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_16"
+              value="16787489"
+              c:type="CLUTTER_KEY_braille_dots_16">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1830"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_167"
+              value="16787553"
+              c:type="CLUTTER_KEY_braille_dots_167">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1894"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1678"
+              value="16787681"
+              c:type="CLUTTER_KEY_braille_dots_1678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2022"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_168"
+              value="16787617"
+              c:type="CLUTTER_KEY_braille_dots_168">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1958"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_17"
+              value="16787521"
+              c:type="CLUTTER_KEY_braille_dots_17">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1862"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_178"
+              value="16787649"
+              c:type="CLUTTER_KEY_braille_dots_178">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1990"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_18"
+              value="16787585"
+              c:type="CLUTTER_KEY_braille_dots_18">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1926"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2"
+              value="16787458"
+              c:type="CLUTTER_KEY_braille_dots_2">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1799"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23"
+              value="16787462"
+              c:type="CLUTTER_KEY_braille_dots_23">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1803"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234"
+              value="16787470"
+              c:type="CLUTTER_KEY_braille_dots_234">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1811"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345"
+              value="16787486"
+              c:type="CLUTTER_KEY_braille_dots_2345">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1827"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23456"
+              value="16787518"
+              c:type="CLUTTER_KEY_braille_dots_23456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1859"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234567"
+              value="16787582"
+              c:type="CLUTTER_KEY_braille_dots_234567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1923"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345678"
+              value="16787710"
+              c:type="CLUTTER_KEY_braille_dots_2345678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2051"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234568"
+              value="16787646"
+              c:type="CLUTTER_KEY_braille_dots_234568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1987"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23457"
+              value="16787550"
+              c:type="CLUTTER_KEY_braille_dots_23457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1891"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234578"
+              value="16787678"
+              c:type="CLUTTER_KEY_braille_dots_234578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2019"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23458"
+              value="16787614"
+              c:type="CLUTTER_KEY_braille_dots_23458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1955"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2346"
+              value="16787502"
+              c:type="CLUTTER_KEY_braille_dots_2346">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1843"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23467"
+              value="16787566"
+              c:type="CLUTTER_KEY_braille_dots_23467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1907"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234678"
+              value="16787694"
+              c:type="CLUTTER_KEY_braille_dots_234678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2035"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23468"
+              value="16787630"
+              c:type="CLUTTER_KEY_braille_dots_23468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1971"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2347"
+              value="16787534"
+              c:type="CLUTTER_KEY_braille_dots_2347">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1875"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23478"
+              value="16787662"
+              c:type="CLUTTER_KEY_braille_dots_23478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2003"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2348"
+              value="16787598"
+              c:type="CLUTTER_KEY_braille_dots_2348">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1939"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235"
+              value="16787478"
+              c:type="CLUTTER_KEY_braille_dots_235">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1819"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2356"
+              value="16787510"
+              c:type="CLUTTER_KEY_braille_dots_2356">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1851"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23567"
+              value="16787574"
+              c:type="CLUTTER_KEY_braille_dots_23567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1915"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235678"
+              value="16787702"
+              c:type="CLUTTER_KEY_braille_dots_235678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2043"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23568"
+              value="16787638"
+              c:type="CLUTTER_KEY_braille_dots_23568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1979"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2357"
+              value="16787542"
+              c:type="CLUTTER_KEY_braille_dots_2357">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1883"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23578"
+              value="16787670"
+              c:type="CLUTTER_KEY_braille_dots_23578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2011"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2358"
+              value="16787606"
+              c:type="CLUTTER_KEY_braille_dots_2358">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1947"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_236"
+              value="16787494"
+              c:type="CLUTTER_KEY_braille_dots_236">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1835"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2367"
+              value="16787558"
+              c:type="CLUTTER_KEY_braille_dots_2367">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1899"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23678"
+              value="16787686"
+              c:type="CLUTTER_KEY_braille_dots_23678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2027"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2368"
+              value="16787622"
+              c:type="CLUTTER_KEY_braille_dots_2368">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1963"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_237"
+              value="16787526"
+              c:type="CLUTTER_KEY_braille_dots_237">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1867"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2378"
+              value="16787654"
+              c:type="CLUTTER_KEY_braille_dots_2378">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1995"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_238"
+              value="16787590"
+              c:type="CLUTTER_KEY_braille_dots_238">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1931"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24"
+              value="16787466"
+              c:type="CLUTTER_KEY_braille_dots_24">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1807"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245"
+              value="16787482"
+              c:type="CLUTTER_KEY_braille_dots_245">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1823"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2456"
+              value="16787514"
+              c:type="CLUTTER_KEY_braille_dots_2456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1855"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24567"
+              value="16787578"
+              c:type="CLUTTER_KEY_braille_dots_24567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1919"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245678"
+              value="16787706"
+              c:type="CLUTTER_KEY_braille_dots_245678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2047"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24568"
+              value="16787642"
+              c:type="CLUTTER_KEY_braille_dots_24568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1983"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2457"
+              value="16787546"
+              c:type="CLUTTER_KEY_braille_dots_2457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1887"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24578"
+              value="16787674"
+              c:type="CLUTTER_KEY_braille_dots_24578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2015"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2458"
+              value="16787610"
+              c:type="CLUTTER_KEY_braille_dots_2458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1951"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_246"
+              value="16787498"
+              c:type="CLUTTER_KEY_braille_dots_246">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1839"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2467"
+              value="16787562"
+              c:type="CLUTTER_KEY_braille_dots_2467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1903"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24678"
+              value="16787690"
+              c:type="CLUTTER_KEY_braille_dots_24678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2031"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2468"
+              value="16787626"
+              c:type="CLUTTER_KEY_braille_dots_2468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1967"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_247"
+              value="16787530"
+              c:type="CLUTTER_KEY_braille_dots_247">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1871"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2478"
+              value="16787658"
+              c:type="CLUTTER_KEY_braille_dots_2478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1999"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_248"
+              value="16787594"
+              c:type="CLUTTER_KEY_braille_dots_248">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1935"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25"
+              value="16787474"
+              c:type="CLUTTER_KEY_braille_dots_25">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1815"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_256"
+              value="16787506"
+              c:type="CLUTTER_KEY_braille_dots_256">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1847"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2567"
+              value="16787570"
+              c:type="CLUTTER_KEY_braille_dots_2567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1911"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25678"
+              value="16787698"
+              c:type="CLUTTER_KEY_braille_dots_25678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2039"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2568"
+              value="16787634"
+              c:type="CLUTTER_KEY_braille_dots_2568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1975"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_257"
+              value="16787538"
+              c:type="CLUTTER_KEY_braille_dots_257">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1879"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2578"
+              value="16787666"
+              c:type="CLUTTER_KEY_braille_dots_2578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2007"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_258"
+              value="16787602"
+              c:type="CLUTTER_KEY_braille_dots_258">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1943"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_26"
+              value="16787490"
+              c:type="CLUTTER_KEY_braille_dots_26">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1831"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_267"
+              value="16787554"
+              c:type="CLUTTER_KEY_braille_dots_267">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1895"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2678"
+              value="16787682"
+              c:type="CLUTTER_KEY_braille_dots_2678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2023"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_268"
+              value="16787618"
+              c:type="CLUTTER_KEY_braille_dots_268">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1959"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_27"
+              value="16787522"
+              c:type="CLUTTER_KEY_braille_dots_27">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1863"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_278"
+              value="16787650"
+              c:type="CLUTTER_KEY_braille_dots_278">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1991"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_28"
+              value="16787586"
+              c:type="CLUTTER_KEY_braille_dots_28">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1927"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3"
+              value="16787460"
+              c:type="CLUTTER_KEY_braille_dots_3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1801"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34"
+              value="16787468"
+              c:type="CLUTTER_KEY_braille_dots_34">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1809"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345"
+              value="16787484"
+              c:type="CLUTTER_KEY_braille_dots_345">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1825"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3456"
+              value="16787516"
+              c:type="CLUTTER_KEY_braille_dots_3456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1857"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34567"
+              value="16787580"
+              c:type="CLUTTER_KEY_braille_dots_34567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1921"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345678"
+              value="16787708"
+              c:type="CLUTTER_KEY_braille_dots_345678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2049"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34568"
+              value="16787644"
+              c:type="CLUTTER_KEY_braille_dots_34568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1985"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3457"
+              value="16787548"
+              c:type="CLUTTER_KEY_braille_dots_3457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1889"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34578"
+              value="16787676"
+              c:type="CLUTTER_KEY_braille_dots_34578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2017"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3458"
+              value="16787612"
+              c:type="CLUTTER_KEY_braille_dots_3458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1953"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_346"
+              value="16787500"
+              c:type="CLUTTER_KEY_braille_dots_346">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1841"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3467"
+              value="16787564"
+              c:type="CLUTTER_KEY_braille_dots_3467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1905"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34678"
+              value="16787692"
+              c:type="CLUTTER_KEY_braille_dots_34678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2033"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3468"
+              value="16787628"
+              c:type="CLUTTER_KEY_braille_dots_3468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1969"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_347"
+              value="16787532"
+              c:type="CLUTTER_KEY_braille_dots_347">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1873"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3478"
+              value="16787660"
+              c:type="CLUTTER_KEY_braille_dots_3478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2001"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_348"
+              value="16787596"
+              c:type="CLUTTER_KEY_braille_dots_348">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1937"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35"
+              value="16787476"
+              c:type="CLUTTER_KEY_braille_dots_35">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1817"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_356"
+              value="16787508"
+              c:type="CLUTTER_KEY_braille_dots_356">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1849"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3567"
+              value="16787572"
+              c:type="CLUTTER_KEY_braille_dots_3567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1913"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35678"
+              value="16787700"
+              c:type="CLUTTER_KEY_braille_dots_35678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2041"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3568"
+              value="16787636"
+              c:type="CLUTTER_KEY_braille_dots_3568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1977"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_357"
+              value="16787540"
+              c:type="CLUTTER_KEY_braille_dots_357">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1881"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3578"
+              value="16787668"
+              c:type="CLUTTER_KEY_braille_dots_3578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2009"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_358"
+              value="16787604"
+              c:type="CLUTTER_KEY_braille_dots_358">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1945"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_36"
+              value="16787492"
+              c:type="CLUTTER_KEY_braille_dots_36">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1833"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_367"
+              value="16787556"
+              c:type="CLUTTER_KEY_braille_dots_367">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1897"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3678"
+              value="16787684"
+              c:type="CLUTTER_KEY_braille_dots_3678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2025"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_368"
+              value="16787620"
+              c:type="CLUTTER_KEY_braille_dots_368">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1961"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_37"
+              value="16787524"
+              c:type="CLUTTER_KEY_braille_dots_37">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1865"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_378"
+              value="16787652"
+              c:type="CLUTTER_KEY_braille_dots_378">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1993"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_38"
+              value="16787588"
+              c:type="CLUTTER_KEY_braille_dots_38">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1929"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4"
+              value="16787464"
+              c:type="CLUTTER_KEY_braille_dots_4">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1805"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45"
+              value="16787480"
+              c:type="CLUTTER_KEY_braille_dots_45">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1821"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_456"
+              value="16787512"
+              c:type="CLUTTER_KEY_braille_dots_456">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1853"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4567"
+              value="16787576"
+              c:type="CLUTTER_KEY_braille_dots_4567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1917"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45678"
+              value="16787704"
+              c:type="CLUTTER_KEY_braille_dots_45678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2045"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4568"
+              value="16787640"
+              c:type="CLUTTER_KEY_braille_dots_4568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1981"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_457"
+              value="16787544"
+              c:type="CLUTTER_KEY_braille_dots_457">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1885"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4578"
+              value="16787672"
+              c:type="CLUTTER_KEY_braille_dots_4578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2013"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_458"
+              value="16787608"
+              c:type="CLUTTER_KEY_braille_dots_458">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1949"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_46"
+              value="16787496"
+              c:type="CLUTTER_KEY_braille_dots_46">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1837"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_467"
+              value="16787560"
+              c:type="CLUTTER_KEY_braille_dots_467">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1901"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4678"
+              value="16787688"
+              c:type="CLUTTER_KEY_braille_dots_4678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2029"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_468"
+              value="16787624"
+              c:type="CLUTTER_KEY_braille_dots_468">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1965"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_47"
+              value="16787528"
+              c:type="CLUTTER_KEY_braille_dots_47">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1869"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_478"
+              value="16787656"
+              c:type="CLUTTER_KEY_braille_dots_478">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1997"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_48"
+              value="16787592"
+              c:type="CLUTTER_KEY_braille_dots_48">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1933"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5"
+              value="16787472"
+              c:type="CLUTTER_KEY_braille_dots_5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1813"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_56"
+              value="16787504"
+              c:type="CLUTTER_KEY_braille_dots_56">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1845"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_567"
+              value="16787568"
+              c:type="CLUTTER_KEY_braille_dots_567">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1909"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5678"
+              value="16787696"
+              c:type="CLUTTER_KEY_braille_dots_5678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2037"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_568"
+              value="16787632"
+              c:type="CLUTTER_KEY_braille_dots_568">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1973"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_57"
+              value="16787536"
+              c:type="CLUTTER_KEY_braille_dots_57">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1877"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_578"
+              value="16787664"
+              c:type="CLUTTER_KEY_braille_dots_578">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2005"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_58"
+              value="16787600"
+              c:type="CLUTTER_KEY_braille_dots_58">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1941"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_6"
+              value="16787488"
+              c:type="CLUTTER_KEY_braille_dots_6">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1829"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_67"
+              value="16787552"
+              c:type="CLUTTER_KEY_braille_dots_67">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1893"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_678"
+              value="16787680"
+              c:type="CLUTTER_KEY_braille_dots_678">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2021"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_68"
+              value="16787616"
+              c:type="CLUTTER_KEY_braille_dots_68">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1957"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_7"
+              value="16787520"
+              c:type="CLUTTER_KEY_braille_dots_7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1861"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_78"
+              value="16787648"
+              c:type="CLUTTER_KEY_braille_dots_78">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1989"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_8"
+              value="16787584"
+              c:type="CLUTTER_KEY_braille_dots_8">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1925"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_breve" value="418" c:type="CLUTTER_KEY_breve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="578"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_brokenbar" value="166" c:type="CLUTTER_KEY_brokenbar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="483"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_c" value="99" c:type="CLUTTER_KEY_c">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="449"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_c_h" value="65187" c:type="CLUTTER_KEY_c_h">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="347"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cabovedot" value="741" c:type="CLUTTER_KEY_cabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="650"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cacute" value="486" c:type="CLUTTER_KEY_cacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="620"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_careof" value="2744" c:type="CLUTTER_KEY_careof">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1190"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caret" value="2812" c:type="CLUTTER_KEY_caret">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1249"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caron" value="439" c:type="CLUTTER_KEY_caron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="593"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccaron" value="488" c:type="CLUTTER_KEY_ccaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="621"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccedilla" value="231" c:type="CLUTTER_KEY_ccedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="551"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccircumflex"
+              value="742"
+              c:type="CLUTTER_KEY_ccircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="651"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cedilla" value="184" c:type="CLUTTER_KEY_cedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="501"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cent" value="162" c:type="CLUTTER_KEY_cent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="479"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ch" value="65184" c:type="CLUTTER_KEY_ch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="344"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkerboard"
+              value="2529"
+              c:type="CLUTTER_KEY_checkerboard">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1147"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkmark" value="2803" c:type="CLUTTER_KEY_checkmark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1240"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_circle" value="3023" c:type="CLUTTER_KEY_circle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1265"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_club" value="2796" c:type="CLUTTER_KEY_club">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1234"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_colon" value="58" c:type="CLUTTER_KEY_colon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="407"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_comma" value="44" c:type="CLUTTER_KEY_comma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="393"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_containsas"
+              value="16785931"
+              c:type="CLUTTER_KEY_containsas">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1776"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_copyright" value="169" c:type="CLUTTER_KEY_copyright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="486"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cr" value="2532" c:type="CLUTTER_KEY_cr">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1150"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_crossinglines"
+              value="2542"
+              c:type="CLUTTER_KEY_crossinglines">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1158"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cuberoot"
+              value="16785947"
+              c:type="CLUTTER_KEY_cuberoot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1778"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_currency" value="164" c:type="CLUTTER_KEY_currency">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="481"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cursor" value="2815" c:type="CLUTTER_KEY_cursor">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1252"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_d" value="100" c:type="CLUTTER_KEY_d">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="450"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dabovedot"
+              value="16784907"
+              c:type="CLUTTER_KEY_dabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="699"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dagger" value="2801" c:type="CLUTTER_KEY_dagger">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1238"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dcaron" value="495" c:type="CLUTTER_KEY_dcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="624"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_A" value="65153" c:type="CLUTTER_KEY_dead_A">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="286"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_E" value="65155" c:type="CLUTTER_KEY_dead_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="288"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_I" value="65157" c:type="CLUTTER_KEY_dead_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="290"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_O" value="65159" c:type="CLUTTER_KEY_dead_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="292"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_U" value="65161" c:type="CLUTTER_KEY_dead_U">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="294"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_a" value="65152" c:type="CLUTTER_KEY_dead_a">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="285"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovecomma"
+              value="65124"
+              c:type="CLUTTER_KEY_dead_abovecomma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="267"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovedot"
+              value="65110"
+              c:type="CLUTTER_KEY_dead_abovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="253"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovereversedcomma"
+              value="65125"
+              c:type="CLUTTER_KEY_dead_abovereversedcomma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="269"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovering"
+              value="65112"
+              c:type="CLUTTER_KEY_dead_abovering">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="255"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_aboveverticalline"
+              value="65169"
+              c:type="CLUTTER_KEY_dead_aboveverticalline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="282"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_acute"
+              value="65105"
+              c:type="CLUTTER_KEY_dead_acute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="247"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowbreve"
+              value="65131"
+              c:type="CLUTTER_KEY_dead_belowbreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="276"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcircumflex"
+              value="65129"
+              c:type="CLUTTER_KEY_dead_belowcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="274"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcomma"
+              value="65134"
+              c:type="CLUTTER_KEY_dead_belowcomma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="279"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdiaeresis"
+              value="65132"
+              c:type="CLUTTER_KEY_dead_belowdiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="277"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdot"
+              value="65120"
+              c:type="CLUTTER_KEY_dead_belowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="263"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowmacron"
+              value="65128"
+              c:type="CLUTTER_KEY_dead_belowmacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="273"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowring"
+              value="65127"
+              c:type="CLUTTER_KEY_dead_belowring">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="272"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowtilde"
+              value="65130"
+              c:type="CLUTTER_KEY_dead_belowtilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="275"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowverticalline"
+              value="65170"
+              c:type="CLUTTER_KEY_dead_belowverticalline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="283"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_breve"
+              value="65109"
+              c:type="CLUTTER_KEY_dead_breve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="252"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_capital_schwa"
+              value="65163"
+              c:type="CLUTTER_KEY_dead_capital_schwa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="296"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_caron"
+              value="65114"
+              c:type="CLUTTER_KEY_dead_caron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="257"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_cedilla"
+              value="65115"
+              c:type="CLUTTER_KEY_dead_cedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="258"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_circumflex"
+              value="65106"
+              c:type="CLUTTER_KEY_dead_circumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="248"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_currency"
+              value="65135"
+              c:type="CLUTTER_KEY_dead_currency">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="280"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_dasia"
+              value="65125"
+              c:type="CLUTTER_KEY_dead_dasia">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="270"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_diaeresis"
+              value="65111"
+              c:type="CLUTTER_KEY_dead_diaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="254"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doubleacute"
+              value="65113"
+              c:type="CLUTTER_KEY_dead_doubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="256"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doublegrave"
+              value="65126"
+              c:type="CLUTTER_KEY_dead_doublegrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="271"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_e" value="65154" c:type="CLUTTER_KEY_dead_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="287"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_grave"
+              value="65104"
+              c:type="CLUTTER_KEY_dead_grave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="246"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_greek"
+              value="65164"
+              c:type="CLUTTER_KEY_dead_greek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="297"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_hook"
+              value="65121"
+              c:type="CLUTTER_KEY_dead_hook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="264"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_horn"
+              value="65122"
+              c:type="CLUTTER_KEY_dead_horn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="265"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_i" value="65156" c:type="CLUTTER_KEY_dead_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="289"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_invertedbreve"
+              value="65133"
+              c:type="CLUTTER_KEY_dead_invertedbreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="278"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_iota"
+              value="65117"
+              c:type="CLUTTER_KEY_dead_iota">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="260"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_longsolidusoverlay"
+              value="65171"
+              c:type="CLUTTER_KEY_dead_longsolidusoverlay">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="284"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_lowline"
+              value="65168"
+              c:type="CLUTTER_KEY_dead_lowline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="281"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_macron"
+              value="65108"
+              c:type="CLUTTER_KEY_dead_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="251"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_o" value="65158" c:type="CLUTTER_KEY_dead_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="291"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_ogonek"
+              value="65116"
+              c:type="CLUTTER_KEY_dead_ogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="259"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_perispomeni"
+              value="65107"
+              c:type="CLUTTER_KEY_dead_perispomeni">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="250"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_psili"
+              value="65124"
+              c:type="CLUTTER_KEY_dead_psili">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="268"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_semivoiced_sound"
+              value="65119"
+              c:type="CLUTTER_KEY_dead_semivoiced_sound">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="262"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_small_schwa"
+              value="65162"
+              c:type="CLUTTER_KEY_dead_small_schwa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="295"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_stroke"
+              value="65123"
+              c:type="CLUTTER_KEY_dead_stroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="266"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_tilde"
+              value="65107"
+              c:type="CLUTTER_KEY_dead_tilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="249"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_u" value="65160" c:type="CLUTTER_KEY_dead_u">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="293"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_voiced_sound"
+              value="65118"
+              c:type="CLUTTER_KEY_dead_voiced_sound">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="261"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_decimalpoint"
+              value="2749"
+              c:type="CLUTTER_KEY_decimalpoint">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1193"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_degree" value="176" c:type="CLUTTER_KEY_degree">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="493"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diaeresis" value="168" c:type="CLUTTER_KEY_diaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="485"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diamond" value="2797" c:type="CLUTTER_KEY_diamond">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1235"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_digitspace"
+              value="2725"
+              c:type="CLUTTER_KEY_digitspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1173"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dintegral"
+              value="16785964"
+              c:type="CLUTTER_KEY_dintegral">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1780"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_division" value="247" c:type="CLUTTER_KEY_division">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="567"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dollar" value="36" c:type="CLUTTER_KEY_dollar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="384"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubbaselinedot"
+              value="2735"
+              c:type="CLUTTER_KEY_doubbaselinedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1181"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubleacute"
+              value="445"
+              c:type="CLUTTER_KEY_doubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="598"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubledagger"
+              value="2802"
+              c:type="CLUTTER_KEY_doubledagger">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1239"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doublelowquotemark"
+              value="2814"
+              c:type="CLUTTER_KEY_doublelowquotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1251"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downarrow" value="2302" c:type="CLUTTER_KEY_downarrow">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1144"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downcaret" value="2984" c:type="CLUTTER_KEY_downcaret">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1255"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downshoe" value="3030" c:type="CLUTTER_KEY_downshoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1267"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downstile" value="3012" c:type="CLUTTER_KEY_downstile">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1260"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downtack" value="3010" c:type="CLUTTER_KEY_downtack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1258"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dstroke" value="496" c:type="CLUTTER_KEY_dstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="625"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_e" value="101" c:type="CLUTTER_KEY_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="451"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eabovedot" value="1004" c:type="CLUTTER_KEY_eabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="684"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eacute" value="233" c:type="CLUTTER_KEY_eacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="553"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ebelowdot"
+              value="16785081"
+              c:type="CLUTTER_KEY_ebelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1675"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecaron" value="492" c:type="CLUTTER_KEY_ecaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="623"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflex"
+              value="234"
+              c:type="CLUTTER_KEY_ecircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="554"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexacute"
+              value="16785087"
+              c:type="CLUTTER_KEY_ecircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1681"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexbelowdot"
+              value="16785095"
+              c:type="CLUTTER_KEY_ecircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1689"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexgrave"
+              value="16785089"
+              c:type="CLUTTER_KEY_ecircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1683"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexhook"
+              value="16785091"
+              c:type="CLUTTER_KEY_ecircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1685"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflextilde"
+              value="16785093"
+              c:type="CLUTTER_KEY_ecircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1687"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ediaeresis"
+              value="235"
+              c:type="CLUTTER_KEY_ediaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="555"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_egrave" value="232" c:type="CLUTTER_KEY_egrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="552"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ehook" value="16785083" c:type="CLUTTER_KEY_ehook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1677"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsubscript"
+              value="16785544"
+              c:type="CLUTTER_KEY_eightsubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1770"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsuperior"
+              value="16785528"
+              c:type="CLUTTER_KEY_eightsuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1760"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_elementof"
+              value="16785928"
+              c:type="CLUTTER_KEY_elementof">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1774"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ellipsis" value="2734" c:type="CLUTTER_KEY_ellipsis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1180"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em3space" value="2723" c:type="CLUTTER_KEY_em3space">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1171"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em4space" value="2724" c:type="CLUTTER_KEY_em4space">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1172"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emacron" value="954" c:type="CLUTTER_KEY_emacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="667"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emdash" value="2729" c:type="CLUTTER_KEY_emdash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1177"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledcircle"
+              value="2782"
+              c:type="CLUTTER_KEY_emfilledcircle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1220"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledrect"
+              value="2783"
+              c:type="CLUTTER_KEY_emfilledrect">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1221"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopencircle"
+              value="2766"
+              c:type="CLUTTER_KEY_emopencircle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1205"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopenrectangle"
+              value="2767"
+              c:type="CLUTTER_KEY_emopenrectangle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1206"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emptyset"
+              value="16785925"
+              c:type="CLUTTER_KEY_emptyset">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1773"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emspace" value="2721" c:type="CLUTTER_KEY_emspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1169"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_endash" value="2730" c:type="CLUTTER_KEY_endash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1178"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledcircbullet"
+              value="2790"
+              c:type="CLUTTER_KEY_enfilledcircbullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1228"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledsqbullet"
+              value="2791"
+              c:type="CLUTTER_KEY_enfilledsqbullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1229"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eng" value="959" c:type="CLUTTER_KEY_eng">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="671"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopencircbullet"
+              value="2784"
+              c:type="CLUTTER_KEY_enopencircbullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1222"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopensquarebullet"
+              value="2785"
+              c:type="CLUTTER_KEY_enopensquarebullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1223"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enspace" value="2722" c:type="CLUTTER_KEY_enspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1170"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eogonek" value="490" c:type="CLUTTER_KEY_eogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="622"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_equal" value="61" c:type="CLUTTER_KEY_equal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="410"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eth" value="240" c:type="CLUTTER_KEY_eth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="560"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_etilde" value="16785085" c:type="CLUTTER_KEY_etilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1679"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclam" value="33" c:type="CLUTTER_KEY_exclam">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="381"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclamdown"
+              value="161"
+              c:type="CLUTTER_KEY_exclamdown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="478"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ezh" value="16777874" c:type="CLUTTER_KEY_ezh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1647"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_f" value="102" c:type="CLUTTER_KEY_f">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="452"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fabovedot"
+              value="16784927"
+              c:type="CLUTTER_KEY_fabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="701"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_femalesymbol"
+              value="2808"
+              c:type="CLUTTER_KEY_femalesymbol">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1245"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ff" value="2531" c:type="CLUTTER_KEY_ff">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1149"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_figdash" value="2747" c:type="CLUTTER_KEY_figdash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1191"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledlefttribullet"
+              value="2780"
+              c:type="CLUTTER_KEY_filledlefttribullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1218"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrectbullet"
+              value="2779"
+              c:type="CLUTTER_KEY_filledrectbullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1217"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrighttribullet"
+              value="2781"
+              c:type="CLUTTER_KEY_filledrighttribullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1219"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletdown"
+              value="2793"
+              c:type="CLUTTER_KEY_filledtribulletdown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1231"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletup"
+              value="2792"
+              c:type="CLUTTER_KEY_filledtribulletup">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1230"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fiveeighths"
+              value="2757"
+              c:type="CLUTTER_KEY_fiveeighths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1198"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesixths"
+              value="2743"
+              c:type="CLUTTER_KEY_fivesixths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1189"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesubscript"
+              value="16785541"
+              c:type="CLUTTER_KEY_fivesubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1767"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesuperior"
+              value="16785525"
+              c:type="CLUTTER_KEY_fivesuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1757"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourfifths"
+              value="2741"
+              c:type="CLUTTER_KEY_fourfifths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1187"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursubscript"
+              value="16785540"
+              c:type="CLUTTER_KEY_foursubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1766"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursuperior"
+              value="16785524"
+              c:type="CLUTTER_KEY_foursuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1756"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourthroot"
+              value="16785948"
+              c:type="CLUTTER_KEY_fourthroot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1779"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_function" value="2294" c:type="CLUTTER_KEY_function">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1140"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_g" value="103" c:type="CLUTTER_KEY_g">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="453"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gabovedot" value="757" c:type="CLUTTER_KEY_gabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="652"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gbreve" value="699" c:type="CLUTTER_KEY_gbreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="642"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcaron" value="16777703" c:type="CLUTTER_KEY_gcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1641"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcedilla" value="955" c:type="CLUTTER_KEY_gcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="668"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcircumflex"
+              value="760"
+              c:type="CLUTTER_KEY_gcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="653"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_grave" value="96" c:type="CLUTTER_KEY_grave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="445"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greater" value="62" c:type="CLUTTER_KEY_greater">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="411"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greaterthanequal"
+              value="2238"
+              c:type="CLUTTER_KEY_greaterthanequal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1121"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotleft"
+              value="171"
+              c:type="CLUTTER_KEY_guillemotleft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="488"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotright"
+              value="187"
+              c:type="CLUTTER_KEY_guillemotright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="504"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_h" value="104" c:type="CLUTTER_KEY_h">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="454"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hairspace" value="2728" c:type="CLUTTER_KEY_hairspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1176"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hcircumflex"
+              value="694"
+              c:type="CLUTTER_KEY_hcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="640"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_heart" value="2798" c:type="CLUTTER_KEY_heart">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1236"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_aleph"
+              value="3296"
+              c:type="CLUTTER_KEY_hebrew_aleph">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1273"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_ayin"
+              value="3314"
+              c:type="CLUTTER_KEY_hebrew_ayin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1298"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_bet"
+              value="3297"
+              c:type="CLUTTER_KEY_hebrew_bet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1274"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_beth"
+              value="3297"
+              c:type="CLUTTER_KEY_hebrew_beth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1275"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_chet"
+              value="3303"
+              c:type="CLUTTER_KEY_hebrew_chet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1284"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_dalet"
+              value="3299"
+              c:type="CLUTTER_KEY_hebrew_dalet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1278"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_daleth"
+              value="3299"
+              c:type="CLUTTER_KEY_hebrew_daleth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1279"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_doublelowline"
+              value="3295"
+              c:type="CLUTTER_KEY_hebrew_doublelowline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1272"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalkaph"
+              value="3306"
+              c:type="CLUTTER_KEY_hebrew_finalkaph">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1289"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalmem"
+              value="3309"
+              c:type="CLUTTER_KEY_hebrew_finalmem">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1292"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalnun"
+              value="3311"
+              c:type="CLUTTER_KEY_hebrew_finalnun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1294"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalpe"
+              value="3315"
+              c:type="CLUTTER_KEY_hebrew_finalpe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1299"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzade"
+              value="3317"
+              c:type="CLUTTER_KEY_hebrew_finalzade">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1301"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzadi"
+              value="3317"
+              c:type="CLUTTER_KEY_hebrew_finalzadi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1302"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimel"
+              value="3298"
+              c:type="CLUTTER_KEY_hebrew_gimel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1276"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimmel"
+              value="3298"
+              c:type="CLUTTER_KEY_hebrew_gimmel">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1277"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_he" value="3300" c:type="CLUTTER_KEY_hebrew_he">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1280"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_het"
+              value="3303"
+              c:type="CLUTTER_KEY_hebrew_het">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1285"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kaph"
+              value="3307"
+              c:type="CLUTTER_KEY_hebrew_kaph">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1290"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kuf"
+              value="3319"
+              c:type="CLUTTER_KEY_hebrew_kuf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1306"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_lamed"
+              value="3308"
+              c:type="CLUTTER_KEY_hebrew_lamed">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1291"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_mem"
+              value="3310"
+              c:type="CLUTTER_KEY_hebrew_mem">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1293"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_nun"
+              value="3312"
+              c:type="CLUTTER_KEY_hebrew_nun">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1295"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_pe" value="3316" c:type="CLUTTER_KEY_hebrew_pe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1300"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_qoph"
+              value="3319"
+              c:type="CLUTTER_KEY_hebrew_qoph">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1305"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_resh"
+              value="3320"
+              c:type="CLUTTER_KEY_hebrew_resh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1307"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samech"
+              value="3313"
+              c:type="CLUTTER_KEY_hebrew_samech">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1296"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samekh"
+              value="3313"
+              c:type="CLUTTER_KEY_hebrew_samekh">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1297"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_shin"
+              value="3321"
+              c:type="CLUTTER_KEY_hebrew_shin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1308"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taf"
+              value="3322"
+              c:type="CLUTTER_KEY_hebrew_taf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1310"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taw"
+              value="3322"
+              c:type="CLUTTER_KEY_hebrew_taw">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1309"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_tet"
+              value="3304"
+              c:type="CLUTTER_KEY_hebrew_tet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1286"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_teth"
+              value="3304"
+              c:type="CLUTTER_KEY_hebrew_teth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1287"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_waw"
+              value="3301"
+              c:type="CLUTTER_KEY_hebrew_waw">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1281"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_yod"
+              value="3305"
+              c:type="CLUTTER_KEY_hebrew_yod">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1288"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zade"
+              value="3318"
+              c:type="CLUTTER_KEY_hebrew_zade">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1303"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zadi"
+              value="3318"
+              c:type="CLUTTER_KEY_hebrew_zadi">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1304"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zain"
+              value="3302"
+              c:type="CLUTTER_KEY_hebrew_zain">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1282"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zayin"
+              value="3302"
+              c:type="CLUTTER_KEY_hebrew_zayin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1283"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hexagram" value="2778" c:type="CLUTTER_KEY_hexagram">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1216"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizconnector"
+              value="2211"
+              c:type="CLUTTER_KEY_horizconnector">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1098"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan1"
+              value="2543"
+              c:type="CLUTTER_KEY_horizlinescan1">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1159"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan3"
+              value="2544"
+              c:type="CLUTTER_KEY_horizlinescan3">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1160"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan5"
+              value="2545"
+              c:type="CLUTTER_KEY_horizlinescan5">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1161"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan7"
+              value="2546"
+              c:type="CLUTTER_KEY_horizlinescan7">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1162"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan9"
+              value="2547"
+              c:type="CLUTTER_KEY_horizlinescan9">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1163"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hstroke" value="689" c:type="CLUTTER_KEY_hstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="639"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ht" value="2530" c:type="CLUTTER_KEY_ht">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1148"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hyphen" value="173" c:type="CLUTTER_KEY_hyphen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="490"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_i" value="105" c:type="CLUTTER_KEY_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="455"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iTouch" value="269025120" c:type="CLUTTER_KEY_iTouch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="2218"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iacute" value="237" c:type="CLUTTER_KEY_iacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="557"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibelowdot"
+              value="16785099"
+              c:type="CLUTTER_KEY_ibelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1693"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibreve" value="16777517" c:type="CLUTTER_KEY_ibreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1639"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_icircumflex"
+              value="238"
+              c:type="CLUTTER_KEY_icircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="558"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_identical" value="2255" c:type="CLUTTER_KEY_identical">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1131"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idiaeresis"
+              value="239"
+              c:type="CLUTTER_KEY_idiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="559"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idotless" value="697" c:type="CLUTTER_KEY_idotless">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="641"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ifonlyif" value="2253" c:type="CLUTTER_KEY_ifonlyif">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1129"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_igrave" value="236" c:type="CLUTTER_KEY_igrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="556"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ihook" value="16785097" c:type="CLUTTER_KEY_ihook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1691"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_imacron" value="1007" c:type="CLUTTER_KEY_imacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="685"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_implies" value="2254" c:type="CLUTTER_KEY_implies">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1130"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includedin"
+              value="2266"
+              c:type="CLUTTER_KEY_includedin">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1133"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includes" value="2267" c:type="CLUTTER_KEY_includes">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1134"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_infinity" value="2242" c:type="CLUTTER_KEY_infinity">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1125"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_integral" value="2239" c:type="CLUTTER_KEY_integral">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1122"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_intersection"
+              value="2268"
+              c:type="CLUTTER_KEY_intersection">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1135"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iogonek" value="999" c:type="CLUTTER_KEY_iogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="683"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_itilde" value="949" c:type="CLUTTER_KEY_itilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="665"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_j" value="106" c:type="CLUTTER_KEY_j">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="456"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jcircumflex"
+              value="700"
+              c:type="CLUTTER_KEY_jcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="643"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jot" value="3018" c:type="CLUTTER_KEY_jot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1262"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_k" value="107" c:type="CLUTTER_KEY_k">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="457"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_A" value="1201" c:type="CLUTTER_KEY_kana_A">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="740"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_CHI" value="1217" c:type="CLUTTER_KEY_kana_CHI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="756"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_E" value="1204" c:type="CLUTTER_KEY_kana_E">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="743"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_FU" value="1228" c:type="CLUTTER_KEY_kana_FU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="769"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HA" value="1226" c:type="CLUTTER_KEY_kana_HA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="767"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HE" value="1229" c:type="CLUTTER_KEY_kana_HE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="771"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HI" value="1227" c:type="CLUTTER_KEY_kana_HI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="768"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HO" value="1230" c:type="CLUTTER_KEY_kana_HO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="772"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HU" value="1228" c:type="CLUTTER_KEY_kana_HU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="770"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_I" value="1202" c:type="CLUTTER_KEY_kana_I">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="741"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KA" value="1206" c:type="CLUTTER_KEY_kana_KA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="745"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KE" value="1209" c:type="CLUTTER_KEY_kana_KE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="748"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KI" value="1207" c:type="CLUTTER_KEY_kana_KI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="746"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KO" value="1210" c:type="CLUTTER_KEY_kana_KO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="749"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KU" value="1208" c:type="CLUTTER_KEY_kana_KU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="747"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MA" value="1231" c:type="CLUTTER_KEY_kana_MA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="773"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ME" value="1234" c:type="CLUTTER_KEY_kana_ME">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="776"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MI" value="1232" c:type="CLUTTER_KEY_kana_MI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="774"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MO" value="1235" c:type="CLUTTER_KEY_kana_MO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="777"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MU" value="1233" c:type="CLUTTER_KEY_kana_MU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="775"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_N" value="1245" c:type="CLUTTER_KEY_kana_N">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="787"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NA" value="1221" c:type="CLUTTER_KEY_kana_NA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="762"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NE" value="1224" c:type="CLUTTER_KEY_kana_NE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="765"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NI" value="1222" c:type="CLUTTER_KEY_kana_NI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="763"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NO" value="1225" c:type="CLUTTER_KEY_kana_NO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="766"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NU" value="1223" c:type="CLUTTER_KEY_kana_NU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="764"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_O" value="1205" c:type="CLUTTER_KEY_kana_O">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="744"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RA" value="1239" c:type="CLUTTER_KEY_kana_RA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="781"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RE" value="1242" c:type="CLUTTER_KEY_kana_RE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="784"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RI" value="1240" c:type="CLUTTER_KEY_kana_RI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="782"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RO" value="1243" c:type="CLUTTER_KEY_kana_RO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="785"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RU" value="1241" c:type="CLUTTER_KEY_kana_RU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="783"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SA" value="1211" c:type="CLUTTER_KEY_kana_SA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="750"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SE" value="1214" c:type="CLUTTER_KEY_kana_SE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="753"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SHI" value="1212" c:type="CLUTTER_KEY_kana_SHI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="751"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SO" value="1215" c:type="CLUTTER_KEY_kana_SO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="754"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SU" value="1213" c:type="CLUTTER_KEY_kana_SU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="752"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TA" value="1216" c:type="CLUTTER_KEY_kana_TA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="755"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TE" value="1219" c:type="CLUTTER_KEY_kana_TE">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="760"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TI" value="1217" c:type="CLUTTER_KEY_kana_TI">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="757"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TO" value="1220" c:type="CLUTTER_KEY_kana_TO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="761"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TSU" value="1218" c:type="CLUTTER_KEY_kana_TSU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="758"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TU" value="1218" c:type="CLUTTER_KEY_kana_TU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="759"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_U" value="1203" c:type="CLUTTER_KEY_kana_U">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="742"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WA" value="1244" c:type="CLUTTER_KEY_kana_WA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="786"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WO" value="1190" c:type="CLUTTER_KEY_kana_WO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="728"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YA" value="1236" c:type="CLUTTER_KEY_kana_YA">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="778"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YO" value="1238" c:type="CLUTTER_KEY_kana_YO">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="780"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YU" value="1237" c:type="CLUTTER_KEY_kana_YU">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="779"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_a" value="1191" c:type="CLUTTER_KEY_kana_a">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="729"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_closingbracket"
+              value="1187"
+              c:type="CLUTTER_KEY_kana_closingbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="724"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_comma"
+              value="1188"
+              c:type="CLUTTER_KEY_kana_comma">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="725"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_conjunctive"
+              value="1189"
+              c:type="CLUTTER_KEY_kana_conjunctive">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="726"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_e" value="1194" c:type="CLUTTER_KEY_kana_e">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="732"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_fullstop"
+              value="1185"
+              c:type="CLUTTER_KEY_kana_fullstop">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="722"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_i" value="1192" c:type="CLUTTER_KEY_kana_i">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="730"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_middledot"
+              value="1189"
+              c:type="CLUTTER_KEY_kana_middledot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="727"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_o" value="1195" c:type="CLUTTER_KEY_kana_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="733"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_openingbracket"
+              value="1186"
+              c:type="CLUTTER_KEY_kana_openingbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="723"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_kana_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="790"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tsu" value="1199" c:type="CLUTTER_KEY_kana_tsu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="737"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tu" value="1199" c:type="CLUTTER_KEY_kana_tu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="738"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_u" value="1193" c:type="CLUTTER_KEY_kana_u">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="731"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ya" value="1196" c:type="CLUTTER_KEY_kana_ya">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="734"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yo" value="1198" c:type="CLUTTER_KEY_kana_yo">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="736"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yu" value="1197" c:type="CLUTTER_KEY_kana_yu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="735"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kappa" value="930" c:type="CLUTTER_KEY_kappa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="657"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kcedilla" value="1011" c:type="CLUTTER_KEY_kcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="688"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kra" value="930" c:type="CLUTTER_KEY_kra">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="656"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_l" value="108" c:type="CLUTTER_KEY_l">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="458"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lacute" value="485" c:type="CLUTTER_KEY_lacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="619"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_latincross"
+              value="2777"
+              c:type="CLUTTER_KEY_latincross">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1215"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lbelowdot"
+              value="16784951"
+              c:type="CLUTTER_KEY_lbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1649"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcaron" value="437" c:type="CLUTTER_KEY_lcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="591"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcedilla" value="950" c:type="CLUTTER_KEY_lcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="666"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftanglebracket"
+              value="2748"
+              c:type="CLUTTER_KEY_leftanglebracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1192"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftarrow" value="2299" c:type="CLUTTER_KEY_leftarrow">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1141"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftcaret" value="2979" c:type="CLUTTER_KEY_leftcaret">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1253"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftdoublequotemark"
+              value="2770"
+              c:type="CLUTTER_KEY_leftdoublequotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1209"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftmiddlecurlybrace"
+              value="2223"
+              c:type="CLUTTER_KEY_leftmiddlecurlybrace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1110"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftopentriangle"
+              value="2764"
+              c:type="CLUTTER_KEY_leftopentriangle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1203"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftpointer"
+              value="2794"
+              c:type="CLUTTER_KEY_leftpointer">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1232"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftradical"
+              value="2209"
+              c:type="CLUTTER_KEY_leftradical">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1096"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftshoe" value="3034" c:type="CLUTTER_KEY_leftshoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1269"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftsinglequotemark"
+              value="2768"
+              c:type="CLUTTER_KEY_leftsinglequotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1207"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftt" value="2548" c:type="CLUTTER_KEY_leftt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1164"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lefttack" value="3036" c:type="CLUTTER_KEY_lefttack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1270"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_less" value="60" c:type="CLUTTER_KEY_less">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="409"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lessthanequal"
+              value="2236"
+              c:type="CLUTTER_KEY_lessthanequal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1119"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lf" value="2533" c:type="CLUTTER_KEY_lf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1151"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicaland"
+              value="2270"
+              c:type="CLUTTER_KEY_logicaland">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1137"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicalor" value="2271" c:type="CLUTTER_KEY_logicalor">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1138"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowleftcorner"
+              value="2541"
+              c:type="CLUTTER_KEY_lowleftcorner">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1157"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowrightcorner"
+              value="2538"
+              c:type="CLUTTER_KEY_lowrightcorner">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1154"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lstroke" value="435" c:type="CLUTTER_KEY_lstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="590"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_m" value="109" c:type="CLUTTER_KEY_m">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="459"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mabovedot"
+              value="16784961"
+              c:type="CLUTTER_KEY_mabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="703"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_macron" value="175" c:type="CLUTTER_KEY_macron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="492"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_malesymbol"
+              value="2807"
+              c:type="CLUTTER_KEY_malesymbol">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1244"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_maltesecross"
+              value="2800"
+              c:type="CLUTTER_KEY_maltesecross">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1237"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_marker" value="2751" c:type="CLUTTER_KEY_marker">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1195"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_masculine" value="186" c:type="CLUTTER_KEY_masculine">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="503"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minus" value="45" c:type="CLUTTER_KEY_minus">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="394"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minutes" value="2774" c:type="CLUTTER_KEY_minutes">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1213"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mu" value="181" c:type="CLUTTER_KEY_mu">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="498"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_multiply" value="215" c:type="CLUTTER_KEY_multiply">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="533"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalflat"
+              value="2806"
+              c:type="CLUTTER_KEY_musicalflat">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1243"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalsharp"
+              value="2805"
+              c:type="CLUTTER_KEY_musicalsharp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1242"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_n" value="110" c:type="CLUTTER_KEY_n">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="460"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nabla" value="2245" c:type="CLUTTER_KEY_nabla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1126"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nacute" value="497" c:type="CLUTTER_KEY_nacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="626"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncaron" value="498" c:type="CLUTTER_KEY_ncaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="627"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncedilla" value="1009" c:type="CLUTTER_KEY_ncedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="686"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesubscript"
+              value="16785545"
+              c:type="CLUTTER_KEY_ninesubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1771"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesuperior"
+              value="16785529"
+              c:type="CLUTTER_KEY_ninesuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1761"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nl" value="2536" c:type="CLUTTER_KEY_nl">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1152"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nobreakspace"
+              value="160"
+              c:type="CLUTTER_KEY_nobreakspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="477"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notapproxeq"
+              value="16785991"
+              c:type="CLUTTER_KEY_notapproxeq">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1784"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notelementof"
+              value="16785929"
+              c:type="CLUTTER_KEY_notelementof">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1775"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notequal" value="2237" c:type="CLUTTER_KEY_notequal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1120"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notidentical"
+              value="16786018"
+              c:type="CLUTTER_KEY_notidentical">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1785"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notsign" value="172" c:type="CLUTTER_KEY_notsign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="489"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ntilde" value="241" c:type="CLUTTER_KEY_ntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="561"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numbersign" value="35" c:type="CLUTTER_KEY_numbersign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="383"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numerosign"
+              value="1712"
+              c:type="CLUTTER_KEY_numerosign">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="934"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_o" value="111" c:type="CLUTTER_KEY_o">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="461"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oacute" value="243" c:type="CLUTTER_KEY_oacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="563"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obarred" value="16777845" c:type="CLUTTER_KEY_obarred">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1643"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obelowdot"
+              value="16785101"
+              c:type="CLUTTER_KEY_obelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1695"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocaron" value="16777682" c:type="CLUTTER_KEY_ocaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1642"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflex"
+              value="244"
+              c:type="CLUTTER_KEY_ocircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="564"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexacute"
+              value="16785105"
+              c:type="CLUTTER_KEY_ocircumflexacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1699"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexbelowdot"
+              value="16785113"
+              c:type="CLUTTER_KEY_ocircumflexbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1707"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexgrave"
+              value="16785107"
+              c:type="CLUTTER_KEY_ocircumflexgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1701"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexhook"
+              value="16785109"
+              c:type="CLUTTER_KEY_ocircumflexhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1703"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflextilde"
+              value="16785111"
+              c:type="CLUTTER_KEY_ocircumflextilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1705"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odiaeresis"
+              value="246"
+              c:type="CLUTTER_KEY_odiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="566"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odoubleacute"
+              value="501"
+              c:type="CLUTTER_KEY_odoubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="628"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oe" value="5053" c:type="CLUTTER_KEY_oe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="719"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ogonek" value="434" c:type="CLUTTER_KEY_ogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="589"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ograve" value="242" c:type="CLUTTER_KEY_ograve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="562"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohook" value="16785103" c:type="CLUTTER_KEY_ohook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1697"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorn" value="16777633" c:type="CLUTTER_KEY_ohorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1739"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornacute"
+              value="16785115"
+              c:type="CLUTTER_KEY_ohornacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1709"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornbelowdot"
+              value="16785123"
+              c:type="CLUTTER_KEY_ohornbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1717"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorngrave"
+              value="16785117"
+              c:type="CLUTTER_KEY_ohorngrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1711"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornhook"
+              value="16785119"
+              c:type="CLUTTER_KEY_ohornhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1713"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorntilde"
+              value="16785121"
+              c:type="CLUTTER_KEY_ohorntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1715"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_omacron" value="1010" c:type="CLUTTER_KEY_omacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="687"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oneeighth" value="2755" c:type="CLUTTER_KEY_oneeighth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1196"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onefifth" value="2738" c:type="CLUTTER_KEY_onefifth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1184"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onehalf" value="189" c:type="CLUTTER_KEY_onehalf">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="506"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onequarter"
+              value="188"
+              c:type="CLUTTER_KEY_onequarter">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="505"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesixth" value="2742" c:type="CLUTTER_KEY_onesixth">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1188"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesubscript"
+              value="16785537"
+              c:type="CLUTTER_KEY_onesubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1763"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesuperior"
+              value="185"
+              c:type="CLUTTER_KEY_onesuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="502"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onethird" value="2736" c:type="CLUTTER_KEY_onethird">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1182"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ooblique" value="248" c:type="CLUTTER_KEY_ooblique">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="569"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openrectbullet"
+              value="2786"
+              c:type="CLUTTER_KEY_openrectbullet">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1224"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openstar" value="2789" c:type="CLUTTER_KEY_openstar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1227"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletdown"
+              value="2788"
+              c:type="CLUTTER_KEY_opentribulletdown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1226"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletup"
+              value="2787"
+              c:type="CLUTTER_KEY_opentribulletup">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1225"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ordfeminine"
+              value="170"
+              c:type="CLUTTER_KEY_ordfeminine">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="487"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oslash" value="248" c:type="CLUTTER_KEY_oslash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="568"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_otilde" value="245" c:type="CLUTTER_KEY_otilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="565"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overbar" value="3008" c:type="CLUTTER_KEY_overbar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1257"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overline" value="1150" c:type="CLUTTER_KEY_overline">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="721"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_p" value="112" c:type="CLUTTER_KEY_p">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="462"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_pabovedot"
+              value="16784983"
+              c:type="CLUTTER_KEY_pabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="705"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_paragraph" value="182" c:type="CLUTTER_KEY_paragraph">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="499"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenleft" value="40" c:type="CLUTTER_KEY_parenleft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="389"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenright" value="41" c:type="CLUTTER_KEY_parenright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="390"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partdifferential"
+              value="16785922"
+              c:type="CLUTTER_KEY_partdifferential">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1772"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partialderivative"
+              value="2287"
+              c:type="CLUTTER_KEY_partialderivative">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1139"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_percent" value="37" c:type="CLUTTER_KEY_percent">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="385"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_period" value="46" c:type="CLUTTER_KEY_period">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="395"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_periodcentered"
+              value="183"
+              c:type="CLUTTER_KEY_periodcentered">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="500"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_permille" value="2773" c:type="CLUTTER_KEY_permille">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1212"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_phonographcopyright"
+              value="2811"
+              c:type="CLUTTER_KEY_phonographcopyright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1248"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plus" value="43" c:type="CLUTTER_KEY_plus">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="392"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plusminus" value="177" c:type="CLUTTER_KEY_plusminus">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="494"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prescription"
+              value="2772"
+              c:type="CLUTTER_KEY_prescription">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1211"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prolongedsound"
+              value="1200"
+              c:type="CLUTTER_KEY_prolongedsound">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="739"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_punctspace"
+              value="2726"
+              c:type="CLUTTER_KEY_punctspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1174"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_q" value="113" c:type="CLUTTER_KEY_q">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="463"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quad" value="3020" c:type="CLUTTER_KEY_quad">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1263"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_question" value="63" c:type="CLUTTER_KEY_question">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="412"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_questiondown"
+              value="191"
+              c:type="CLUTTER_KEY_questiondown">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="508"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quotedbl" value="34" c:type="CLUTTER_KEY_quotedbl">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="382"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteleft" value="96" c:type="CLUTTER_KEY_quoteleft">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="446"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteright" value="39" c:type="CLUTTER_KEY_quoteright">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="388"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_r" value="114" c:type="CLUTTER_KEY_r">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="464"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_racute" value="480" c:type="CLUTTER_KEY_racute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="617"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_radical" value="2262" c:type="CLUTTER_KEY_radical">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1132"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcaron" value="504" c:type="CLUTTER_KEY_rcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="629"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcedilla" value="947" c:type="CLUTTER_KEY_rcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="664"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_registered"
+              value="174"
+              c:type="CLUTTER_KEY_registered">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="491"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightanglebracket"
+              value="2750"
+              c:type="CLUTTER_KEY_rightanglebracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1194"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightarrow"
+              value="2301"
+              c:type="CLUTTER_KEY_rightarrow">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1143"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightcaret"
+              value="2982"
+              c:type="CLUTTER_KEY_rightcaret">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1254"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightdoublequotemark"
+              value="2771"
+              c:type="CLUTTER_KEY_rightdoublequotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1210"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlecurlybrace"
+              value="2224"
+              c:type="CLUTTER_KEY_rightmiddlecurlybrace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1111"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlesummation"
+              value="2231"
+              c:type="CLUTTER_KEY_rightmiddlesummation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1118"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightopentriangle"
+              value="2765"
+              c:type="CLUTTER_KEY_rightopentriangle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1204"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightpointer"
+              value="2795"
+              c:type="CLUTTER_KEY_rightpointer">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1233"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightshoe" value="3032" c:type="CLUTTER_KEY_rightshoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1268"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightsinglequotemark"
+              value="2769"
+              c:type="CLUTTER_KEY_rightsinglequotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1208"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightt" value="2549" c:type="CLUTTER_KEY_rightt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1165"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_righttack" value="3068" c:type="CLUTTER_KEY_righttack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1271"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_s" value="115" c:type="CLUTTER_KEY_s">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="465"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sabovedot"
+              value="16784993"
+              c:type="CLUTTER_KEY_sabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="707"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sacute" value="438" c:type="CLUTTER_KEY_sacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="592"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scaron" value="441" c:type="CLUTTER_KEY_scaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="594"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scedilla" value="442" c:type="CLUTTER_KEY_scedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="595"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_schwa" value="16777817" c:type="CLUTTER_KEY_schwa">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1645"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scircumflex"
+              value="766"
+              c:type="CLUTTER_KEY_scircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="655"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_script_switch"
+              value="65406"
+              c:type="CLUTTER_KEY_script_switch">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="93"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seconds" value="2775" c:type="CLUTTER_KEY_seconds">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1214"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_section" value="167" c:type="CLUTTER_KEY_section">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="484"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semicolon" value="59" c:type="CLUTTER_KEY_semicolon">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="408"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semivoicedsound"
+              value="1247"
+              c:type="CLUTTER_KEY_semivoicedsound">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="789"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seveneighths"
+              value="2758"
+              c:type="CLUTTER_KEY_seveneighths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1199"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensubscript"
+              value="16785543"
+              c:type="CLUTTER_KEY_sevensubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1769"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensuperior"
+              value="16785527"
+              c:type="CLUTTER_KEY_sevensuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1759"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signaturemark"
+              value="2762"
+              c:type="CLUTTER_KEY_signaturemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1201"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signifblank"
+              value="2732"
+              c:type="CLUTTER_KEY_signifblank">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1179"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_similarequal"
+              value="2249"
+              c:type="CLUTTER_KEY_similarequal">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1128"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_singlelowquotemark"
+              value="2813"
+              c:type="CLUTTER_KEY_singlelowquotemark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1250"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsubscript"
+              value="16785542"
+              c:type="CLUTTER_KEY_sixsubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1768"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsuperior"
+              value="16785526"
+              c:type="CLUTTER_KEY_sixsuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1758"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_slash" value="47" c:type="CLUTTER_KEY_slash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="396"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_soliddiamond"
+              value="2528"
+              c:type="CLUTTER_KEY_soliddiamond">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1146"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_space" value="32" c:type="CLUTTER_KEY_space">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="380"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_squareroot"
+              value="16785946"
+              c:type="CLUTTER_KEY_squareroot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1777"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ssharp" value="223" c:type="CLUTTER_KEY_ssharp">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="543"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sterling" value="163" c:type="CLUTTER_KEY_sterling">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="480"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_stricteq"
+              value="16786019"
+              c:type="CLUTTER_KEY_stricteq">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1786"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_t" value="116" c:type="CLUTTER_KEY_t">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="466"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tabovedot"
+              value="16785003"
+              c:type="CLUTTER_KEY_tabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="709"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcaron" value="443" c:type="CLUTTER_KEY_tcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="596"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcedilla" value="510" c:type="CLUTTER_KEY_tcedilla">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="632"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephone" value="2809" c:type="CLUTTER_KEY_telephone">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1246"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephonerecorder"
+              value="2810"
+              c:type="CLUTTER_KEY_telephonerecorder">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1247"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_therefore" value="2240" c:type="CLUTTER_KEY_therefore">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1123"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thinspace" value="2727" c:type="CLUTTER_KEY_thinspace">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1175"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thorn" value="254" c:type="CLUTTER_KEY_thorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="575"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threeeighths"
+              value="2756"
+              c:type="CLUTTER_KEY_threeeighths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1197"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threefifths"
+              value="2740"
+              c:type="CLUTTER_KEY_threefifths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1186"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threequarters"
+              value="190"
+              c:type="CLUTTER_KEY_threequarters">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="507"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesubscript"
+              value="16785539"
+              c:type="CLUTTER_KEY_threesubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1765"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesuperior"
+              value="179"
+              c:type="CLUTTER_KEY_threesuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="496"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tintegral"
+              value="16785965"
+              c:type="CLUTTER_KEY_tintegral">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1781"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topintegral"
+              value="2212"
+              c:type="CLUTTER_KEY_topintegral">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1099"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftparens"
+              value="2219"
+              c:type="CLUTTER_KEY_topleftparens">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1106"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftradical"
+              value="2210"
+              c:type="CLUTTER_KEY_topleftradical">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1097"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsqbracket"
+              value="2215"
+              c:type="CLUTTER_KEY_topleftsqbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1102"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsummation"
+              value="2225"
+              c:type="CLUTTER_KEY_topleftsummation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1112"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightparens"
+              value="2221"
+              c:type="CLUTTER_KEY_toprightparens">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1108"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsqbracket"
+              value="2217"
+              c:type="CLUTTER_KEY_toprightsqbracket">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1104"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsummation"
+              value="2229"
+              c:type="CLUTTER_KEY_toprightsummation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1116"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topt" value="2551" c:type="CLUTTER_KEY_topt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1167"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topvertsummationconnector"
+              value="2227"
+              c:type="CLUTTER_KEY_topvertsummationconnector">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1114"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademark" value="2761" c:type="CLUTTER_KEY_trademark">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1200"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademarkincircle"
+              value="2763"
+              c:type="CLUTTER_KEY_trademarkincircle">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1202"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tslash" value="956" c:type="CLUTTER_KEY_tslash">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="669"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twofifths" value="2739" c:type="CLUTTER_KEY_twofifths">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1185"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosubscript"
+              value="16785538"
+              c:type="CLUTTER_KEY_twosubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1764"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosuperior"
+              value="178"
+              c:type="CLUTTER_KEY_twosuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="495"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twothirds" value="2737" c:type="CLUTTER_KEY_twothirds">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1183"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_u" value="117" c:type="CLUTTER_KEY_u">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="467"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uacute" value="250" c:type="CLUTTER_KEY_uacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="571"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubelowdot"
+              value="16785125"
+              c:type="CLUTTER_KEY_ubelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1719"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubreve" value="765" c:type="CLUTTER_KEY_ubreve">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="654"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ucircumflex"
+              value="251"
+              c:type="CLUTTER_KEY_ucircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="572"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udiaeresis"
+              value="252"
+              c:type="CLUTTER_KEY_udiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="573"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udoubleacute"
+              value="507"
+              c:type="CLUTTER_KEY_udoubleacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="631"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ugrave" value="249" c:type="CLUTTER_KEY_ugrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="570"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhook" value="16785127" c:type="CLUTTER_KEY_uhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1721"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorn" value="16777648" c:type="CLUTTER_KEY_uhorn">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1741"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornacute"
+              value="16785129"
+              c:type="CLUTTER_KEY_uhornacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1723"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornbelowdot"
+              value="16785137"
+              c:type="CLUTTER_KEY_uhornbelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1731"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorngrave"
+              value="16785131"
+              c:type="CLUTTER_KEY_uhorngrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1725"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornhook"
+              value="16785133"
+              c:type="CLUTTER_KEY_uhornhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1727"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorntilde"
+              value="16785135"
+              c:type="CLUTTER_KEY_uhorntilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1729"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_umacron" value="1022" c:type="CLUTTER_KEY_umacron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="691"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underbar" value="3014" c:type="CLUTTER_KEY_underbar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1261"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underscore" value="95" c:type="CLUTTER_KEY_underscore">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="444"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_union" value="2269" c:type="CLUTTER_KEY_union">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1136"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uogonek" value="1017" c:type="CLUTTER_KEY_uogonek">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="689"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uparrow" value="2300" c:type="CLUTTER_KEY_uparrow">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1142"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upcaret" value="2985" c:type="CLUTTER_KEY_upcaret">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1256"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upleftcorner"
+              value="2540"
+              c:type="CLUTTER_KEY_upleftcorner">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1156"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uprightcorner"
+              value="2539"
+              c:type="CLUTTER_KEY_uprightcorner">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1155"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upshoe" value="3011" c:type="CLUTTER_KEY_upshoe">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1259"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upstile" value="3027" c:type="CLUTTER_KEY_upstile">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1266"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uptack" value="3022" c:type="CLUTTER_KEY_uptack">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1264"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uring" value="505" c:type="CLUTTER_KEY_uring">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="630"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_utilde" value="1021" c:type="CLUTTER_KEY_utilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="690"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_v" value="118" c:type="CLUTTER_KEY_v">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="468"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_variation" value="2241" c:type="CLUTTER_KEY_variation">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1124"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertbar" value="2552" c:type="CLUTTER_KEY_vertbar">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1168"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertconnector"
+              value="2214"
+              c:type="CLUTTER_KEY_vertconnector">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1101"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_voicedsound"
+              value="1246"
+              c:type="CLUTTER_KEY_voicedsound">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="788"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vt" value="2537" c:type="CLUTTER_KEY_vt">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1153"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_w" value="119" c:type="CLUTTER_KEY_w">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="469"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wacute" value="16785027" c:type="CLUTTER_KEY_wacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="713"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wcircumflex"
+              value="16777589"
+              c:type="CLUTTER_KEY_wcircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="693"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wdiaeresis"
+              value="16785029"
+              c:type="CLUTTER_KEY_wdiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="715"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wgrave" value="16785025" c:type="CLUTTER_KEY_wgrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="711"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_x" value="120" c:type="CLUTTER_KEY_x">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="470"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_xabovedot"
+              value="16785035"
+              c:type="CLUTTER_KEY_xabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1638"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_y" value="121" c:type="CLUTTER_KEY_y">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="471"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yacute" value="253" c:type="CLUTTER_KEY_yacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="574"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ybelowdot"
+              value="16785141"
+              c:type="CLUTTER_KEY_ybelowdot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1733"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ycircumflex"
+              value="16777591"
+              c:type="CLUTTER_KEY_ycircumflex">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="695"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ydiaeresis"
+              value="255"
+              c:type="CLUTTER_KEY_ydiaeresis">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="576"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yen" value="165" c:type="CLUTTER_KEY_yen">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="482"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ygrave" value="16785139" c:type="CLUTTER_KEY_ygrave">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="717"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yhook" value="16785143" c:type="CLUTTER_KEY_yhook">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1735"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ytilde" value="16785145" c:type="CLUTTER_KEY_ytilde">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1737"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_z" value="122" c:type="CLUTTER_KEY_z">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="472"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zabovedot" value="447" c:type="CLUTTER_KEY_zabovedot">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="600"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zacute" value="444" c:type="CLUTTER_KEY_zacute">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="597"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zcaron" value="446" c:type="CLUTTER_KEY_zcaron">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="599"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosubscript"
+              value="16785536"
+              c:type="CLUTTER_KEY_zerosubscript">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1762"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosuperior"
+              value="16785520"
+              c:type="CLUTTER_KEY_zerosuperior">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1755"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zstroke" value="16777654" c:type="CLUTTER_KEY_zstroke">
+      <source-position filename="../clutter/clutter/clutter-keysyms.h"
+                       line="1640"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="KbdA11ySettings" c:type="ClutterKbdA11ySettings">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-seat.h"
+           line="40">The #ClutterKbdA11ySettings structure contains keyboard accessibility
+settings</doc>
+      <source-position filename="../clutter/clutter/clutter-seat.h" line="56"/>
+      <field name="controls" writable="1">
+        <type name="KeyboardA11yFlags" c:type="ClutterKeyboardA11yFlags"/>
+      </field>
+      <field name="slowkeys_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="debounce_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="timeout_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="mousekeys_init_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="mousekeys_max_speed" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="mousekeys_accel_time" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+    </record>
+    <record name="KeyEvent" c:type="ClutterKeyEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="147">Key event</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="178"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="149">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="150">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="151">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="152">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="153">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="154">key modifiers</doc>
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="keyval" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="155">raw key value</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="hardware_keycode" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="156">raw hardware key value</doc>
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="unicode_value" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="157">Unicode representation</doc>
+        <type name="gunichar" c:type="gunichar"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="158">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <enumeration name="KeyState"
+                 glib:type-name="ClutterKeyState"
+                 glib:get-type="clutter_key_state_get_type"
+                 c:type="ClutterKeyState">
+      <member name="released"
+              value="0"
+              c:identifier="CLUTTER_KEY_STATE_RELEASED"
+              glib:nick="released">
+      </member>
+      <member name="pressed"
+              value="1"
+              c:identifier="CLUTTER_KEY_STATE_PRESSED"
+              glib:nick="pressed">
+      </member>
+    </enumeration>
+    <bitfield name="KeyboardA11yFlags"
+              glib:type-name="ClutterKeyboardA11yFlags"
+              glib:get-type="clutter_keyboard_a11y_flags_get_type"
+              c:type="ClutterKeyboardA11yFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="390">Keyboard accessibility features applied to a ClutterInputDevice keyboard.</doc>
+      <member name="keyboard_enabled"
+              value="1"
+              c:identifier="CLUTTER_A11Y_KEYBOARD_ENABLED"
+              glib:nick="keyboard-enabled">
+      </member>
+      <member name="timeout_enabled"
+              value="2"
+              c:identifier="CLUTTER_A11Y_TIMEOUT_ENABLED"
+              glib:nick="timeout-enabled">
+      </member>
+      <member name="mouse_keys_enabled"
+              value="4"
+              c:identifier="CLUTTER_A11Y_MOUSE_KEYS_ENABLED"
+              glib:nick="mouse-keys-enabled">
+      </member>
+      <member name="slow_keys_enabled"
+              value="8"
+              c:identifier="CLUTTER_A11Y_SLOW_KEYS_ENABLED"
+              glib:nick="slow-keys-enabled">
+      </member>
+      <member name="slow_keys_beep_press"
+              value="16"
+              c:identifier="CLUTTER_A11Y_SLOW_KEYS_BEEP_PRESS"
+              glib:nick="slow-keys-beep-press">
+      </member>
+      <member name="slow_keys_beep_accept"
+              value="32"
+              c:identifier="CLUTTER_A11Y_SLOW_KEYS_BEEP_ACCEPT"
+              glib:nick="slow-keys-beep-accept">
+      </member>
+      <member name="slow_keys_beep_reject"
+              value="64"
+              c:identifier="CLUTTER_A11Y_SLOW_KEYS_BEEP_REJECT"
+              glib:nick="slow-keys-beep-reject">
+      </member>
+      <member name="bounce_keys_enabled"
+              value="128"
+              c:identifier="CLUTTER_A11Y_BOUNCE_KEYS_ENABLED"
+              glib:nick="bounce-keys-enabled">
+      </member>
+      <member name="bounce_keys_beep_reject"
+              value="256"
+              c:identifier="CLUTTER_A11Y_BOUNCE_KEYS_BEEP_REJECT"
+              glib:nick="bounce-keys-beep-reject">
+      </member>
+      <member name="toggle_keys_enabled"
+              value="512"
+              c:identifier="CLUTTER_A11Y_TOGGLE_KEYS_ENABLED"
+              glib:nick="toggle-keys-enabled">
+      </member>
+      <member name="sticky_keys_enabled"
+              value="1024"
+              c:identifier="CLUTTER_A11Y_STICKY_KEYS_ENABLED"
+              glib:nick="sticky-keys-enabled">
+      </member>
+      <member name="sticky_keys_two_key_off"
+              value="2048"
+              c:identifier="CLUTTER_A11Y_STICKY_KEYS_TWO_KEY_OFF"
+              glib:nick="sticky-keys-two-key-off">
+      </member>
+      <member name="sticky_keys_beep"
+              value="4096"
+              c:identifier="CLUTTER_A11Y_STICKY_KEYS_BEEP"
+              glib:nick="sticky-keys-beep">
+      </member>
+      <member name="feature_state_change_beep"
+              value="8192"
+              c:identifier="CLUTTER_A11Y_FEATURE_STATE_CHANGE_BEEP"
+              glib:nick="feature-state-change-beep">
+      </member>
+    </bitfield>
+    <class name="KeyframeTransition"
+           c:symbol-prefix="keyframe_transition"
+           c:type="ClutterKeyframeTransition"
+           version="1.12"
+           parent="PropertyTransition"
+           glib:type-name="ClutterKeyframeTransition"
+           glib:get-type="clutter_keyframe_transition_get_type"
+           glib:type-struct="KeyframeTransitionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-keyframe-transition.h"
+           line="46">The `ClutterKeyframeTransition` structure contains only private
+data and should be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="76"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_keyframe_transition_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="390">Creates a new #ClutterKeyframeTransition for @property_name.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="82"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-keyframe-transition.c"
+               line="396">the newly allocated
+  #ClutterKeyframeTransition instance. Use g_object_unref() when
+  done to free its resources.</doc>
+          <type name="Transition" c:type="ClutterTransition*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="392">the property to animate</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="clear"
+              c:identifier="clutter_keyframe_transition_clear"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="609">Removes all key frames from @transition.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="118"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="611">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key_frame"
+              c:identifier="clutter_keyframe_transition_get_key_frame"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="687">Retrieves the details of the key frame at @index_ inside @transition.
+
+The @transition must already have key frames set, and @index_ must be
+smaller than the number of key frames.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="689">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="690">the index of the key frame</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="key"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="691">return location for the key, or %NULL</doc>
+            <type name="gdouble" c:type="double*"/>
+          </parameter>
+          <parameter name="mode"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="692">return location for the easing mode, or %NULL</doc>
+            <type name="AnimationMode" c:type="ClutterAnimationMode*"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="693">a #GValue initialized with the type of
+  the values</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_key_frames"
+              c:identifier="clutter_keyframe_transition_get_n_key_frames"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="629">Retrieves the number of key frames inside @transition.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="115"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-keyframe-transition.c"
+               line="635">the number of key frames</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="631">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="clutter_keyframe_transition_set"
+              version="1.12"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="541">Sets the key frames of the @transition.
+
+This variadic arguments function is a convenience for C developers;
+language bindings should use clutter_keyframe_transition_set_key_frames(),
+clutter_keyframe_transition_set_modes(), and
+clutter_keyframe_transition_set_values() instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="543">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="544">the type of the values to use for the key frames</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="n_key_frames" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="545">the number of key frames between the initial
+  and final values</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="547">a list of tuples, containing the key frame index, the value
+  at the key frame, and the animation mode</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_frame"
+              c:identifier="clutter_keyframe_transition_set_key_frame"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="650">Sets the details of the key frame at @index_ inside @transition.
+
+The @transition must already have a key frame at @index_, and @index_
+must be smaller than the number of key frames inside @transition.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="652">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="653">the index of the key frame</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="654">the key of the key frame</doc>
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="655">the easing mode of the key frame</doc>
+            <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="656">a #GValue containing the value of the key frame</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_frames"
+              c:identifier="clutter_keyframe_transition_set_key_frames"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="410">Sets the keys for each key frame inside @transition.
+
+If @transition does not hold any key frame, @n_key_frames key frames
+will be created; if @transition already has key frames, @key_frames must
+have at least as many elements as the number of key frames.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="412">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="n_key_frames" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="413">the number of values</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="key_frames" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="414">an array of keys between 0.0
+  and 1.0, one for each key frame</doc>
+            <array length="0" zero-terminated="0" c:type="const double*">
+              <type name="gdouble" c:type="double"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_modes"
+              c:identifier="clutter_keyframe_transition_set_modes"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="499">Sets the easing modes for each key frame inside @transition.
+
+If @transition does not hold any key frame, @n_modes key frames will
+be created; if @transition already has key frames, @modes must have
+at least as many elements as the number of key frames.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="501">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="n_modes" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="502">the number of easing modes</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modes" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="503">an array of easing modes, one for
+  each key frame</doc>
+            <array length="0"
+                   zero-terminated="0"
+                   c:type="const ClutterAnimationMode*">
+              <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_values"
+              c:identifier="clutter_keyframe_transition_set_values"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keyframe-transition.c"
+             line="452">Sets the values for each key frame inside @transition.
+
+If @transition does not hold any key frame, @n_values key frames will
+be created; if @transition already has key frames, @values must have
+at least as many elements as the number of key frames.</doc>
+        <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="454">a #ClutterKeyframeTransition</doc>
+            <type name="KeyframeTransition"
+                  c:type="ClutterKeyframeTransition*"/>
+          </instance-parameter>
+          <parameter name="n_values" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="455">the number of values</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-keyframe-transition.c"
+                 line="456">an array of values, one for each
+  key frame</doc>
+            <array length="0" zero-terminated="0" c:type="const GValue*">
+              <type name="GObject.Value" c:type="GValue"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="PropertyTransition" c:type="ClutterPropertyTransition"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="KeyframeTransitionPrivate"
+              c:type="ClutterKeyframeTransitionPrivate*"/>
+      </field>
+    </class>
+    <record name="KeyframeTransitionClass"
+            c:type="ClutterKeyframeTransitionClass"
+            glib:is-gtype-struct-for="KeyframeTransition"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-keyframe-transition.h"
+           line="62">The `ClutterKeyframeTransitionClass` structure contains only
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="76"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="PropertyTransitionClass"
+              c:type="ClutterPropertyTransitionClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="KeyframeTransitionPrivate"
+            c:type="ClutterKeyframeTransitionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-keyframe-transition.h"
+                       line="43"/>
+    </record>
+    <class name="Keymap"
+           c:symbol-prefix="keymap"
+           c:type="ClutterKeymap"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterKeymap"
+           glib:get-type="clutter_keymap_get_type"
+           glib:type-struct="KeymapClass">
+      <source-position filename="../clutter/clutter/clutter-keymap.h"
+                       line="44"/>
+      <virtual-method name="get_caps_lock_state" invoker="get_caps_lock_state">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_direction" invoker="get_direction">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <type name="Pango.Direction" c:type="PangoDirection"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_num_lock_state" invoker="get_num_lock_state">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_caps_lock_state"
+              c:identifier="clutter_keymap_get_caps_lock_state">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_direction" c:identifier="clutter_keymap_get_direction">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="Pango.Direction" c:type="PangoDirection"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_num_lock_state"
+              c:identifier="clutter_keymap_get_num_lock_state">
+        <source-position filename="../clutter/clutter/clutter-keymap.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="state-changed" when="first">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="KeymapClass"
+            c:type="ClutterKeymapClass"
+            glib:is-gtype-struct-for="Keymap">
+      <source-position filename="../clutter/clutter/clutter-keymap.h"
+                       line="44"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_num_lock_state">
+        <callback name="get_num_lock_state">
+          <source-position filename="../clutter/clutter/clutter-keymap.h"
+                           line="41"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="keymap" transfer-ownership="none">
+              <type name="Keymap" c:type="ClutterKeymap*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_caps_lock_state">
+        <callback name="get_caps_lock_state">
+          <source-position filename="../clutter/clutter/clutter-keymap.h"
+                           line="42"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="keymap" transfer-ownership="none">
+              <type name="Keymap" c:type="ClutterKeymap*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_direction">
+        <callback name="get_direction">
+          <source-position filename="../clutter/clutter/clutter-keymap.h"
+                           line="43"/>
+          <return-value transfer-ownership="none">
+            <type name="Pango.Direction" c:type="PangoDirection"/>
+          </return-value>
+          <parameters>
+            <parameter name="keymap" transfer-ownership="none">
+              <type name="Keymap" c:type="ClutterKeymap*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="Knot"
+            c:type="ClutterKnot"
+            version="0.2"
+            glib:type-name="ClutterKnot"
+            glib:get-type="clutter_knot_get_type"
+            c:symbol-prefix="knot">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="273">Point in a path behaviour.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="286"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="275">X coordinate of the knot</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="276">Y coordinate of the knot</doc>
+        <type name="gint" c:type="gint"/>
+      </field>
+      <method name="copy" c:identifier="clutter_knot_copy" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1537">Makes an allocated copy of a knot.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="291"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1543">the copied knot.</doc>
+          <type name="Knot" c:type="ClutterKnot*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="knot" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1539">a #ClutterKnot</doc>
+            <type name="Knot" c:type="const ClutterKnot*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="equal" c:identifier="clutter_knot_equal" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1571">Compares to knot and checks if the point to the same location.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="295"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1578">%TRUE if the knots point to the same location.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="knot_a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1573">First knot</doc>
+            <type name="Knot" c:type="const ClutterKnot*"/>
+          </instance-parameter>
+          <parameter name="knot_b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1574">Second knot</doc>
+            <type name="Knot" c:type="const ClutterKnot*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_knot_free" version="0.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1556">Frees the memory of an allocated knot.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="293"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="knot" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1558">a #ClutterKnot</doc>
+            <type name="Knot" c:type="ClutterKnot*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <function-macro name="LAYER_NODE"
+                    c:identifier="CLUTTER_LAYER_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="187"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_MANAGER"
+                    c:identifier="CLUTTER_LAYOUT_MANAGER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_MANAGER_CLASS"
+                    c:identifier="CLUTTER_LAYOUT_MANAGER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_MANAGER_GET_CLASS"
+                    c:identifier="CLUTTER_LAYOUT_MANAGER_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_META"
+                    c:identifier="CLUTTER_LAYOUT_META"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_META_CLASS"
+                    c:identifier="CLUTTER_LAYOUT_META_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="LAYOUT_META_GET_CLASS"
+                    c:identifier="CLUTTER_LAYOUT_META_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="LayerNode"
+           c:symbol-prefix="layer_node"
+           c:type="ClutterLayerNode"
+           parent="PaintNode"
+           glib:type-name="ClutterLayerNode"
+           glib:get-type="clutter_layer_node_get_type"
+           glib:type-struct="LayerNodeClass"
+           glib:fundamental="1">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="199"/>
+      <constructor name="new" c:identifier="clutter_layer_node_new">
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="205"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="projection" transfer-ownership="none">
+            <type name="Cogl.Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+          <parameter name="viewport" transfer-ownership="none">
+            <type name="cairo.Rectangle" c:type="const cairo_rectangle_t*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="opacity" transfer-ownership="none">
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="LayerNodeClass"
+            c:type="ClutterLayerNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="LayerNode">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="199"/>
+    </record>
+    <class name="LayoutManager"
+           c:symbol-prefix="layout_manager"
+           c:type="ClutterLayoutManager"
+           version="1.2"
+           parent="GObject.InitiallyUnowned"
+           abstract="1"
+           glib:type-name="ClutterLayoutManager"
+           glib:get-type="clutter_layout_manager_get_type"
+           glib:type-struct="LayoutManagerClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-manager.h"
+           line="45">The #ClutterLayoutManager structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="140"/>
+      <virtual-method name="allocate" invoker="allocate" version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="429">Allocates the children of @container given an area
+
+See also clutter_actor_allocate()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="116"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="431">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="432">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="433">the #ClutterActorBox containing the allocated area
+  of @container</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_child_meta" introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="124"/>
+        <return-value>
+          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_child_meta_type">
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="123"/>
+        <return-value transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_height"
+                      invoker="get_preferred_height"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="394">Computes the minimum and natural heights of the @container according
+to @manager.
+
+See also clutter_actor_get_preferred_height()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="111"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="396">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="397">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="398">the width for which the height should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="399">return location for the minimum height
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="401">return location for the natural height
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_width"
+                      invoker="get_preferred_width"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="359">Computes the minimum and natural widths of the @container according
+to @manager.
+
+See also clutter_actor_get_preferred_width()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="106"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="361">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="362">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="363">the height for which the width should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="364">return location for the minimum width
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="366">return location for the natural width
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="layout_changed"
+                      invoker="layout_changed"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="457">Emits the #ClutterLayoutManager::layout-changed signal on @manager
+
+This function should only be called by implementations of the
+#ClutterLayoutManager class</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="128"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="459">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_container"
+                      invoker="set_container"
+                      version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="484">If the #ClutterLayoutManager sub-class allows it, allow
+adding a weak reference of the @container using @manager
+from within the layout manager
+
+The layout manager should not increase the reference
+count of the @container</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="120"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="486">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="487">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="allocate"
+              c:identifier="clutter_layout_manager_allocate"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="429">Allocates the children of @container given an area
+
+See also clutter_actor_allocate()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="158"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="431">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="432">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="433">the #ClutterActorBox containing the allocated area
+  of @container</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get"
+              c:identifier="clutter_layout_manager_child_get"
+              version="1.2"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="790">Retrieves the values for a list of properties out of the
+#ClutterLayoutMeta created by @manager and attached to the
+child of a @container</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="187"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="792">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="793">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="794">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="795">the name of the first property</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="796">a list of property name and return location for the value pairs</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get_property"
+              c:identifier="clutter_layout_manager_child_get_property"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="879">Gets a property on the #ClutterLayoutMeta created by @manager and
+attached to a child of @container
+
+The #GValue must already be initialized to the type of the property
+and has to be unset with g_value_unset() after extracting the real
+value out of it</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="199"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="881">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="882">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="883">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="884">the name of the property to get</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="885">a #GValue with the value of the property to get</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set"
+              c:identifier="clutter_layout_manager_child_set"
+              version="1.2"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="648">Sets a list of properties and their values on the #ClutterLayoutMeta
+associated by @manager to a child of @container
+
+Languages bindings should use clutter_layout_manager_child_set_property()
+instead</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="181"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="650">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="651">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="652">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="653">the first property name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="654">a list of property name and value pairs</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set_property"
+              c:identifier="clutter_layout_manager_child_set_property"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="737">Sets a property on the #ClutterLayoutMeta created by @manager and
+attached to a child of @container</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="193"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="739">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="740">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="741">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="742">the name of the property to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="743">a #GValue with the value of the property to set</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_child_property"
+              c:identifier="clutter_layout_manager_find_child_property"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="936">Retrieves the #GParamSpec for the layout property @name inside
+the #ClutterLayoutMeta sub-class used by @manager</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="169"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-layout-manager.c"
+               line="944">a #GParamSpec describing the property,
+  or %NULL if no property with that name exists. The returned
+  #GParamSpec is owned by the layout manager and should not be
+  modified or freed</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="938">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="939">the name of the property</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_meta"
+              c:identifier="clutter_layout_manager_get_child_meta"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="573">Retrieves the #ClutterLayoutMeta that the layout @manager associated
+to the @actor child of @container, eventually by creating one if the
+#ClutterLayoutManager supports layout properties</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="176"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-layout-manager.c"
+               line="583">a #ClutterLayoutMeta, or %NULL if the
+  #ClutterLayoutManager does not have layout properties. The returned
+  layout meta instance is owned by the #ClutterLayoutManager and it
+  should not be unreferenced</doc>
+          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="575">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="576">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="577">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_height"
+              c:identifier="clutter_layout_manager_get_preferred_height"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="394">Computes the minimum and natural heights of the @container according
+to @manager.
+
+See also clutter_actor_get_preferred_height()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="152"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="396">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="397">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="398">the width for which the height should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="399">return location for the minimum height
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="401">return location for the natural height
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_width"
+              c:identifier="clutter_layout_manager_get_preferred_width"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="359">Computes the minimum and natural widths of the @container according
+to @manager.
+
+See also clutter_actor_get_preferred_width()</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="146"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="361">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="362">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="363">the height for which the width should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="364">return location for the minimum width
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="366">return location for the natural width
+  of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="layout_changed"
+              c:identifier="clutter_layout_manager_layout_changed"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="457">Emits the #ClutterLayoutManager::layout-changed signal on @manager
+
+This function should only be called by implementations of the
+#ClutterLayoutManager class</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="166"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="459">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_child_properties"
+              c:identifier="clutter_layout_manager_list_child_properties"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="974">Retrieves all the #GParamSpec&lt;!-- --&gt;s for the layout properties
+stored inside the #ClutterLayoutMeta sub-class used by @manager</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="172"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-layout-manager.c"
+               line="983">the newly-allocated,
+  %NULL-terminated array of #GParamSpec&lt;!-- --&gt;s. Use g_free() to free the
+  resources allocated for the array</doc>
+          <array length="0" zero-terminated="0" c:type="GParamSpec**">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="976">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="n_pspecs"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="977">return location for the number of returned
+  #GParamSpec&lt;!-- --&gt;s</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_container"
+              c:identifier="clutter_layout_manager_set_container"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="484">If the #ClutterLayoutManager sub-class allows it, allow
+adding a weak reference of the @container using @manager
+from within the layout manager
+
+The layout manager should not increase the reference
+count of the @container</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                         line="163"/>
+        <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="../clutter/clutter/clutter-layout-manager.c"
+                 line="486">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </instance-parameter>
+          <parameter name="container"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-manager.c"
+                 line="487">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="dummy" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <glib:signal name="layout-changed" when="last" version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-manager.c"
+             line="315">The ::layout-changed signal is emitted each time a layout manager
+has been changed. Every #ClutterActor using the @manager instance
+as a layout manager should connect a handler to the ::layout-changed
+signal and queue a relayout on themselves:
+
+|[
+  static void layout_changed (ClutterLayoutManager *manager,
+                              ClutterActor         *self)
+  {
+    clutter_actor_queue_relayout (self);
+  }
+  ...
+    self-&gt;manager = g_object_ref_sink (manager);
+    g_signal_connect (self-&gt;manager, "layout-changed",
+                      G_CALLBACK (layout_changed),
+                      self);
+]|
+
+Sub-classes of #ClutterLayoutManager that implement a layout that
+can be controlled or changed using parameters should emit the
+::layout-changed signal whenever one of the parameters changes,
+by using clutter_layout_manager_layout_changed().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="LayoutManagerClass"
+            c:type="ClutterLayoutManagerClass"
+            glib:is-gtype-struct-for="LayoutManager"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-manager.h"
+           line="61">The #ClutterLayoutManagerClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                       line="140"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="get_preferred_width">
+        <callback name="get_preferred_width">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="106"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="361">a #ClutterLayoutManager</doc>
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="362">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="for_height" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="363">the height for which the width should be computed, or -1</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="364">return location for the minimum width
+  of the layout, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="nat_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="366">return location for the natural width
+  of the layout, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_height">
+        <callback name="get_preferred_height">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="111"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="396">a #ClutterLayoutManager</doc>
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="397">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="for_width" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="398">the width for which the height should be computed, or -1</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="399">return location for the minimum height
+  of the layout, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="nat_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       optional="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="401">return location for the natural height
+  of the layout, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="allocate">
+        <callback name="allocate">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="116"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="431">a #ClutterLayoutManager</doc>
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="432">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="allocation" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="433">the #ClutterActorBox containing the allocated area
+  of @container</doc>
+              <type name="ActorBox" c:type="const ClutterActorBox*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_container">
+        <callback name="set_container">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="120"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="486">a #ClutterLayoutManager</doc>
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="487">a #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_child_meta_type">
+        <callback name="get_child_meta_type">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="123"/>
+          <return-value transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_child_meta" introspectable="0">
+        <callback name="create_child_meta" introspectable="0">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="124"/>
+          <return-value>
+            <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="layout_changed">
+        <callback name="layout_changed">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="128"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-layout-manager.c"
+                   line="459">a #ClutterLayoutManager</doc>
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_padding_1" introspectable="0">
+        <callback name="_clutter_padding_1">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="132"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_2" introspectable="0">
+        <callback name="_clutter_padding_2">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="133"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_3" introspectable="0">
+        <callback name="_clutter_padding_3">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="134"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_4" introspectable="0">
+        <callback name="_clutter_padding_4">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="135"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_5" introspectable="0">
+        <callback name="_clutter_padding_5">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="136"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_6" introspectable="0">
+        <callback name="_clutter_padding_6">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="137"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_7" introspectable="0">
+        <callback name="_clutter_padding_7">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="138"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_8" introspectable="0">
+        <callback name="_clutter_padding_8">
+          <source-position filename="../clutter/clutter/clutter-layout-manager.h"
+                           line="139"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="LayoutMeta"
+           c:symbol-prefix="layout_meta"
+           c:type="ClutterLayoutMeta"
+           version="1.2"
+           parent="ChildMeta"
+           abstract="1"
+           glib:type-name="ClutterLayoutMeta"
+           glib:get-type="clutter_layout_meta_get_type"
+           glib:type-struct="LayoutMetaClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-meta.h"
+           line="49">Sub-class of #ClutterChildMeta specific for layout managers
+
+A #ClutterLayoutManager sub-class should create a #ClutterLayoutMeta
+instance by overriding the #ClutterLayoutManager::create_child_meta()
+virtual function</doc>
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="93"/>
+      <method name="get_manager"
+              c:identifier="clutter_layout_meta_get_manager"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-meta.c"
+             line="130">Retrieves the actor wrapped by @data</doc>
+        <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-layout-meta.c"
+               line="136">a #ClutterLayoutManager</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-layout-meta.c"
+                 line="132">a #ClutterLayoutMeta</doc>
+            <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="manager"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-meta.c"
+             line="108">The #ClutterLayoutManager that created this #ClutterLayoutMeta.</doc>
+        <type name="LayoutManager"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="ChildMeta" c:type="ClutterChildMeta"/>
+      </field>
+      <field name="manager">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-layout-meta.h"
+             line="51">the layout manager handling this data</doc>
+        <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+      </field>
+      <field name="dummy0" readable="0" private="1">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="dummy1" readable="0" private="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </class>
+    <record name="LayoutMetaClass"
+            c:type="ClutterLayoutMetaClass"
+            glib:is-gtype-struct-for="LayoutMeta"
+            version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-meta.h"
+           line="75">The #ClutterLayoutMetaClass contains only private data and
+should never be accessed directly</doc>
+      <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ChildMetaClass" c:type="ClutterChildMetaClass"/>
+      </field>
+      <field name="_clutter_padding1" introspectable="0">
+        <callback name="_clutter_padding1">
+          <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding2" introspectable="0">
+        <callback name="_clutter_padding2">
+          <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding3" introspectable="0">
+        <callback name="_clutter_padding3">
+          <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding4" introspectable="0">
+        <callback name="_clutter_padding4">
+          <source-position filename="../clutter/clutter/clutter-layout-meta.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="LongPressState"
+                 version="1.8"
+                 glib:type-name="ClutterLongPressState"
+                 glib:get-type="clutter_long_press_state_get_type"
+                 c:type="ClutterLongPressState">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="685">The states for the #ClutterClickAction::long-press signal.</doc>
+      <member name="query"
+              value="0"
+              c:identifier="CLUTTER_LONG_PRESS_QUERY"
+              glib:nick="query">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="687">Queries the action whether it supports
+  long presses</doc>
+      </member>
+      <member name="activate"
+              value="1"
+              c:identifier="CLUTTER_LONG_PRESS_ACTIVATE"
+              glib:nick="activate">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="689">Activates the action on a long press</doc>
+      </member>
+      <member name="cancel"
+              value="2"
+              c:identifier="CLUTTER_LONG_PRESS_CANCEL"
+              glib:nick="cancel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="690">The long press was cancelled</doc>
+      </member>
+    </enumeration>
+    <function-macro name="MACRO_DEPRECATED_FOR"
+                    c:identifier="CLUTTER_MACRO_DEPRECATED_FOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="124"/>
+      <parameters>
+        <parameter name="f">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="Margin"
+            c:type="ClutterMargin"
+            version="1.10"
+            glib:type-name="ClutterMargin"
+            glib:get-type="clutter_margin_get_type"
+            c:symbol-prefix="margin">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="374">A representation of the components of a margin.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="391"/>
+      <field name="left" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="376">the margin from the left</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="right" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="377">the margin from the right</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="top" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="378">the margin from the top</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="bottom" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="379">the margin from the bottom</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <constructor name="new" c:identifier="clutter_margin_new" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="48">Creates a new #ClutterMargin.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="397"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="53">a newly allocated #ClutterMargin. Use
+  clutter_margin_free() to free the resources associated with it when
+  done.</doc>
+          <type name="Margin" c:type="ClutterMargin*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="clutter_margin_copy" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="65">Creates a new #ClutterMargin and copies the contents of @margin_ into
+the newly created structure.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="399"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="72">a copy of the #ClutterMargin.</doc>
+          <type name="Margin" c:type="ClutterMargin*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="margin_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-base-types.c"
+                 line="67">a #ClutterMargin</doc>
+            <type name="Margin" c:type="const ClutterMargin*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_margin_free" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="85">Frees the resources allocated by clutter_margin_new() and
+clutter_margin_copy().</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="401"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="margin_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-base-types.c"
+                 line="87">a #ClutterMargin</doc>
+            <type name="Margin" c:type="ClutterMargin*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="ModifierType"
+              version="0.4"
+              glib:type-name="ClutterModifierType"
+              glib:get-type="clutter_modifier_type_get_type"
+              c:type="ClutterModifierType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="313">Masks applied to a #ClutterEvent by modifiers.
+
+Note that Clutter may add internal values to events which include
+reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK.  Your code
+should preserve and ignore them.  You can use %CLUTTER_MODIFIER_MASK to
+remove all reserved values.</doc>
+      <member name="shift_mask"
+              value="1"
+              c:identifier="CLUTTER_SHIFT_MASK"
+              glib:nick="shift-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="315">Mask applied by the Shift key</doc>
+      </member>
+      <member name="lock_mask"
+              value="2"
+              c:identifier="CLUTTER_LOCK_MASK"
+              glib:nick="lock-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="316">Mask applied by the Caps Lock key</doc>
+      </member>
+      <member name="control_mask"
+              value="4"
+              c:identifier="CLUTTER_CONTROL_MASK"
+              glib:nick="control-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="317">Mask applied by the Control key</doc>
+      </member>
+      <member name="mod1_mask"
+              value="8"
+              c:identifier="CLUTTER_MOD1_MASK"
+              glib:nick="mod1-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="318">Mask applied by the first Mod key</doc>
+      </member>
+      <member name="mod2_mask"
+              value="16"
+              c:identifier="CLUTTER_MOD2_MASK"
+              glib:nick="mod2-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="319">Mask applied by the second Mod key</doc>
+      </member>
+      <member name="mod3_mask"
+              value="32"
+              c:identifier="CLUTTER_MOD3_MASK"
+              glib:nick="mod3-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="320">Mask applied by the third Mod key</doc>
+      </member>
+      <member name="mod4_mask"
+              value="64"
+              c:identifier="CLUTTER_MOD4_MASK"
+              glib:nick="mod4-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="321">Mask applied by the fourth Mod key</doc>
+      </member>
+      <member name="mod5_mask"
+              value="128"
+              c:identifier="CLUTTER_MOD5_MASK"
+              glib:nick="mod5-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="322">Mask applied by the fifth Mod key</doc>
+      </member>
+      <member name="button1_mask"
+              value="256"
+              c:identifier="CLUTTER_BUTTON1_MASK"
+              glib:nick="button1-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="323">Mask applied by the first pointer button</doc>
+      </member>
+      <member name="button2_mask"
+              value="512"
+              c:identifier="CLUTTER_BUTTON2_MASK"
+              glib:nick="button2-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="324">Mask applied by the second pointer button</doc>
+      </member>
+      <member name="button3_mask"
+              value="1024"
+              c:identifier="CLUTTER_BUTTON3_MASK"
+              glib:nick="button3-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="325">Mask applied by the third pointer button</doc>
+      </member>
+      <member name="button4_mask"
+              value="2048"
+              c:identifier="CLUTTER_BUTTON4_MASK"
+              glib:nick="button4-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="326">Mask applied by the fourth pointer button</doc>
+      </member>
+      <member name="button5_mask"
+              value="4096"
+              c:identifier="CLUTTER_BUTTON5_MASK"
+              glib:nick="button5-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="327">Mask applied by the fifth pointer button</doc>
+      </member>
+      <member name="modifier_reserved_13_mask"
+              value="8192"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_13_MASK"
+              glib:nick="modifier-reserved-13-mask">
+      </member>
+      <member name="modifier_reserved_14_mask"
+              value="16384"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_14_MASK"
+              glib:nick="modifier-reserved-14-mask">
+      </member>
+      <member name="modifier_reserved_15_mask"
+              value="32768"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_15_MASK"
+              glib:nick="modifier-reserved-15-mask">
+      </member>
+      <member name="modifier_reserved_16_mask"
+              value="65536"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_16_MASK"
+              glib:nick="modifier-reserved-16-mask">
+      </member>
+      <member name="modifier_reserved_17_mask"
+              value="131072"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_17_MASK"
+              glib:nick="modifier-reserved-17-mask">
+      </member>
+      <member name="modifier_reserved_18_mask"
+              value="262144"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_18_MASK"
+              glib:nick="modifier-reserved-18-mask">
+      </member>
+      <member name="modifier_reserved_19_mask"
+              value="524288"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_19_MASK"
+              glib:nick="modifier-reserved-19-mask">
+      </member>
+      <member name="modifier_reserved_20_mask"
+              value="1048576"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_20_MASK"
+              glib:nick="modifier-reserved-20-mask">
+      </member>
+      <member name="modifier_reserved_21_mask"
+              value="2097152"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_21_MASK"
+              glib:nick="modifier-reserved-21-mask">
+      </member>
+      <member name="modifier_reserved_22_mask"
+              value="4194304"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_22_MASK"
+              glib:nick="modifier-reserved-22-mask">
+      </member>
+      <member name="modifier_reserved_23_mask"
+              value="8388608"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_23_MASK"
+              glib:nick="modifier-reserved-23-mask">
+      </member>
+      <member name="modifier_reserved_24_mask"
+              value="16777216"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_24_MASK"
+              glib:nick="modifier-reserved-24-mask">
+      </member>
+      <member name="modifier_reserved_25_mask"
+              value="33554432"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_25_MASK"
+              glib:nick="modifier-reserved-25-mask">
+      </member>
+      <member name="super_mask"
+              value="67108864"
+              c:identifier="CLUTTER_SUPER_MASK"
+              glib:nick="super-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="328">Mask applied by the Super key</doc>
+      </member>
+      <member name="hyper_mask"
+              value="134217728"
+              c:identifier="CLUTTER_HYPER_MASK"
+              glib:nick="hyper-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="329">Mask applied by the Hyper key</doc>
+      </member>
+      <member name="meta_mask"
+              value="268435456"
+              c:identifier="CLUTTER_META_MASK"
+              glib:nick="meta-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="330">Mask applied by the Meta key</doc>
+      </member>
+      <member name="modifier_reserved_29_mask"
+              value="536870912"
+              c:identifier="CLUTTER_MODIFIER_RESERVED_29_MASK"
+              glib:nick="modifier-reserved-29-mask">
+      </member>
+      <member name="release_mask"
+              value="1073741824"
+              c:identifier="CLUTTER_RELEASE_MASK"
+              glib:nick="release-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="331">Mask applied during release</doc>
+      </member>
+      <member name="modifier_mask"
+              value="1543512063"
+              c:identifier="CLUTTER_MODIFIER_MASK"
+              glib:nick="modifier-mask">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="332">A mask covering all modifier types</doc>
+      </member>
+    </bitfield>
+    <record name="MotionEvent" c:type="ClutterMotionEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="278">Event for the pointer motion</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="309"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="280">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="281">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="282">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="283">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="284">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="285">event X coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="286">event Y coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="287">button modifiers</doc>
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="axes" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="288">reserved for future use</doc>
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="289">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <constant name="NO_FPU"
+              value="0"
+              c:type="CLUTTER_NO_FPU"
+              deprecated="1"
+              deprecated-version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-macros.h"
+           line="71">Set to 1 if Clutter was built without FPU (i.e fixed math), 0 otherwise</doc>
+      <doc-deprecated xml:space="preserve">This macro is no longer defined (identical code is used
+ regardless the presence of FPU).</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="79"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="OFFSCREEN_EFFECT"
+                    c:identifier="CLUTTER_OFFSCREEN_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="o">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OFFSCREEN_EFFECT_CLASS"
+                    c:identifier="CLUTTER_OFFSCREEN_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="k">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OFFSCREEN_EFFECT_GET_CLASS"
+                    c:identifier="CLUTTER_OFFSCREEN_EFFECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="42"/>
+      <parameters>
+        <parameter name="o">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="OffscreenEffect"
+           c:symbol-prefix="offscreen_effect"
+           c:type="ClutterOffscreenEffect"
+           version="1.4"
+           parent="Effect"
+           abstract="1"
+           glib:type-name="ClutterOffscreenEffect"
+           glib:get-type="clutter_offscreen_effect_get_type"
+           glib:type-struct="OffscreenEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-offscreen-effect.h"
+           line="48">The #ClutterOffscreenEffect structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="93"/>
+      <virtual-method name="create_texture"
+                      invoker="create_texture"
+                      version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="650">Calls the create_texture() virtual function of the @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="79"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="658">a handle to a Cogl texture, or
+  %NULL. The returned handle has its reference
+  count increased.</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="652">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="653">the minimum width of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="654">the minimum height of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint_target" invoker="paint_target" version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="631">Calls the paint_target() virtual function of the @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="633">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="634">a #ClutterPaintContext</doc>
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="create_texture"
+              c:identifier="clutter_offscreen_effect_create_texture"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="650">Calls the create_texture() virtual function of the @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="108"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="658">a handle to a Cogl texture, or
+  %NULL. The returned handle has its reference
+  count increased.</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="652">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="653">the minimum width of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="654">the minimum height of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_target"
+              c:identifier="clutter_offscreen_effect_get_target"
+              version="1.4"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="606">Retrieves the material used as a render target for the offscreen
+buffer created by @effect
+
+You should only use the returned #CoglMaterial when painting. The
+returned material might change between different frames.</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="616">a #CoglMaterial or %NULL. The
+  returned material is owned by Clutter and it should not be
+  modified or freed</doc>
+          <type name="Cogl.Material" c:type="CoglMaterial*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="608">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_target_rect"
+              c:identifier="clutter_offscreen_effect_get_target_rect"
+              version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="720">Retrieves the origin and size of the offscreen buffer used by @effect to
+paint the actor to which it has been applied.
+
+This function should only be called by #ClutterOffscreenEffect
+implementations, from within the #ClutterOffscreenEffectClass.paint_target()
+virtual function.</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="118"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="732">%TRUE if the offscreen buffer has a valid rectangle,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="722">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="723">return location for the target area</doc>
+            <type name="Graphene.Rect" c:type="graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_target_size"
+              c:identifier="clutter_offscreen_effect_get_target_size"
+              version="1.8"
+              deprecated="1"
+              deprecated-version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="677">Retrieves the size of the offscreen buffer used by @effect to
+paint the actor to which it has been applied.
+
+This function should only be called by #ClutterOffscreenEffect
+implementations, from within the #ClutterOffscreenEffectClass.paint_target()
+virtual function.</doc>
+        <doc-deprecated xml:space="preserve">Use clutter_offscreen_effect_get_target_rect() 
instead</doc-deprecated>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="113"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="690">%TRUE if the offscreen buffer has a valid size,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="679">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="680">return location for the target width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="681">return location for the target height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_texture"
+              c:identifier="clutter_offscreen_effect_get_texture"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="577">Retrieves the texture used as a render target for the offscreen
+buffer created by @effect
+
+You should only use the returned texture when painting. The texture
+may change after ClutterEffect::pre_paint is called so the effect
+implementation should update any references to the texture after
+chaining-up to the parent's pre_paint implementation. This can be
+used instead of clutter_offscreen_effect_get_target() when the
+effect subclass wants to paint using its own material.</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-offscreen-effect.c"
+               line="591">a #CoglHandle or %NULL. The
+  returned texture is owned by Clutter and it should not be
+  modified or freed</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="579">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="paint_target"
+              c:identifier="clutter_offscreen_effect_paint_target"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-offscreen-effect.c"
+             line="631">Calls the paint_target() virtual function of the @effect</doc>
+        <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="633">a #ClutterOffscreenEffect</doc>
+            <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="634">a #ClutterPaintContext</doc>
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Effect" c:type="ClutterEffect"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="OffscreenEffectPrivate"
+              c:type="ClutterOffscreenEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="OffscreenEffectClass"
+            c:type="ClutterOffscreenEffectClass"
+            glib:is-gtype-struct-for="OffscreenEffect"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-offscreen-effect.h"
+           line="64">The #ClutterOffscreenEffectClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="EffectClass" c:type="ClutterEffectClass"/>
+      </field>
+      <field name="create_texture">
+        <callback name="create_texture">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="79"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-offscreen-effect.c"
+                 line="658">a handle to a Cogl texture, or
+  %NULL. The returned handle has its reference
+  count increased.</doc>
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-offscreen-effect.c"
+                   line="652">a #ClutterOffscreenEffect</doc>
+              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-offscreen-effect.c"
+                   line="653">the minimum width of the target texture</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-offscreen-effect.c"
+                   line="654">the minimum height of the target texture</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint_target">
+        <callback name="paint_target">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="82"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-offscreen-effect.c"
+                   line="633">a #ClutterOffscreenEffect</doc>
+              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+            </parameter>
+            <parameter name="paint_context" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-offscreen-effect.c"
+                   line="634">a #ClutterPaintContext</doc>
+              <type name="PaintContext" c:type="ClutterPaintContext*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen1" introspectable="0">
+        <callback name="_clutter_offscreen1">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen2" introspectable="0">
+        <callback name="_clutter_offscreen2">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen3" introspectable="0">
+        <callback name="_clutter_offscreen3">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen4" introspectable="0">
+        <callback name="_clutter_offscreen4">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen5" introspectable="0">
+        <callback name="_clutter_offscreen5">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen6" introspectable="0">
+        <callback name="_clutter_offscreen6">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen7" introspectable="0">
+        <callback name="_clutter_offscreen7">
+          <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="OffscreenEffectPrivate"
+            c:type="ClutterOffscreenEffectPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-offscreen-effect.h"
+                       line="45"/>
+    </record>
+    <bitfield name="OffscreenRedirect"
+              version="1.8"
+              glib:type-name="ClutterOffscreenRedirect"
+              glib:get-type="clutter_offscreen_redirect_get_type"
+              c:type="ClutterOffscreenRedirect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="534">Possible flags to pass to clutter_actor_set_offscreen_redirect().</doc>
+      <member name="automatic_for_opacity"
+              value="1"
+              c:identifier="CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY"
+              glib:nick="automatic-for-opacity">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="536">Only redirect
+  the actor if it is semi-transparent and its has_overlaps()
+  virtual returns %TRUE.</doc>
+      </member>
+      <member name="always"
+              value="2"
+              c:identifier="CLUTTER_OFFSCREEN_REDIRECT_ALWAYS"
+              glib:nick="always">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="539">Always redirect the actor to an
+  offscreen buffer even if it is fully opaque.</doc>
+      </member>
+      <member name="on_idle"
+              value="4"
+              c:identifier="CLUTTER_OFFSCREEN_REDIRECT_ON_IDLE"
+              glib:nick="on-idle">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="541">Only redirect the actor if it is the
+  most efficient thing to do based on its recent repaint behaviour. That
+  means when its contents are changing less frequently than it's being used
+  on stage.</doc>
+      </member>
+    </bitfield>
+    <enumeration name="Orientation"
+                 version="1.12"
+                 glib:type-name="ClutterOrientation"
+                 glib:get-type="clutter_orientation_get_type"
+                 c:type="ClutterOrientation">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1389">Represents the orientation of actors or layout managers.</doc>
+      <member name="horizontal"
+              value="0"
+              c:identifier="CLUTTER_ORIENTATION_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1391">An horizontal orientation</doc>
+      </member>
+      <member name="vertical"
+              value="1"
+              c:identifier="CLUTTER_ORIENTATION_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1392">A vertical orientation</doc>
+      </member>
+    </enumeration>
+    <function-macro name="PAGE_TURN_EFFECT"
+                    c:identifier="CLUTTER_PAGE_TURN_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PAINT_NODE"
+                    c:identifier="CLUTTER_PAINT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PAN_ACTION"
+                    c:identifier="CLUTTER_PAN_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="45"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PAN_ACTION_CLASS"
+                    c:identifier="CLUTTER_PAN_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="47"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PAN_ACTION_GET_CLASS"
+                    c:identifier="CLUTTER_PAN_ACTION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="49"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PARAM_SPEC_COLOR"
+                    c:identifier="CLUTTER_PARAM_SPEC_COLOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="147"/>
+      <parameters>
+        <parameter name="pspec">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PARAM_SPEC_UNITS"
+                    c:identifier="CLUTTER_PARAM_SPEC_UNITS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="124"/>
+      <parameters>
+        <parameter name="pspec">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PATH" c:identifier="CLUTTER_PATH" introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PATH_CLASS"
+                    c:identifier="CLUTTER_PATH_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PATH_CONSTRAINT"
+                    c:identifier="CLUTTER_PATH_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PATH_GET_CLASS"
+                    c:identifier="CLUTTER_PATH_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="42"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="PATH_RELATIVE" value="32" c:type="CLUTTER_PATH_RELATIVE">
+      <source-position filename="../clutter/clutter/clutter-enums.h"
+                       line="1253"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="PIPELINE_NODE"
+                    c:identifier="CLUTTER_PIPELINE_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="104"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="PRIORITY_REDRAW"
+              value="50"
+              c:type="CLUTTER_PRIORITY_REDRAW"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.h"
+           line="107">Priority of the redraws. This is chosen to be lower than the GTK+
+redraw and resize priorities, because in application with both
+GTK+ and Clutter it's more likely that the Clutter part will be
+continually animating (and thus able to starve GTK+) than
+vice-versa.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="118"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="PRIVATE_FIELD"
+                    c:identifier="CLUTTER_PRIVATE_FIELD"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="88"/>
+      <parameters>
+        <parameter name="x">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PROPERTY_TRANSITION"
+                    c:identifier="CLUTTER_PROPERTY_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PROPERTY_TRANSITION_CLASS"
+                    c:identifier="CLUTTER_PROPERTY_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PROPERTY_TRANSITION_GET_CLASS"
+                    c:identifier="CLUTTER_PROPERTY_TRANSITION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="PadButtonEvent" c:type="ClutterPadButtonEvent">
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="515"/>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="button" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="group" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="mode" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="PadRingEvent" c:type="ClutterPadRingEvent">
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="547"/>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="ring_source" writable="1">
+        <type name="InputDevicePadSource"
+              c:type="ClutterInputDevicePadSource"/>
+      </field>
+      <field name="ring_number" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="group" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="angle" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="mode" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="PadStripEvent" c:type="ClutterPadStripEvent">
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="531"/>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="strip_source" writable="1">
+        <type name="InputDevicePadSource"
+              c:type="ClutterInputDevicePadSource"/>
+      </field>
+      <field name="strip_number" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="group" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="mode" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+    </record>
+    <class name="PageTurnEffect"
+           c:symbol-prefix="page_turn_effect"
+           c:type="ClutterPageTurnEffect"
+           version="1.4"
+           parent="DeformEffect"
+           glib:type-name="ClutterPageTurnEffect"
+           glib:get-type="clutter_page_turn_effect_get_type"
+           glib:type-struct="PageTurnEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-page-turn-effect.h"
+           line="43">#ClutterPageTurnEffect is an opaque structure
+whose members can only be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                       line="52"/>
+      <constructor name="new"
+                   c:identifier="clutter_page_turn_effect_new"
+                   version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="274">Creates a new #ClutterPageTurnEffect instance with the given parameters</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-page-turn-effect.c"
+               line="282">the newly created #ClutterPageTurnEffect</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="period" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="276">the period of the page curl, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="277">the angle of the page curl, between 0.0 and 360.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="radius" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="278">the radius of the page curl, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_angle"
+              c:identifier="clutter_page_turn_effect_get_angle"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="366">Retrieves the value set using clutter_page_turn_effect_get_angle()</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-page-turn-effect.c"
+               line="372">the angle of the page curling</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="368">a #ClutterPageTurnEffect:</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_period"
+              c:identifier="clutter_page_turn_effect_get_period"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="325">Retrieves the value set using clutter_page_turn_effect_get_period()</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-page-turn-effect.c"
+               line="331">the period of the page curling</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="327">a #ClutterPageTurnEffect</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_radius"
+              c:identifier="clutter_page_turn_effect_get_radius"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="406">Retrieves the value set using clutter_page_turn_effect_set_radius()</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-page-turn-effect.c"
+               line="412">the radius of the page curling</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="408">a #ClutterPageTurnEffect</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_angle"
+              c:identifier="clutter_page_turn_effect_set_angle"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="343">Sets the angle of the page curling, in degrees</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="345">#ClutterPageTurnEffect</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="346">the angle of the page curl, in degrees</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_period"
+              c:identifier="clutter_page_turn_effect_set_period"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="301">Sets the period of the page curling, between 0.0 (no curling)
+and 1.0 (fully curled)</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="303">a #ClutterPageTurnEffect</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+          <parameter name="period" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="304">the period of the page curl, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_radius"
+              c:identifier="clutter_page_turn_effect_set_radius"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="384">Sets the radius of the page curling</doc>
+        <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="386">a #ClutterPageTurnEffect:</doc>
+            <type name="PageTurnEffect" c:type="ClutterPageTurnEffect*"/>
+          </instance-parameter>
+          <parameter name="radius" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-page-turn-effect.c"
+                 line="387">the radius of the page curling, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="angle"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="231">The angle of the page rotation, in degrees, between 0.0 and 360.0</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="period"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="214">The period of the page turn, between 0.0 (no curling) and
+1.0 (fully curled)</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="radius"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-page-turn-effect.c"
+             line="247">The radius of the page curl, in pixels</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+    </class>
+    <record name="PageTurnEffectClass"
+            c:type="ClutterPageTurnEffectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="PageTurnEffect">
+      <source-position filename="../clutter/clutter/clutter-page-turn-effect.h"
+                       line="52"/>
+    </record>
+    <record name="PaintContext"
+            c:type="ClutterPaintContext"
+            glib:type-name="ClutterPaintContext"
+            glib:get-type="clutter_paint_context_get_type"
+            c:symbol-prefix="paint_context">
+      <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                       line="30"/>
+      <constructor name="new_for_framebuffer"
+                   c:identifier="clutter_paint_context_new_for_framebuffer"
+                   introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="46"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintContext" c:type="ClutterPaintContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="framebuffer" transfer-ownership="none">
+            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+          </parameter>
+          <parameter name="redraw_clip" transfer-ownership="none">
+            <type name="cairo.Region" c:type="const cairo_region_t*"/>
+          </parameter>
+          <parameter name="paint_flags" transfer-ownership="none">
+            <type name="PaintFlag" c:type="ClutterPaintFlag"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="destroy" c:identifier="clutter_paint_context_destroy">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_framebuffer"
+              c:identifier="clutter_paint_context_get_framebuffer">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-context.c"
+               line="141">The #CoglFramebuffer used for drawing</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-context.c"
+                 line="139">The #ClutterPaintContext</doc>
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_paint_flags"
+              c:identifier="clutter_paint_context_get_paint_flags"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <type name="PaintFlag" c:type="ClutterPaintFlag"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_redraw_clip"
+              c:identifier="clutter_paint_context_get_redraw_clip">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="cairo.Region" c:type="const cairo_region_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stage_view"
+              c:identifier="clutter_paint_context_get_stage_view"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="63"/>
+        <return-value>
+          <type name="StageView" c:type="ClutterStageView*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="pop_framebuffer"
+              c:identifier="clutter_paint_context_pop_framebuffer">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="push_framebuffer"
+              c:identifier="clutter_paint_context_push_framebuffer">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+          <parameter name="framebuffer" transfer-ownership="none">
+            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="clutter_paint_context_ref">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="51"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintContext" c:type="ClutterPaintContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="clutter_paint_context_unref">
+        <source-position filename="../clutter/clutter/clutter-paint-context.h"
+                         line="54"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="PaintFlag"
+              glib:type-name="ClutterPaintFlag"
+              glib:get-type="clutter_paint_flag_get_type"
+              c:type="ClutterPaintFlag">
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_PAINT_FLAG_NONE"
+              glib:nick="none">
+      </member>
+      <member name="no_cursors"
+              value="1"
+              c:identifier="CLUTTER_PAINT_FLAG_NO_CURSORS"
+              glib:nick="no-cursors">
+      </member>
+      <member name="force_cursors"
+              value="2"
+              c:identifier="CLUTTER_PAINT_FLAG_FORCE_CURSORS"
+              glib:nick="force-cursors">
+      </member>
+      <member name="clear"
+              value="4"
+              c:identifier="CLUTTER_PAINT_FLAG_CLEAR"
+              glib:nick="clear">
+      </member>
+    </bitfield>
+    <class name="PaintNode"
+           c:symbol-prefix="paint_node"
+           c:type="ClutterPaintNode"
+           version="1.10"
+           abstract="1"
+           glib:type-name="ClutterPaintNode"
+           glib:get-type="clutter_paint_node_get_type"
+           glib:type-struct="PaintNodeClass"
+           glib:fundamental="1"
+           glib:ref-func="clutter_paint_node_ref"
+           glib:unref-func="clutter_paint_node_unref"
+           glib:set-value-func="clutter_value_set_paint_node"
+           glib:get-value-func="clutter_value_get_paint_node">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="44">The `ClutterPaintNode` structure contains only private data
+and it should be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="42"/>
+      <method name="add_child"
+              c:identifier="clutter_paint_node_add_child"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="368">Adds @child to the list of children of @node.
+
+This function will acquire a reference on @child.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="67"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="370">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="371">the child #ClutterPaintNode to add</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_multitexture_rectangle"
+              c:identifier="clutter_paint_node_add_multitexture_rectangle">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="912">Adds a rectangle region to the @node, with multitexture coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="81"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="914">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="915">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+          <parameter name="text_coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="916">array of multitexture values</doc>
+            <type name="gfloat" c:type="const float*"/>
+          </parameter>
+          <parameter name="text_coords_len" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="917">number of items of @text_coords</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_primitive"
+              c:identifier="clutter_paint_node_add_primitive"
+              version="1.10"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="938">Adds a region described by a Cogl primitive to the @node.
+
+This function acquires a reference on @primitive, so it is safe
+to call cogl_object_unref() when it returns.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="87"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="940">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="primitive" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="941">a Cogl primitive</doc>
+            <type c:type="CoglPrimitive*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rectangle"
+              c:identifier="clutter_paint_node_add_rectangle"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="854">Adds a rectangle region to the @node, as described by the
+passed @rect.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="70"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="856">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="857">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_texture_rectangle"
+              c:identifier="clutter_paint_node_add_texture_rectangle"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="879">Adds a rectangle region to the @node, with texture coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="73"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="881">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="882">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="883">the left X coordinate of the texture</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="884">the top Y coordinate of the texture</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="885">the right X coordinate of the texture</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="886">the bottom Y coordinate of the texture</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_framebuffer"
+              c:identifier="clutter_paint_node_get_framebuffer">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="1164">Retrieves the #CoglFramebuffer that @node will draw
+into, if it the root node has a custom framebuffer set.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="1171">a #CoglFramebuffer or %NULL if no custom one is
+set.</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="1166">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="paint" c:identifier="clutter_paint_node_paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="965">Paints the @node using the class implementation, traversing
+its children, if any.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="53"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="967">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="paint_context" transfer-ownership="none">
+            <type name="PaintContext" c:type="ClutterPaintContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="clutter_paint_node_ref" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="327">Acquires a reference on @node.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="48"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="333">the #ClutterPaintNode</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="329">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_name"
+              c:identifier="clutter_paint_node_set_name"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="289">Sets a user-readable @name for @node.
+
+The @name will be used for debugging purposes.
+
+The @node will intern @name using g_intern_string(). If you have access to a
+static string, use clutter_paint_node_set_static_name() instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="57"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="291">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-node.c"
+                 line="292">a string annotating the @node</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_static_name"
+              c:identifier="clutter_paint_node_set_static_name"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="312">Like clutter_paint_node_set_name() but uses a static or interned string
+containing the name.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unref"
+              c:identifier="clutter_paint_node_unref"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="347">Releases a reference on @node.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                         line="50"/>
+        <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="../clutter/clutter/clutter-paint-node.c"
+                 line="349">a #ClutterPaintNode</doc>
+            <type name="PaintNode" c:type="ClutterPaintNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </class>
+    <record name="PaintNodeClass"
+            c:type="ClutterPaintNodeClass"
+            glib:is-gtype-struct-for="PaintNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="53">The `ClutterPaintNodeClass` structure contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="42"/>
+    </record>
+    <record name="PaintNodePrivate"
+            c:type="ClutterPaintNodePrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="41"/>
+    </record>
+    <record name="PaintVolume"
+            c:type="ClutterPaintVolume"
+            version="1.4"
+            glib:type-name="ClutterPaintVolume"
+            glib:get-type="clutter_paint_volume_get_type"
+            c:symbol-prefix="paint_volume">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="106">#ClutterPaintVolume is an opaque structure
+whose members cannot be directly accessed.
+
+A #ClutterPaintVolume represents an
+a bounding volume whose internal representation isn't defined but
+can be set and queried in terms of an axis aligned bounding box.
+
+A #ClutterPaintVolume for a #ClutterActor
+is defined to be relative from the current actor modelview matrix.
+
+Other internal representation and methods for describing the
+bounding volume may be added in the future.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="124"/>
+      <method name="copy"
+              c:identifier="clutter_paint_volume_copy"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="119">Copies @pv into a new #ClutterPaintVolume</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="338"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-volume.c"
+               line="125">a newly allocated copy of a #ClutterPaintVolume</doc>
+          <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="121">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="clutter_paint_volume_free"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="151">Frees the resources allocated by @pv</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="340"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="153">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_depth"
+              c:identifier="clutter_paint_volume_get_depth"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="466">Retrieves the depth of the volume's, axis aligned, bounding box.
+
+In other words; this takes into account what actor's coordinate
+space @pv belongs too and conceptually fits an axis aligned box
+around the volume. It returns the size of that bounding box as
+measured along the z-axis.
+
+If, for example, clutter_actor_get_transformed_paint_volume()
+is used to transform a 2D child actor that is 100px wide, 100px
+high and 0px deep into container coordinates then the depth might
+not simply be 0px if the child actor has a 3D rotation applied to
+it.
+
+Remember: if clutter_actor_get_transformed_paint_volume() is
+used then the transformed volume will be defined relative to the
+container actor and in container coordinates a 2D child actor
+can have a 3D bounding volume.
+
+There are no accuracy guarantees for the reported depth,
+except that it must always be greater than, or equal to, the actor's
+depth. This is because actors may report simple, loose fitting paint
+volumes for efficiency.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="362"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-volume.c"
+               line="493">the depth, in units of @pv's local coordinate system.</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="468">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_height"
+              c:identifier="clutter_paint_volume_get_height"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="373">Retrieves the height of the volume's, axis aligned, bounding box.
+
+In other words; this takes into account what actor's coordinate
+space @pv belongs too and conceptually fits an axis aligned box
+around the volume. It returns the size of that bounding box as
+measured along the y-axis.
+
+If, for example, clutter_actor_get_transformed_paint_volume()
+is used to transform a 2D child actor that is 100px wide, 100px
+high and 0px deep into container coordinates then the height might
+not simply be 100px if the child actor has a 3D rotation applied to
+it.
+
+Remember: if clutter_actor_get_transformed_paint_volume() is
+used then a transformed child volume will be defined relative to the
+ancestor container actor and so a 2D child actor
+can have a 3D bounding volume.
+
+There are no accuracy guarantees for the reported height,
+except that it must always be greater than, or equal to, the actor's
+height. This is because actors may report simple, loose fitting paint
+volumes for efficiency.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="357"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-volume.c"
+               line="400">the height, in units of @pv's local coordinate system.</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="375">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_origin"
+              c:identifier="clutter_paint_volume_get_origin"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="210">Retrieves the origin of the #ClutterPaintVolume.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="346"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="212">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="vertex"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="213">the return location for a #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="graphene_point3d_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="clutter_paint_volume_get_width"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="281">Retrieves the width of the volume's, axis aligned, bounding box.
+
+In other words; this takes into account what actor's coordinate
+space @pv belongs too and conceptually fits an axis aligned box
+around the volume. It returns the size of that bounding box as
+measured along the x-axis.
+
+If, for example, clutter_actor_get_transformed_paint_volume()
+is used to transform a 2D child actor that is 100px wide, 100px
+high and 0px deep into container coordinates then the width might
+not simply be 100px if the child actor has a 3D rotation applied to
+it.
+
+Remember: if clutter_actor_get_transformed_paint_volume() is
+used then a transformed child volume will be defined relative to the
+ancestor container actor and so a 2D child actor can have a 3D
+bounding volume.
+
+There are no accuracy guarantees for the reported width,
+except that it must always be greater than, or equal to, the
+actor's width. This is because actors may report simple, loose
+fitting paint volumes for efficiency.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="352"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-volume.c"
+               line="308">the width, in units of @pv's local coordinate system.</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="283">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_depth"
+              c:identifier="clutter_paint_volume_set_depth"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="425">Sets the depth of the paint volume. The depth is measured along
+the z axis in the actor coordinates that @pv is associated with.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="359"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="427">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="depth" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="428">the depth of the paint volume, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_allocation"
+              c:identifier="clutter_paint_volume_set_from_allocation"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="1022">Sets the #ClutterPaintVolume from the allocation of @actor.
+
+This function should be used when overriding the
+#ClutterActorClass.get_paint_volume() by #ClutterActor sub-classes
+that do not paint outside their allocation.
+
+A typical example is:
+
+|[
+static gboolean
+my_actor_get_paint_volume (ClutterActor       *self,
+                           ClutterPaintVolume *volume)
+{
+  return clutter_paint_volume_set_from_allocation (volume, self);
+}
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="371"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-volume.c"
+               line="1044">%TRUE if the paint volume was successfully set, and %FALSE
+  otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="1024">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="1025">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_height"
+              c:identifier="clutter_paint_volume_set_height"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="333">Sets the height of the paint volume. The height is measured along
+the y axis in the actor coordinates that @pv is associated with.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="354"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="335">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="336">the height of the paint volume, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_origin"
+              c:identifier="clutter_paint_volume_set_origin"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="170">Sets the origin of the paint volume.
+
+The origin is defined as the X, Y and Z coordinates of the top-left
+corner of an actor's paint volume, in actor coordinates.
+
+The default is origin is assumed at: (0, 0, 0)</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="343"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="172">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="origin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="173">a #graphene_point3d_t</doc>
+            <type name="Graphene.Point3D" c:type="const graphene_point3d_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_width"
+              c:identifier="clutter_paint_volume_set_width"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="240">Sets the width of the paint volume. The width is measured along
+the x axis in the actor coordinates that @pv is associated with.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="349"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="242">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="243">the width of the paint volume, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union"
+              c:identifier="clutter_paint_volume_union"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="518">Updates the geometry of @pv to encompass @pv and @another_pv.
+
+There are no guarantees about how precisely the two volumes
+will be unioned.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="364"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="520">The first #ClutterPaintVolume and destination for resulting
+     union</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="another_pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="522">A second #ClutterPaintVolume to union with @pv</doc>
+            <type name="PaintVolume" c:type="const ClutterPaintVolume*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union_box"
+              c:identifier="clutter_paint_volume_union_box"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-volume.c"
+             line="645">Unions the 2D region represented by @box to a #ClutterPaintVolume.
+
+This function is similar to clutter_paint_volume_union(), but it is
+specific for 2D regions.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="367"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="647">a #ClutterPaintVolume</doc>
+            <type name="PaintVolume" c:type="ClutterPaintVolume*"/>
+          </instance-parameter>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-volume.c"
+                 line="648">a #ClutterActorBox to union to @pv</doc>
+            <type name="ActorBox" c:type="const ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="PanAction"
+           c:symbol-prefix="pan_action"
+           c:type="ClutterPanAction"
+           version="1.12"
+           parent="GestureAction"
+           glib:type-name="ClutterPanAction"
+           glib:get-type="clutter_pan_action_get_type"
+           glib:type-struct="PanActionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-pan-action.h"
+           line="55">The #ClutterPanAction structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="100"/>
+      <constructor name="new"
+                   c:identifier="clutter_pan_action_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="622">Creates a new #ClutterPanAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="627">the newly created #ClutterPanAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="pan">
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="is_interpolated" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="pan_stopped">
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_acceleration_factor"
+              c:identifier="clutter_pan_action_get_acceleration_factor"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="797">Retrieves the initial acceleration factor for interpolated ::pan events.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="126"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="803">The initial acceleration factor for interpolated events.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="799">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_constrained_motion_delta"
+              c:identifier="clutter_pan_action_get_constrained_motion_delta"
+              version="1.24">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="880">Retrieves the delta, in stage space, dependent on the current state
+of the #ClutterPanAction, and respecting the constraint specified by the
+#ClutterPanAction:pan-axis property.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="892">the distance since last motion event</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="882">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="883">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="delta_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="885">return location for the X delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="delta_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="886">return location for the Y delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_deceleration"
+              c:identifier="clutter_pan_action_get_deceleration"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="759">Retrieves the deceleration rate of interpolated ::pan events.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="121"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="765">The deceleration rate of the interpolated events.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="761">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_interpolate"
+              c:identifier="clutter_pan_action_get_interpolate"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="715">Checks if the action should emit ::pan events even after releasing
+the pointer during a panning gesture, to emulate some kind of
+kinetic inertia.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="116"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="723">%TRUE if interpolated events emission is active.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="717">a #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_interpolated_coords"
+              c:identifier="clutter_pan_action_get_interpolated_coords"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="814">Retrieves the coordinates, in stage space, of the latest interpolated
+event, analogous to clutter_gesture_action_get_motion_coords().</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="128"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="816">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="interpolated_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="817">return location for the latest
+  interpolated event's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="interpolated_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="819">return location for the latest
+  interpolated event's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_interpolated_delta"
+              c:identifier="clutter_pan_action_get_interpolated_delta"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="845">Retrieves the delta, in stage space, since the latest interpolated
+event, analogous to clutter_gesture_action_get_motion_delta().</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="132"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="856">the distance since the latest interpolated event</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="847">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="delta_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="848">return location for the X delta since
+  the latest interpolated event</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="delta_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="850">return location for the Y delta since
+  the latest interpolated event</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_coords"
+              c:identifier="clutter_pan_action_get_motion_coords"
+              version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="995">Retrieves the coordinates, in stage space, dependent on the current state
+of the #ClutterPanAction. If it is inactive, both fields will be
+set to 0. If it is panning by user action, the values will be equivalent
+to those returned by clutter_gesture_action_get_motion_coords().
+If it is interpolating with some form of kinetic scrolling, the values
+will be equivalent to those returned by
+clutter_pan_action_get_interpolated_coords(). This is a convenience
+method designed to be used in replacement "pan" signal handlers.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="141"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="997">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="998">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="motion_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="1000">return location for the X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="motion_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="1001">return location for the Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_delta"
+              c:identifier="clutter_pan_action_get_motion_delta"
+              version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="943">Retrieves the delta, in stage space, dependent on the current state
+of the #ClutterPanAction. If it is inactive, both fields will be
+set to 0. If it is panning by user action, the values will be equivalent
+to those returned by clutter_gesture_action_get_motion_delta().
+If it is interpolating with some form of kinetic scrolling, the values
+will be equivalent to those returned by
+clutter_pan_action_get_interpolated_delta(). This is a convenience
+method designed to be used in replacement "pan" signal handlers.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="945">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="946">the touch point index, with 0 being the first touch
+  point received by the action</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="delta_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="948">return location for the X delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="delta_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="949">return location for the Y delta</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pan_axis"
+              c:identifier="clutter_pan_action_get_pan_axis"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="666">Retrieves the axis constraint set by clutter_pan_action_set_pan_axis()</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="111"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="672">the axis constraint</doc>
+          <type name="PanAxis" c:type="ClutterPanAxis"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="668">a #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_acceleration_factor"
+              c:identifier="clutter_pan_action_set_acceleration_factor"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="776">Factor applied to the momentum velocity at the time of releasing the
+pointer when generating interpolated ::pan events.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="123"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="778">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="779">The acceleration factor</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_deceleration"
+              c:identifier="clutter_pan_action_set_deceleration"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="736">Sets the deceleration rate of the interpolated ::pan events generated
+after a pan gesture. This is approximately the value that the momentum
+at the time of releasing the pointer is divided by every 60th of a second.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="118"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="738">A #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="739">The deceleration rate</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_interpolate"
+              c:identifier="clutter_pan_action_set_interpolate"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="685">Sets whether the action should emit interpolated ::pan events
+after the drag has ended, to emulate the gesture kinetic inertia.</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="113"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="687">a #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="should_interpolate" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="688">whether to enable interpolated pan events</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pan_axis"
+              c:identifier="clutter_pan_action_set_pan_axis"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="637">Restricts the panning action to a specific axis</doc>
+        <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                         line="108"/>
+        <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="../clutter/clutter/clutter-pan-action.c"
+                 line="639">a #ClutterPanAction</doc>
+            <type name="PanAction" c:type="ClutterPanAction*"/>
+          </instance-parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="640">the axis to constraint the panning to</doc>
+            <type name="PanAxis" c:type="ClutterPanAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="acceleration-factor"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="539">The initial acceleration factor
+
+The kinetic momentum measured at the time of releasing the pointer will
+be multiplied by the factor specified by this property before being used
+to generate interpolated ::pan events.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="deceleration"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="522">The rate at which the interpolated panning will decelerate in
+
+#ClutterPanAction will emit interpolated ::pan events with decreasing
+scroll deltas, using the rate specified by this property.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="interpolate"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="508">Whether interpolated events emission is enabled.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="pan-axis"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="493">Constraints the panning action to the specified axis</doc>
+        <type name="PanAxis"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GestureAction" c:type="ClutterGestureAction"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="PanActionPrivate" c:type="ClutterPanActionPrivate*"/>
+      </field>
+      <glib:signal name="pan" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="565">The ::pan signal is emitted to keep track of the motion during
+a pan gesture. @is_interpolated is set to %TRUE during the
+interpolation phase of the pan, after the drag has ended and
+the :interpolate property was set to %TRUE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-pan-action.c"
+               line="577">%TRUE if the pan should continue, and %FALSE if
+  the pan should be cancelled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="568">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="is_interpolated" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="569">if the event is the result of interpolating
+                  the motion velocity at the end of the drag</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="pan-stopped" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-pan-action.c"
+             line="593">The ::pan-stopped signal is emitted at the end of the interpolation
+phase of the pan action, only when :interpolate is set to %TRUE.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-pan-action.c"
+                 line="596">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="PanActionClass"
+            c:type="ClutterPanActionClass"
+            glib:is-gtype-struct-for="PanAction"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-pan-action.h"
+           line="71">The #ClutterPanActionClass structure contains
+only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="100"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GestureActionClass" c:type="ClutterGestureActionClass"/>
+      </field>
+      <field name="pan">
+        <callback name="pan">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="PanAction" c:type="ClutterPanAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="is_interpolated" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pan_stopped">
+        <callback name="pan_stopped">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="PanAction" c:type="ClutterPanAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action1" introspectable="0">
+        <callback name="_clutter_pan_action1">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="94"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action2" introspectable="0">
+        <callback name="_clutter_pan_action2">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action3" introspectable="0">
+        <callback name="_clutter_pan_action3">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action4" introspectable="0">
+        <callback name="_clutter_pan_action4">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="97"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action5" introspectable="0">
+        <callback name="_clutter_pan_action5">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="98"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_pan_action6" introspectable="0">
+        <callback name="_clutter_pan_action6">
+          <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                           line="99"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="PanActionPrivate"
+            c:type="ClutterPanActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-pan-action.h"
+                       line="52"/>
+    </record>
+    <enumeration name="PanAxis"
+                 version="1.12"
+                 glib:type-name="ClutterPanAxis"
+                 glib:get-type="clutter_pan_axis_get_type"
+                 c:type="ClutterPanAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1146">The axis of the constraint that should be applied on the
+panning action</doc>
+      <member name="axis_none"
+              value="0"
+              c:identifier="CLUTTER_PAN_AXIS_NONE"
+              glib:nick="axis-none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1148">No constraint</doc>
+      </member>
+      <member name="x_axis"
+              value="1"
+              c:identifier="CLUTTER_PAN_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1149">Set a constraint on the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="2"
+              c:identifier="CLUTTER_PAN_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1150">Set a constraint on the Y axis</doc>
+      </member>
+      <member name="axis_auto"
+              value="3"
+              c:identifier="CLUTTER_PAN_AXIS_AUTO"
+              glib:nick="axis-auto">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1151">Constrain panning automatically based on initial
+  movement (available since 1.24)</doc>
+      </member>
+    </enumeration>
+    <class name="ParamSpecColor"
+           c:symbol-prefix="param_color"
+           c:type="ClutterParamSpecColor"
+           version="1.0"
+           introspectable="0"
+           parent="GObject.ParamSpec"
+           glib:type-name="ClutterParamSpecColor"
+           glib:get-type="clutter_param_color_get_type"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.h"
+           line="162">A #GParamSpec subclass for defining properties holding
+a #ClutterColor.</doc>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_value">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.h"
+             line="164">default color value</doc>
+        <type name="Color" c:type="ClutterColor*"/>
+      </field>
+    </class>
+    <class name="ParamSpecUnit"
+           c:symbol-prefix="param_units"
+           parent="GObject.ParamSpec"
+           glib:type-name="ClutterParamSpecUnit"
+           glib:get-type="clutter_param_units_get_type"
+           glib:fundamental="1">
+    </class>
+    <record name="ParamSpecUnits"
+            c:type="ClutterParamSpecUnits"
+            version="1.0"
+            introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.h"
+           line="139">#GParamSpec subclass for unit based properties.</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="161"/>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.h"
+             line="141">default type</doc>
+        <type name="UnitType" c:type="ClutterUnitType"/>
+      </field>
+      <field name="default_value" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.h"
+             line="142">default value</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="minimum" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.h"
+             line="143">lower boundary</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="maximum" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.h"
+             line="144">higher boundary</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <class name="Path"
+           c:symbol-prefix="path"
+           c:type="ClutterPath"
+           version="1.0"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterPath"
+           glib:get-type="clutter_path_get_type"
+           glib:type-struct="PathClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path.h"
+           line="60">The #ClutterPath struct contains only private data and should
+be accessed with the functions below.</doc>
+      <source-position filename="../clutter/clutter/clutter-path.h" line="87"/>
+      <constructor name="new" c:identifier="clutter_path_new" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="241">Creates a new #ClutterPath instance with no nodes.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="93"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="246">the newly created #ClutterPath</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_with_description"
+                   c:identifier="clutter_path_new_with_description"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="258">Creates a new #ClutterPath instance with the nodes described in
+@desc. See clutter_path_add_string() for details of the format of
+the string.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="95"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="266">the newly created #ClutterPath</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+        <parameters>
+          <parameter name="desc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="260">a string describing the path</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_cairo_path"
+              c:identifier="clutter_path_add_cairo_path"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="757">Add the nodes of the Cairo path to the end of @path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="137"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="759">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="cpath" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="760">a Cairo path</doc>
+            <type name="cairo.Path" c:type="const cairo_path_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_close"
+              c:identifier="clutter_path_add_close"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="495">Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a
+straight line from the last node to the last %CLUTTER_PATH_MOVE_TO
+type node.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="129"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="497">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="add_curve_to"
+              c:identifier="clutter_path_add_curve_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="430">Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes
+the actor to follow a bezier from the last node to (@x_3, @y_3) using
+(@x_1, @y_1) and (@x_2,@y_2) as control points.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="432">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="433">the x coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="434">the y coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="435">the x coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="436">the y coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="437">the x coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="438">the y coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_line_to"
+              c:identifier="clutter_path_add_line_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="388">Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the
+actor to move to the new coordinates in a straight line.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="390">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="391">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="392">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_move_to"
+              c:identifier="clutter_path_add_move_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="345">Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually
+used as the first node in a path. It can also be used in the middle
+of the path to cause the actor to jump to the new coordinate.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="347">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="348">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="349">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_node"
+              c:identifier="clutter_path_add_node"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="732">Adds @node to the end of the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="134"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="734">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="735">a #ClutterPathNode</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_curve_to"
+              c:identifier="clutter_path_add_rel_curve_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="463">Same as clutter_path_add_curve_to() except the coordinates are
+relative to the previous node.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="121"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="465">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="466">the x coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="467">the y coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="468">the x coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="469">the y coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="470">the x coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_3" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="471">the y coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_line_to"
+              c:identifier="clutter_path_add_rel_line_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="409">Same as clutter_path_add_line_to() except the coordinates are
+relative to the previous node.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="411">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="412">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="413">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_move_to"
+              c:identifier="clutter_path_add_rel_move_to"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="367">Same as clutter_path_add_move_to() except the coordinates are
+relative to the previous node.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="101"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="369">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="370">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="371">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_string"
+              c:identifier="clutter_path_add_string"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="679">Adds new nodes to the end of the path as described in @str. The
+format is a subset of the SVG path format. Each node is represented
+by a letter and is followed by zero, one or three pairs of
+coordinates. The coordinates can be separated by spaces or a
+comma. The types are:
+
+ - `M`: Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates.
+ - `L`: Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates.
+ - `C`: Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates.
+ - `z`: Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed.
+
+The M, L and C commands can also be specified in lower case which
+means the coordinates are relative to the previous node.
+
+For example, to move an actor in a 100 by 100 pixel square centered
+on the point 300,300 you could use the following path:
+
+|[
+  M 250,350 l 0 -100 L 350,250 l 0 100 z
+]|
+
+If the path description isn't valid %FALSE will be returned and no
+nodes will be added.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="131"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="708">%TRUE is the path description was valid or %FALSE
+otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="681">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="682">a string describing the new nodes</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear" c:identifier="clutter_path_clear" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="278">Removes all nodes from the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="168"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="280">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="foreach" c:identifier="clutter_path_foreach" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="950">Calls a function for each node of the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="148"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="952">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="953">the function to call with each node</doc>
+            <type name="PathCallback" c:type="ClutterPathCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="954">user data to pass to the function</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="clutter_path_get_description"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1120">Returns a newly allocated string describing the path in the same
+format as used by clutter_path_add_string().</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="163"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1127">a string description of the path. Free with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1122">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_length"
+              c:identifier="clutter_path_get_length"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1426">Retrieves an approximation of the total length of the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1432">the length of the path.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1428">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_nodes"
+              c:identifier="clutter_path_get_n_nodes"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="872">Retrieves the number of nodes in the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="140"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="878">the number of nodes.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="874">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_node"
+              c:identifier="clutter_path_get_node"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="894">Retrieves the node of the path indexed by @index.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="896">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="897">the node number to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="node"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="898">a location to store a copy of the node</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_nodes"
+              c:identifier="clutter_path_get_nodes"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="923">Returns a #GSList of #ClutterPathNode&lt;!-- --&gt;s. The list should be
+freed with g_slist_free(). The nodes are owned by the path and
+should not be freed. Altering the path may cause the nodes in the
+list to become invalid so you should copy them if you want to keep
+the list.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="146"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="933">a
+  list of nodes in the path.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="PathNode"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="925">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_position"
+              c:identifier="clutter_path_get_position"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1330">The value in @progress represents a position along the path where
+0.0 is the beginning and 1.0 is the end of the path. An
+interpolated position is then stored in @position.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="173"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1340">index of the node used to calculate the position.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1332">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1333">a position along the path as a fraction of its length</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="position"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1334">location to store the position</doc>
+            <type name="Knot" c:type="ClutterKnot*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_node"
+              c:identifier="clutter_path_insert_node"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="974">Inserts @node into the path before the node at the given offset. If
+@index_ is negative it will append the node to the end of the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="152"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="976">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="977">offset of where to insert the node</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="978">the node to insert</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_node"
+              c:identifier="clutter_path_remove_node"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1012">Removes the node at the given offset from the path.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="156"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1014">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1015">index of the node to remove</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="replace_node"
+              c:identifier="clutter_path_replace_node"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1053">Replaces the node at offset @index_ with @node.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="159"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1055">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1056">index to the existing node</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1057">the replacement node</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description"
+              c:identifier="clutter_path_set_description"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1085">Replaces all of the nodes in the path with nodes described by
+@str. See clutter_path_add_string() for details of the format.
+
+If the string is invalid then %FALSE is returned and the path is
+unaltered.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="165"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1096">%TRUE is the path was valid, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1087">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1088">a string describing the path</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_cairo_path"
+              c:identifier="clutter_path_to_cairo_path"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="853">Add the nodes of the ClutterPath to the path in the Cairo context.</doc>
+        <source-position filename="../clutter/clutter/clutter-path.h"
+                         line="170"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="855">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </instance-parameter>
+          <parameter name="cr" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="856">a Cairo context</doc>
+            <type name="cairo.Context" c:type="cairo_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="description" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="length" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <field name="parent" readable="0" private="1">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="PathPrivate" c:type="ClutterPathPrivate*"/>
+      </field>
+    </class>
+    <callback name="PathCallback" c:type="ClutterPathCallback" version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path.h"
+           line="47">This function is passed to clutter_path_foreach() and will be
+called for each node contained in the path.</doc>
+      <source-position filename="../clutter/clutter/clutter-path.h" line="57"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.h"
+               line="49">the node</doc>
+          <type name="PathNode" c:type="const ClutterPathNode*"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.h"
+               line="50">optional data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="PathClass"
+            c:type="ClutterPathClass"
+            glib:is-gtype-struct-for="Path"
+            version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path.h"
+           line="76">The #ClutterPathClass struct contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-path.h" line="87"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+    </record>
+    <class name="PathConstraint"
+           c:symbol-prefix="path_constraint"
+           c:type="ClutterPathConstraint"
+           version="1.6"
+           parent="Constraint"
+           glib:type-name="ClutterPathConstraint"
+           glib:get-type="clutter_path_constraint_get_type"
+           glib:type-struct="PathConstraintClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path-constraint.h"
+           line="41">#ClutterPathConstraint is an opaque structure
+whose members cannot be directly accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                       line="50"/>
+      <constructor name="new"
+                   c:identifier="clutter_path_constraint_new"
+                   version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="272">Creates a new #ClutterPathConstraint with the given @path and @offset</doc>
+        <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path-constraint.c"
+               line="279">the newly created #ClutterPathConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="path"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="274">a #ClutterPath, or %NULL</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="275">the offset along the #ClutterPath</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_offset"
+              c:identifier="clutter_path_constraint_get_offset"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="378">Retrieves the offset along the #ClutterPath used by @constraint.</doc>
+        <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path-constraint.c"
+               line="384">the offset</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="380">a #ClutterPathConstraint</doc>
+            <type name="PathConstraint" c:type="ClutterPathConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_path"
+              c:identifier="clutter_path_constraint_get_path"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="332">Retrieves a pointer to the #ClutterPath used by @constraint.</doc>
+        <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path-constraint.c"
+               line="338">the #ClutterPath used by the
+  #ClutterPathConstraint, or %NULL. The returned #ClutterPath is owned
+  by the constraint and it should not be unreferenced</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="334">a #ClutterPathConstraint</doc>
+            <type name="PathConstraint" c:type="ClutterPathConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_offset"
+              c:identifier="clutter_path_constraint_set_offset"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="352">Sets the offset along the #ClutterPath used by @constraint.</doc>
+        <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="354">a #ClutterPathConstraint</doc>
+            <type name="PathConstraint" c:type="ClutterPathConstraint*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="355">the offset along the path</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_path"
+              c:identifier="clutter_path_constraint_set_path"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="295">Sets the @path to be followed by the #ClutterPathConstraint.
+
+The @constraint will take ownership of the #ClutterPath passed to this
+function.</doc>
+        <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="297">a #ClutterPathConstraint</doc>
+            <type name="PathConstraint" c:type="ClutterPathConstraint*"/>
+          </instance-parameter>
+          <parameter name="path"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="298">a #ClutterPath</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="offset"
+                version="1.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="215">The offset along the #ClutterPathConstraint:path, between -1.0 and 2.0.</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="path"
+                version="1.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="201">The #ClutterPath used to constrain the position of an actor.</doc>
+        <type name="Path"/>
+      </property>
+      <glib:signal name="node-reached" when="last" version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path-constraint.c"
+             line="241">The ::node-reached signal is emitted each time a
+#ClutterPathConstraint:offset value results in the actor
+passing a #ClutterPathNode</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="244">the #ClutterActor using the @constraint</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path-constraint.c"
+                 line="245">the index of the node that has been reached</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="PathConstraintClass"
+            c:type="ClutterPathConstraintClass"
+            disguised="1"
+            glib:is-gtype-struct-for="PathConstraint">
+      <source-position filename="../clutter/clutter/clutter-path-constraint.h"
+                       line="50"/>
+    </record>
+    <record name="PathNode"
+            c:type="ClutterPathNode"
+            version="1.0"
+            glib:type-name="ClutterPathNode"
+            glib:get-type="clutter_path_node_get_type"
+            c:symbol-prefix="path_node">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="298">Represents a single node of a #ClutterPath.
+
+Some of the coordinates in @points may be unused for some node
+types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one
+pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and
+%CLUTTER_PATH_CLOSE uses none.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="317"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="300">the node's type</doc>
+        <type name="PathNodeType" c:type="ClutterPathNodeType"/>
+      </field>
+      <field name="points" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="301">the coordinates of the node</doc>
+        <array zero-terminated="0" fixed-size="3">
+          <type name="Knot" c:type="ClutterKnot"/>
+        </array>
+      </field>
+      <method name="copy" c:identifier="clutter_path_node_copy" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1461">Makes an allocated copy of a node.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="323"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1467">the copied node.</doc>
+          <type name="PathNode" c:type="ClutterPathNode*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1463">a #ClutterPathNode</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="equal"
+              c:identifier="clutter_path_node_equal"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1492">Compares two nodes and checks if they are the same type with the
+same coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="327"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-path.c"
+               line="1500">%TRUE if the nodes are the same.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="node_a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1494">First node</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </instance-parameter>
+          <parameter name="node_b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-path.c"
+                 line="1495">Second node</doc>
+            <type name="PathNode" c:type="const ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_path_node_free" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-path.c"
+             line="1477">Frees the memory of an allocated node.</doc>
+        <source-position filename="../clutter/clutter/clutter-types.h"
+                         line="325"/>
+        <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="../clutter/clutter/clutter-path.c"
+                 line="1479">a #ClutterPathNode</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="PathNodeType"
+                 version="1.0"
+                 glib:type-name="ClutterPathNodeType"
+                 glib:get-type="clutter_path_node_type_get_type"
+                 c:type="ClutterPathNodeType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1255">Types of nodes in a #ClutterPath.</doc>
+      <member name="move_to"
+              value="0"
+              c:identifier="CLUTTER_PATH_MOVE_TO"
+              glib:nick="move-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1257">jump to the given position</doc>
+      </member>
+      <member name="line_to"
+              value="1"
+              c:identifier="CLUTTER_PATH_LINE_TO"
+              glib:nick="line-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1258">create a line from the last node to the
+  given position</doc>
+      </member>
+      <member name="curve_to"
+              value="2"
+              c:identifier="CLUTTER_PATH_CURVE_TO"
+              glib:nick="curve-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1260">bezier curve using the last position and
+  three control points.</doc>
+      </member>
+      <member name="close"
+              value="3"
+              c:identifier="CLUTTER_PATH_CLOSE"
+              glib:nick="close">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1262">create a line from the last node to the last
+  %CLUTTER_PATH_MOVE_TO node.</doc>
+      </member>
+      <member name="rel_move_to"
+              value="32"
+              c:identifier="CLUTTER_PATH_REL_MOVE_TO"
+              glib:nick="rel-move-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1264">same as %CLUTTER_PATH_MOVE_TO but with
+  coordinates relative to the last node.</doc>
+      </member>
+      <member name="rel_line_to"
+              value="33"
+              c:identifier="CLUTTER_PATH_REL_LINE_TO"
+              glib:nick="rel-line-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1266">same as %CLUTTER_PATH_LINE_TO but with
+  coordinates relative to the last node.</doc>
+      </member>
+      <member name="rel_curve_to"
+              value="34"
+              c:identifier="CLUTTER_PATH_REL_CURVE_TO"
+              glib:nick="rel-curve-to">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1268">same as %CLUTTER_PATH_CURVE_TO but with
+  coordinates relative to the last node.</doc>
+      </member>
+    </enumeration>
+    <record name="PathPrivate" c:type="ClutterPathPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-path.h" line="45"/>
+    </record>
+    <record name="Perspective"
+            c:type="ClutterPerspective"
+            version="0.4"
+            glib:type-name="ClutterPerspective"
+            glib:get-type="clutter_perspective_get_type"
+            c:symbol-prefix="perspective">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage.h"
+           line="95">Stage perspective definition.</doc>
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="115"/>
+      <field name="fovy" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.h"
+             line="97">the field of view angle, in degrees, in the y direction</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="aspect" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.h"
+             line="98">the aspect ratio that determines the field of view in the x
+  direction. The aspect ratio is the ratio of x (width) to y (height)</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z_near" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.h"
+             line="100">the distance from the viewer to the near clipping
+  plane (always positive)</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z_far" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.h"
+             line="102">the distance from the viewer to the far clipping
+  plane (always positive)</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <record name="PickContext"
+            c:type="ClutterPickContext"
+            glib:type-name="ClutterPickContext"
+            glib:get-type="clutter_pick_context_get_type"
+            c:symbol-prefix="pick_context">
+      <source-position filename="../clutter/clutter/clutter-pick-context.h"
+                       line="30"/>
+      <method name="destroy" c:identifier="clutter_pick_context_destroy">
+        <source-position filename="../clutter/clutter/clutter-pick-context.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_framebuffer"
+              c:identifier="clutter_pick_context_get_framebuffer"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-pick-context.h"
+                         line="47"/>
+        <return-value>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="clutter_pick_context_ref">
+        <source-position filename="../clutter/clutter/clutter-pick-context.h"
+                         line="38"/>
+        <return-value transfer-ownership="full">
+          <type name="PickContext" c:type="ClutterPickContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="clutter_pick_context_unref">
+        <source-position filename="../clutter/clutter/clutter-pick-context.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pick_context" transfer-ownership="none">
+            <type name="PickContext" c:type="ClutterPickContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="PickDebugFlag"
+              glib:type-name="ClutterPickDebugFlag"
+              glib:get-type="clutter_pick_debug_flag_get_type"
+              c:type="ClutterPickDebugFlag">
+      <member name="picking"
+              value="1"
+              c:identifier="CLUTTER_DEBUG_NOP_PICKING"
+              glib:nick="picking">
+      </member>
+    </bitfield>
+    <enumeration name="PickMode"
+                 version="1.0"
+                 glib:type-name="ClutterPickMode"
+                 glib:get-type="clutter_pick_mode_get_type"
+                 c:type="ClutterPickMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1110">Controls the paint cycle of the scene graph when in pick mode</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_PICK_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1112">Do not paint any actor</doc>
+      </member>
+      <member name="reactive"
+              value="1"
+              c:identifier="CLUTTER_PICK_REACTIVE"
+              glib:nick="reactive">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1113">Paint only the reactive actors</doc>
+      </member>
+      <member name="all"
+              value="2"
+              c:identifier="CLUTTER_PICK_ALL"
+              glib:nick="all">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1114">Paint all actors</doc>
+      </member>
+    </enumeration>
+    <class name="PipelineNode"
+           c:symbol-prefix="pipeline_node"
+           c:type="ClutterPipelineNode"
+           version="1.10"
+           parent="PaintNode"
+           glib:type-name="ClutterPipelineNode"
+           glib:get-type="clutter_pipeline_node_get_type"
+           glib:type-struct="PipelineNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="107">The #ClutterTextNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="116"/>
+      <constructor name="new"
+                   c:identifier="clutter_pipeline_node_new"
+                   version="1.10"
+                   introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-nodes.c"
+             line="553">Creates a new #ClutterPaintNode that will use the @pipeline to
+paint its contents.
+
+This function will acquire a reference on the passed @pipeline,
+so it is safe to call cogl_object_unref() when it returns.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="122"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-nodes.c"
+               line="563">the newly created #ClutterPaintNode.
+  Use clutter_paint_node_unref() when done.</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pipeline"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="555">a Cogl pipeline state object, or %NULL</doc>
+            <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="PipelineNodeClass"
+            c:type="ClutterPipelineNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="PipelineNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="377">The `ClutterPipelineNodeClass` structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="116"/>
+    </record>
+    <enumeration name="PointerA11yDwellClickType"
+                 glib:type-name="ClutterPointerA11yDwellClickType"
+                 glib:get-type="clutter_pointer_a11y_dwell_click_type_get_type"
+                 c:type="ClutterPointerA11yDwellClickType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="442">Dwell click types.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="444">Internal use only</doc>
+      </member>
+      <member name="primary"
+              value="1"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_PRIMARY"
+              glib:nick="primary">
+      </member>
+      <member name="secondary"
+              value="2"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_SECONDARY"
+              glib:nick="secondary">
+      </member>
+      <member name="middle"
+              value="3"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_MIDDLE"
+              glib:nick="middle">
+      </member>
+      <member name="double"
+              value="4"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_DOUBLE"
+              glib:nick="double">
+      </member>
+      <member name="drag"
+              value="5"
+              c:identifier="CLUTTER_A11Y_DWELL_CLICK_TYPE_DRAG"
+              glib:nick="drag">
+      </member>
+    </enumeration>
+    <enumeration name="PointerA11yDwellDirection"
+                 glib:type-name="ClutterPointerA11yDwellDirection"
+                 glib:get-type="clutter_pointer_a11y_dwell_direction_get_type"
+                 c:type="ClutterPointerA11yDwellDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="463">Dwell gesture directions.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_A11Y_DWELL_DIRECTION_NONE"
+              glib:nick="none">
+      </member>
+      <member name="left"
+              value="1"
+              c:identifier="CLUTTER_A11Y_DWELL_DIRECTION_LEFT"
+              glib:nick="left">
+      </member>
+      <member name="right"
+              value="2"
+              c:identifier="CLUTTER_A11Y_DWELL_DIRECTION_RIGHT"
+              glib:nick="right">
+      </member>
+      <member name="up"
+              value="3"
+              c:identifier="CLUTTER_A11Y_DWELL_DIRECTION_UP"
+              glib:nick="up">
+      </member>
+      <member name="down"
+              value="4"
+              c:identifier="CLUTTER_A11Y_DWELL_DIRECTION_DOWN"
+              glib:nick="down">
+      </member>
+    </enumeration>
+    <enumeration name="PointerA11yDwellMode"
+                 glib:type-name="ClutterPointerA11yDwellMode"
+                 glib:get-type="clutter_pointer_a11y_dwell_mode_get_type"
+                 c:type="ClutterPointerA11yDwellMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="482">Dwell mode.</doc>
+      <member name="window"
+              value="0"
+              c:identifier="CLUTTER_A11Y_DWELL_MODE_WINDOW"
+              glib:nick="window">
+      </member>
+      <member name="gesture"
+              value="1"
+              c:identifier="CLUTTER_A11Y_DWELL_MODE_GESTURE"
+              glib:nick="gesture">
+      </member>
+    </enumeration>
+    <bitfield name="PointerA11yFlags"
+              glib:type-name="ClutterPointerA11yFlags"
+              glib:get-type="clutter_pointer_a11y_flags_get_type"
+              c:type="ClutterPointerA11yFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="428">Pointer accessibility features applied to a ClutterInputDevice pointer.</doc>
+      <member name="secondary_click_enabled"
+              value="1"
+              c:identifier="CLUTTER_A11Y_SECONDARY_CLICK_ENABLED"
+              glib:nick="secondary-click-enabled">
+      </member>
+      <member name="dwell_enabled"
+              value="2"
+              c:identifier="CLUTTER_A11Y_DWELL_ENABLED"
+              glib:nick="dwell-enabled">
+      </member>
+    </bitfield>
+    <record name="PointerA11ySettings" c:type="ClutterPointerA11ySettings">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-seat.h"
+           line="58">The #ClutterPointerA11ySettings structure contains pointer accessibility
+settings</doc>
+      <source-position filename="../clutter/clutter/clutter-seat.h" line="77"/>
+      <field name="controls" writable="1">
+        <type name="PointerA11yFlags" c:type="ClutterPointerA11yFlags"/>
+      </field>
+      <field name="dwell_click_type" writable="1">
+        <type name="PointerA11yDwellClickType"
+              c:type="ClutterPointerA11yDwellClickType"/>
+      </field>
+      <field name="dwell_mode" writable="1">
+        <type name="PointerA11yDwellMode"
+              c:type="ClutterPointerA11yDwellMode"/>
+      </field>
+      <field name="dwell_gesture_single" writable="1">
+        <type name="PointerA11yDwellDirection"
+              c:type="ClutterPointerA11yDwellDirection"/>
+      </field>
+      <field name="dwell_gesture_double" writable="1">
+        <type name="PointerA11yDwellDirection"
+              c:type="ClutterPointerA11yDwellDirection"/>
+      </field>
+      <field name="dwell_gesture_drag" writable="1">
+        <type name="PointerA11yDwellDirection"
+              c:type="ClutterPointerA11yDwellDirection"/>
+      </field>
+      <field name="dwell_gesture_secondary" writable="1">
+        <type name="PointerA11yDwellDirection"
+              c:type="ClutterPointerA11yDwellDirection"/>
+      </field>
+      <field name="secondary_click_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="dwell_delay" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="dwell_threshold" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+    </record>
+    <enumeration name="PointerA11yTimeoutType"
+                 glib:type-name="ClutterPointerA11yTimeoutType"
+                 glib:get-type="clutter_pointer_a11y_timeout_type_get_type"
+                 c:type="ClutterPointerA11yTimeoutType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="495">Pointer accessibility timeout type.</doc>
+      <member name="secondary_click"
+              value="0"
+              c:identifier="CLUTTER_A11Y_TIMEOUT_TYPE_SECONDARY_CLICK"
+              glib:nick="secondary-click">
+      </member>
+      <member name="dwell"
+              value="1"
+              c:identifier="CLUTTER_A11Y_TIMEOUT_TYPE_DWELL"
+              glib:nick="dwell">
+      </member>
+      <member name="gesture"
+              value="2"
+              c:identifier="CLUTTER_A11Y_TIMEOUT_TYPE_GESTURE"
+              glib:nick="gesture">
+      </member>
+    </enumeration>
+    <callback name="ProgressFunc" c:type="ClutterProgressFunc" version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-types.h"
+           line="403">Prototype of the progress function used to compute the value
+between the two ends @a and @b of an interval depending on
+the value of @progress.
+
+The #GValue in @retval is already initialized with the same
+type as @a and @b.
+
+This function will be called by #ClutterInterval if the
+type of the values of the interval was registered using
+clutter_interval_register_progress_func().</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="426"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-types.h"
+             line="421">%TRUE if the function successfully computed
+  the value and stored it inside @retval</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="405">the initial value of an interval</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="406">the final value of an interval</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="progress" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="407">the progress factor, between 0 and 1</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="retval" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-types.h"
+               line="408">the value used to store the progress</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="PropertyTransition"
+           c:symbol-prefix="property_transition"
+           c:type="ClutterPropertyTransition"
+           version="1.10"
+           parent="Transition"
+           glib:type-name="ClutterPropertyTransition"
+           glib:get-type="clutter_property_transition_get_type"
+           glib:type-struct="PropertyTransitionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-property-transition.h"
+           line="46">The #ClutterPropertyTransition structure contains
+private data and should only be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="76"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_property_transition_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-property-transition.c"
+             line="301">Creates a new #ClutterPropertyTransition.</doc>
+        <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                         line="86"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-property-transition.c"
+               line="307">the newly created #ClutterPropertyTransition.
+  Use g_object_unref() when done</doc>
+          <type name="Transition" c:type="ClutterTransition*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="303">a property of @animatable, or %NULL</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_for_actor"
+                   c:identifier="clutter_property_transition_new_for_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-property-transition.c"
+             line="281">Creates a new #ClutterPropertyTransition.</doc>
+        <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                         line="82"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-property-transition.c"
+               line="288">the newly created #ClutterPropertyTransition.
+  Use g_object_unref() when done</doc>
+          <type name="Transition" c:type="ClutterTransition*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="283">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="284">a property of @animatable, or %NULL</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_property_name"
+              c:identifier="clutter_property_transition_get_property_name"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-property-transition.c"
+             line="359">Retrieves the value of the #ClutterPropertyTransition:property-name
+property.</doc>
+        <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                         line="92"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-property-transition.c"
+               line="366">the name of the property being animated, or %NULL if
+  none is set. The returned string is owned by the @transition and
+  it should not be freed.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="361">a #ClutterPropertyTransition</doc>
+            <type name="PropertyTransition"
+                  c:type="ClutterPropertyTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_property_name"
+              c:identifier="clutter_property_transition_set_property_name"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-property-transition.c"
+             line="320">Sets the #ClutterPropertyTransition:property-name property of @transition.</doc>
+        <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="322">a #ClutterPropertyTransition</doc>
+            <type name="PropertyTransition"
+                  c:type="ClutterPropertyTransition*"/>
+          </instance-parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-property-transition.c"
+                 line="323">a property name</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="property-name"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-property-transition.c"
+             line="258">The name of the property of a #ClutterAnimatable to animate.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Transition" c:type="ClutterTransition"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="PropertyTransitionPrivate"
+              c:type="ClutterPropertyTransitionPrivate*"/>
+      </field>
+    </class>
+    <record name="PropertyTransitionClass"
+            c:type="ClutterPropertyTransitionClass"
+            glib:is-gtype-struct-for="PropertyTransition"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-property-transition.h"
+           line="62">The #ClutterPropertyTransitionClass structure
+contains private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="76"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="TransitionClass" c:type="ClutterTransitionClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="PropertyTransitionPrivate"
+            c:type="ClutterPropertyTransitionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-property-transition.h"
+                       line="43"/>
+    </record>
+    <record name="ProximityEvent"
+            c:type="ClutterProximityEvent"
+            version="1.28">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="222">Event for tool proximity in tablet devices</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="244"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="224">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="225">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="226">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="227">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="228">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="229">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <function-macro name="ROOT_NODE"
+                    c:identifier="CLUTTER_ROOT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="166"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROTATE_ACTION"
+                    c:identifier="CLUTTER_ROTATE_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROTATE_ACTION_CLASS"
+                    c:identifier="CLUTTER_ROTATE_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ROTATE_ACTION_GET_CLASS"
+                    c:identifier="CLUTTER_ROTATE_ACTION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <bitfield name="RepaintFlags"
+              version="1.10"
+              glib:type-name="ClutterRepaintFlags"
+              glib:get-type="clutter_repaint_flags_get_type"
+              c:type="ClutterRepaintFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1315">Flags to pass to clutter_threads_add_repaint_func_full().</doc>
+      <member name="pre_paint"
+              value="1"
+              c:identifier="CLUTTER_REPAINT_FLAGS_PRE_PAINT"
+              glib:nick="pre-paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1317">Run the repaint function prior to
+  painting the stages</doc>
+      </member>
+      <member name="post_paint"
+              value="2"
+              c:identifier="CLUTTER_REPAINT_FLAGS_POST_PAINT"
+              glib:nick="post-paint">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1319">Run the repaint function after
+  painting the stages</doc>
+      </member>
+    </bitfield>
+    <enumeration name="RequestMode"
+                 version="0.8"
+                 glib:type-name="ClutterRequestMode"
+                 glib:get-type="clutter_request_mode_get_type"
+                 c:type="ClutterRequestMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="102">Specifies the type of requests for a #ClutterActor.</doc>
+      <member name="height_for_width"
+              value="0"
+              c:identifier="CLUTTER_REQUEST_HEIGHT_FOR_WIDTH"
+              glib:nick="height-for-width">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="104">Height for width requests</doc>
+      </member>
+      <member name="width_for_height"
+              value="1"
+              c:identifier="CLUTTER_REQUEST_WIDTH_FOR_HEIGHT"
+              glib:nick="width-for-height">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="105">Width for height requests</doc>
+      </member>
+      <member name="content_size"
+              value="2"
+              c:identifier="CLUTTER_REQUEST_CONTENT_SIZE"
+              glib:nick="content-size">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="106">Use the preferred size of the
+  #ClutterContent, if it has any (available since 1.22)</doc>
+      </member>
+    </enumeration>
+    <class name="RootNode"
+           c:symbol-prefix="root_node"
+           c:type="ClutterRootNode"
+           parent="PaintNode"
+           glib:type-name="ClutterRootNode"
+           glib:get-type="clutter_root_node_get_type"
+           glib:type-struct="RootNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="169">The #ClutterRootNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="176"/>
+      <constructor name="new" c:identifier="clutter_root_node_new">
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="182"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="framebuffer" transfer-ownership="none">
+            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+          </parameter>
+          <parameter name="clear_color" transfer-ownership="none">
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+          <parameter name="clear_flags" transfer-ownership="none">
+            <type name="Cogl.BufferBit" c:type="CoglBufferBit"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="RootNodeClass"
+            c:type="ClutterRootNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="RootNode">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="176"/>
+    </record>
+    <class name="RotateAction"
+           c:symbol-prefix="rotate_action"
+           c:type="ClutterRotateAction"
+           version="1.12"
+           parent="GestureAction"
+           glib:type-name="ClutterRotateAction"
+           glib:get-type="clutter_rotate_action_get_type"
+           glib:type-struct="RotateActionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-rotate-action.h"
+           line="47">The #ClutterRotateAction structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="90"/>
+      <constructor name="new"
+                   c:identifier="clutter_rotate_action_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-rotate-action.c"
+             line="237">Creates a new #ClutterRotateAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                         line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-rotate-action.c"
+               line="242">the newly created #ClutterRotateAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="rotate">
+        <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="RotateAction" c:type="ClutterRotateAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GestureAction" c:type="ClutterGestureAction"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="RotateActionPrivate" c:type="ClutterRotateActionPrivate*"/>
+      </field>
+      <glib:signal name="rotate" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-rotate-action.c"
+             line="198">The ::rotate signal is emitted when a rotate gesture is
+recognized on the attached actor and when the gesture is
+cancelled (in this case with an angle value of 0).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-rotate-action.c"
+               line="209">%TRUE if the rotation should continue, and %FALSE if
+  the rotation should be cancelled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-rotate-action.c"
+                 line="201">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-rotate-action.c"
+                 line="202">the difference of angle of rotation between the initial
+rotation and the current rotation</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="RotateActionClass"
+            c:type="ClutterRotateActionClass"
+            glib:is-gtype-struct-for="RotateAction"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-rotate-action.h"
+           line="63">The #ClutterRotateActionClass structure contains
+only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="90"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GestureActionClass" c:type="ClutterGestureActionClass"/>
+      </field>
+      <field name="rotate">
+        <callback name="rotate">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="78"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="RotateAction" c:type="ClutterRotateAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="angle" transfer-ownership="none">
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action1" introspectable="0">
+        <callback name="_clutter_rotate_action1">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action2" introspectable="0">
+        <callback name="_clutter_rotate_action2">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action3" introspectable="0">
+        <callback name="_clutter_rotate_action3">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="85"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action4" introspectable="0">
+        <callback name="_clutter_rotate_action4">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action5" introspectable="0">
+        <callback name="_clutter_rotate_action5">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action6" introspectable="0">
+        <callback name="_clutter_rotate_action6">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rotate_action7" introspectable="0">
+        <callback name="_clutter_rotate_action7">
+          <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="RotateActionPrivate"
+            c:type="ClutterRotateActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-rotate-action.h"
+                       line="44"/>
+    </record>
+    <enumeration name="RotateAxis"
+                 version="0.4"
+                 glib:type-name="ClutterRotateAxis"
+                 glib:get-type="clutter_rotate_axis_get_type"
+                 c:type="ClutterRotateAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="68">Axis of a rotation.</doc>
+      <member name="x_axis"
+              value="0"
+              c:identifier="CLUTTER_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="70">Rotate around the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="1"
+              c:identifier="CLUTTER_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="71">Rotate around the Y axis</doc>
+      </member>
+      <member name="z_axis"
+              value="2"
+              c:identifier="CLUTTER_Z_AXIS"
+              glib:nick="z-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="72">Rotate around the Z axis</doc>
+      </member>
+    </enumeration>
+    <enumeration name="RotateDirection"
+                 version="0.4"
+                 deprecated="1"
+                 deprecated-version="1.22"
+                 glib:type-name="ClutterRotateDirection"
+                 glib:get-type="clutter_rotate_direction_get_type"
+                 c:type="ClutterRotateDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="85">Direction of a rotation.</doc>
+      <member name="cw"
+              value="0"
+              c:identifier="CLUTTER_ROTATE_CW"
+              glib:nick="cw">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="87">Clockwise rotation</doc>
+      </member>
+      <member name="ccw"
+              value="1"
+              c:identifier="CLUTTER_ROTATE_CCW"
+              glib:nick="ccw">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="88">Counter-clockwise rotation</doc>
+      </member>
+    </enumeration>
+    <function-macro name="SCRIPT"
+                    c:identifier="CLUTTER_SCRIPT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCRIPTABLE"
+                    c:identifier="CLUTTER_SCRIPTABLE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCRIPTABLE_GET_IFACE"
+                    c:identifier="CLUTTER_SCRIPTABLE_GET_IFACE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCRIPT_CLASS"
+                    c:identifier="CLUTTER_SCRIPT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCRIPT_GET_CLASS"
+                    c:identifier="CLUTTER_SCRIPT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCROLL_ACTOR"
+                    c:identifier="CLUTTER_SCROLL_ACTOR"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCROLL_ACTOR_CLASS"
+                    c:identifier="CLUTTER_SCROLL_ACTOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SCROLL_ACTOR_GET_CLASS"
+                    c:identifier="CLUTTER_SCROLL_ACTOR_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SETTINGS"
+                    c:identifier="CLUTTER_SETTINGS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-settings.h"
+                       line="13"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SHADER_EFFECT"
+                    c:identifier="CLUTTER_SHADER_EFFECT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SHADER_EFFECT_CLASS"
+                    c:identifier="CLUTTER_SHADER_EFFECT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SHADER_EFFECT_GET_CLASS"
+                    c:identifier="CLUTTER_SHADER_EFFECT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SNAP_CONSTRAINT"
+                    c:identifier="CLUTTER_SNAP_CONSTRAINT"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE"
+                    c:identifier="CLUTTER_STAGE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_CLASS"
+                    c:identifier="CLUTTER_STAGE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_GET_CLASS"
+                    c:identifier="CLUTTER_STAGE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_MANAGER"
+                    c:identifier="CLUTTER_STAGE_MANAGER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_MANAGER_CLASS"
+                    c:identifier="CLUTTER_STAGE_MANAGER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="STAGE_MANAGER_GET_CLASS"
+                    c:identifier="CLUTTER_STAGE_MANAGER_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="STAGE_TYPE"
+              value="deprecated"
+              c:type="CLUTTER_STAGE_TYPE"
+              version="0.8"
+              deprecated="1"
+              deprecated-version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-macros.h"
+           line="57">The default GObject type for the Clutter stage.</doc>
+      <doc-deprecated xml:space="preserve">The macro evaluates to "deprecated" as Clutter can
+  be compiled against multiple windowing systems. You can use the
+  CLUTTER_WINDOWING_* macros for compile-time checks, and the type
+  check macros for run-time checks.</doc-deprecated>
+      <source-position filename="../clutter/clutter/clutter-macros.h"
+                       line="69"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="SWIPE_ACTION"
+                    c:identifier="CLUTTER_SWIPE_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SWIPE_ACTION_CLASS"
+                    c:identifier="CLUTTER_SWIPE_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="SWIPE_ACTION_GET_CLASS"
+                    c:identifier="CLUTTER_SWIPE_ACTION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="45"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <enumeration name="ScalingFilter"
+                 version="1.10"
+                 glib:type-name="ClutterScalingFilter"
+                 glib:get-type="clutter_scaling_filter_get_type"
+                 c:type="ClutterScalingFilter">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1369">The scaling filters to be used with the #ClutterActor:minification-filter
+and #ClutterActor:magnification-filter properties.</doc>
+      <member name="linear"
+              value="0"
+              c:identifier="CLUTTER_SCALING_FILTER_LINEAR"
+              glib:nick="linear">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1371">Linear interpolation filter</doc>
+      </member>
+      <member name="nearest"
+              value="1"
+              c:identifier="CLUTTER_SCALING_FILTER_NEAREST"
+              glib:nick="nearest">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1372">Nearest neighbor interpolation filter</doc>
+      </member>
+      <member name="trilinear"
+              value="2"
+              c:identifier="CLUTTER_SCALING_FILTER_TRILINEAR"
+              glib:nick="trilinear">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1373">Trilinear minification filter, with
+  mipmap generation; this filter linearly interpolates on every axis,
+  as well as between mipmap levels.</doc>
+      </member>
+    </enumeration>
+    <class name="Script"
+           c:symbol-prefix="script"
+           c:type="ClutterScript"
+           version="0.6"
+           parent="GObject.Object"
+           glib:type-name="ClutterScript"
+           glib:get-type="clutter_script_get_type"
+           glib:type-struct="ScriptClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.h"
+           line="100">The #ClutterScript structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="146"/>
+      <constructor name="new" c:identifier="clutter_script_new" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="410">Creates a new #ClutterScript instance. #ClutterScript can be used to load
+objects definitions for scenegraph elements, like actors, or behavioural
+elements, like timelines. The definitions must be encoded using the
+JavaScript Object Notation (JSON) language.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="152"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="418">the newly created #ClutterScript instance. Use
+  g_object_unref() when done.</doc>
+          <type name="Script" c:type="ClutterScript*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="get_type_from_name"
+                      invoker="get_type_from_name"
+                      version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="776">Looks up a type by name, using the virtual function that
+#ClutterScript has for that purpose. This function should
+rarely be used.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="133"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="785">the type for the requested type name, or
+  %G_TYPE_INVALID if not corresponding type was found.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="778">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="type_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="779">name of the type to look up</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_search_paths"
+              c:identifier="clutter_script_add_search_paths"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="1024">Adds @paths to the list of search paths held by @script.
+
+The search paths are used by clutter_script_lookup_filename(), which
+can be used to define search paths for the textures source file name
+or other custom, file-based properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="191"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1026">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="paths" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1027">an array of strings containing
+  different search paths</doc>
+            <array length="1" zero-terminated="0" c:type="const gchar* const*">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+          <parameter name="n_paths" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1029">the length of the passed array</doc>
+            <type name="gsize" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connect_signals"
+              c:identifier="clutter_script_connect_signals"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="878">Connects all the signals defined into a UI definition file to their
+handlers.
+
+This method invokes clutter_script_connect_signals_full() internally
+and uses  #GModule's introspective features (by opening the current
+module's scope) to look at the application's symbol table.
+
+Note that this function will not work if #GModule is not supported by
+the platform Clutter is running on.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="183"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="880">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="881">data to be passed to the signal handlers, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connect_signals_full"
+              c:identifier="clutter_script_connect_signals_full"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="982">Connects all the signals defined into a UI definition file to their
+handlers.
+
+This function allows to control how the signal handlers are
+going to be connected to their respective signals. It is meant
+primarily for language bindings to allow resolving the function
+names using the native API, but it can also be used on platforms
+that do not support GModule.
+
+Applications should use clutter_script_connect_signals().</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="186"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="984">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="985">signal connection function</doc>
+            <type name="ScriptConnectFunc" c:type="ClutterScriptConnectFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="986">data to be passed to the signal handlers, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ensure_objects"
+              c:identifier="clutter_script_ensure_objects"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="756">Ensure that every object defined inside @script is correctly
+constructed. You should rarely need to use this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="180"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="758">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_object"
+              c:identifier="clutter_script_get_object"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="568">Retrieves the object bound to @name. This function does not increment
+the reference count of the returned object.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="168"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="576">the named object, or %NULL if no object
+  with the given name was available</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="570">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="571">the name of the object to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_objects"
+              c:identifier="clutter_script_get_objects"
+              version="0.6"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="625">Retrieves a list of objects for the given names. After @script, object
+names/return location pairs should be listed, with a %NULL pointer
+ending the list, like:
+
+|[
+  GObject *my_label, *a_button, *main_timeline;
+
+  clutter_script_get_objects (script,
+                              "my-label", &amp;my_label,
+                              "a-button", &amp;a_button,
+                              "main-timeline", &amp;main_timeline,
+                              NULL);
+]|
+
+Note: This function does not increment the reference count of the
+returned objects.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="171"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="649">the number of objects returned.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="627">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="first_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="628">the name of the first object to retrieve</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="629">return location for a #GObject, then additional names, ending
+  with %NULL</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_translation_domain"
+              c:identifier="clutter_script_get_translation_domain"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="1217">Retrieves the translation domain set using
+clutter_script_set_translation_domain().</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="205"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="1224">the translation domain, if any is set,
+  or %NULL</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1219">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_type_from_name"
+              c:identifier="clutter_script_get_type_from_name"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="776">Looks up a type by name, using the virtual function that
+#ClutterScript has for that purpose. This function should
+rarely be used.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="198"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="785">the type for the requested type name, or
+  %G_TYPE_INVALID if not corresponding type was found.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="778">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="type_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="779">name of the type to look up</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_objects"
+              c:identifier="clutter_script_list_objects"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="1150">Retrieves all the objects created by @script.
+
+Note: this function does not increment the reference count of the
+objects it returns.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="175"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="1159">a list
+  of #GObject&lt;!-- --&gt;s, or %NULL. The objects are owned by the
+  #ClutterScript instance. Use g_list_free() on the returned list when
+  done.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="GObject.Object"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1152">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="load_from_data"
+              c:identifier="clutter_script_load_from_data"
+              version="0.6"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="476">Loads the definitions from @data into @script and merges with
+the currently loaded ones, if any.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="158"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="487">on error, zero is returned and @error is set
+  accordingly. On success, the merge id for the UI definitions is
+  returned. You can use the merge id with clutter_script_unmerge_objects().</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="478">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="479">a buffer containing the definitions</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="480">the length of the buffer, or -1 if @data is a NUL-terminated
+  buffer</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_file"
+              c:identifier="clutter_script_load_from_file"
+              version="0.6"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="429">Loads the definitions from @filename into @script and merges with
+the currently loaded ones, if any.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="154"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="438">on error, zero is returned and @error is set
+  accordingly. On success, the merge id for the UI definitions is
+  returned. You can use the merge id with clutter_script_unmerge_objects().</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="431">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="432">the full path to the definition file</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_resource"
+              c:identifier="clutter_script_load_from_resource"
+              version="1.10"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="529">Loads the definitions from a resource file into @script and merges with
+the currently loaded ones, if any.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="163"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="538">on error, zero is returned and @error is set
+  accordingly. On success, the merge id for the UI definitions is
+  returned. You can use the merge id with clutter_script_unmerge_objects().</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="531">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="resource_path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="532">the resource path of the file to parse</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lookup_filename"
+              c:identifier="clutter_script_lookup_filename"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="1085">Looks up @filename inside the search paths of @script. If @filename
+is found, its full path will be returned .</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="195"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="1093">the full path of @filename or %NULL if no path was
+  found.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1087">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1088">the name of the file to lookup</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_translation_domain"
+              c:identifier="clutter_script_set_translation_domain"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="1193">Sets the translation domain for @script.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="202"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1195">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="domain"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="1196">the translation domain, or %NULL</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unmerge_objects"
+              c:identifier="clutter_script_unmerge_objects"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="699">Unmerges the objects identified by @merge_id.</doc>
+        <source-position filename="../clutter/clutter/clutter-script.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="701">a #ClutterScript</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </instance-parameter>
+          <parameter name="merge_id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="702">merge id returned when loading a UI definition</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="filename" version="0.6" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="350">The path of the currently parsed file. If #ClutterScript:filename-set
+is %FALSE then the value of this property is undefined.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="filename-set" version="0.6" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="334">Whether the #ClutterScript:filename property is set. If this property
+is %TRUE then the currently parsed data comes from a file, and the
+file name is stored inside the #ClutterScript:filename property.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="translation-domain"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="365">The translation domain, used to localize strings marked as translatable
+inside a UI definition.
+
+If #ClutterScript:translation-domain is set to %NULL, #ClutterScript
+will use gettext(), otherwise g_dgettext() will be used.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <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="ScriptPrivate" c:type="ClutterScriptPrivate*"/>
+      </field>
+    </class>
+    <record name="ScriptClass"
+            c:type="ClutterScriptClass"
+            glib:is-gtype-struct-for="Script"
+            version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.h"
+           line="116">The #ClutterScriptClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="146"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_type_from_name">
+        <callback name="get_type_from_name">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="133"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-script.c"
+                 line="785">the type for the requested type name, or
+  %G_TYPE_INVALID if not corresponding type was found.</doc>
+            <type name="GType" c:type="GType"/>
+          </return-value>
+          <parameters>
+            <parameter name="script" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-script.c"
+                   line="778">a #ClutterScript</doc>
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="type_name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-script.c"
+                   line="779">name of the type to look up</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="138"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="139"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="140"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="141"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="142"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="143"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="144"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved8" introspectable="0">
+        <callback name="_clutter_reserved8">
+          <source-position filename="../clutter/clutter/clutter-script.h"
+                           line="145"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <callback name="ScriptConnectFunc"
+              c:type="ClutterScriptConnectFunc"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.h"
+           line="46">This is the signature of a function used to connect signals.  It is used
+by the clutter_script_connect_signals_full() function.  It is mainly
+intended for interpreted language bindings, but could be useful where the
+programmer wants more control over the signal connection process.</doc>
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="63"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="script" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="48">a #ClutterScript</doc>
+          <type name="Script" c:type="ClutterScript*"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="49">the object to connect</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="50">the name of the signal</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="handler_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="51">the name of the signal handler</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="connect_object" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="52">the object to connect the signal to, or %NULL</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="53">signal connection flags</doc>
+          <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="6">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.h"
+               line="54">user data to pass to the signal handler</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="ScriptError"
+                 version="0.6"
+                 glib:type-name="ClutterScriptError"
+                 glib:get-type="clutter_script_error_get_type"
+                 c:type="ClutterScriptError"
+                 glib:error-domain="clutter-script-error">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.h"
+           line="71">#ClutterScript error enumeration.</doc>
+      <member name="type_function"
+              value="0"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_TYPE_FUNCTION"
+              glib:nick="type-function">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.h"
+             line="73">Type function not found
+  or invalid</doc>
+      </member>
+      <member name="property"
+              value="1"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_PROPERTY"
+              glib:nick="property">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.h"
+             line="75">Property not found or invalid</doc>
+      </member>
+      <member name="value"
+              value="2"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_VALUE"
+              glib:nick="value">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.h"
+             line="76">Invalid value</doc>
+      </member>
+      <function name="quark" c:identifier="clutter_script_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+    </enumeration>
+    <record name="ScriptPrivate" c:type="ClutterScriptPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="43"/>
+    </record>
+    <interface name="Scriptable"
+               c:symbol-prefix="scriptable"
+               c:type="ClutterScriptable"
+               version="0.6"
+               glib:type-name="ClutterScriptable"
+               glib:get-type="clutter_scriptable_get_type"
+               glib:type-struct="ScriptableIface">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scriptable.h"
+           line="46">#ClutterScriptable is an opaque structure whose members cannot be directly
+accessed</doc>
+      <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                       line="88"/>
+      <virtual-method name="get_id" invoker="get_id" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="94">Retrieves the id of @scriptable set using clutter_scriptable_set_id().</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scriptable.c"
+               line="100">the id of the object. The returned string is owned by
+  the scriptable object and should never be modified of freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="96">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="parse_custom_node"
+                      invoker="parse_custom_node"
+                      version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="119">Parses the passed JSON node. The implementation must set the type
+of the passed #GValue pointer using g_value_init().</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="79"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scriptable.c"
+               line="130">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="121">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="122">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="123">the generic value to be set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="124">the name of the node</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="125">the JSON node to be parsed</doc>
+            <type name="Json.Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_custom_property"
+                      invoker="set_custom_property"
+                      version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="155">Overrides the common properties setting. The underlying virtual
+function should be used when implementing custom properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="157">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="158">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="159">the name of the property</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="160">the value of the property</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_id" invoker="set_id" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="61">Sets @id_ as the unique Clutter script it for this instance of
+#ClutterScriptableIface.
+
+This name can be used by user interface designer applications to
+define a unique name for an object constructable using the UI
+definition language parsed by #ClutterScript.</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="63">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="id_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="64">the #ClutterScript id of the object</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_id"
+              c:identifier="clutter_scriptable_get_id"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="94">Retrieves the id of @scriptable set using clutter_scriptable_set_id().</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scriptable.c"
+               line="100">the id of the object. The returned string is owned by
+  the scriptable object and should never be modified of freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="96">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="parse_custom_node"
+              c:identifier="clutter_scriptable_parse_custom_node"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="119">Parses the passed JSON node. The implementation must set the type
+of the passed #GValue pointer using g_value_init().</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scriptable.c"
+               line="130">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="121">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="122">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="123">the generic value to be set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="124">the name of the node</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="125">the JSON node to be parsed</doc>
+            <type name="Json.Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_custom_property"
+              c:identifier="clutter_scriptable_set_custom_property"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="155">Overrides the common properties setting. The underlying virtual
+function should be used when implementing custom properties.</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="157">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="158">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="159">the name of the property</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="160">the value of the property</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_id"
+              c:identifier="clutter_scriptable_set_id"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scriptable.c"
+             line="61">Sets @id_ as the unique Clutter script it for this instance of
+#ClutterScriptableIface.
+
+This name can be used by user interface designer applications to
+define a unique name for an object constructable using the UI
+definition language parsed by #ClutterScript.</doc>
+        <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                         line="94"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="scriptable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="63">a #ClutterScriptable</doc>
+            <type name="Scriptable" c:type="ClutterScriptable*"/>
+          </instance-parameter>
+          <parameter name="id_" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="64">the #ClutterScript id of the object</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="ScriptableIface"
+            c:type="ClutterScriptableIface"
+            glib:is-gtype-struct-for="Scriptable"
+            version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scriptable.h"
+           line="55">Interface for implementing "scriptable" objects. An object implementing
+this interface can override the parsing and properties setting sequence
+when loading a UI definition data with #ClutterScript</doc>
+      <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                       line="88"/>
+      <field name="g_iface" readable="0" private="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_id">
+        <callback name="set_id">
+          <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                           line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="63">a #ClutterScriptable</doc>
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="id_" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="64">the #ClutterScript id of the object</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_id">
+        <callback name="get_id">
+          <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                           line="77"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="100">the id of the object. The returned string is owned by
+  the scriptable object and should never be modified of freed</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="96">a #ClutterScriptable</doc>
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parse_custom_node">
+        <callback name="parse_custom_node">
+          <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                           line="79"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scriptable.c"
+                 line="130">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="121">a #ClutterScriptable</doc>
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="script" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="122">the #ClutterScript creating the scriptable instance</doc>
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="123">the generic value to be set</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="124">the name of the node</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="node" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="125">the JSON node to be parsed</doc>
+              <type name="Json.Node" c:type="JsonNode*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_custom_property">
+        <callback name="set_custom_property">
+          <source-position filename="../clutter/clutter/clutter-scriptable.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="157">a #ClutterScriptable</doc>
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="script" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="158">the #ClutterScript creating the scriptable instance</doc>
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="159">the name of the property</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-scriptable.c"
+                   line="160">the value of the property</doc>
+              <type name="GObject.Value" c:type="const GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="ScrollActor"
+           c:symbol-prefix="scroll_actor"
+           c:type="ClutterScrollActor"
+           version="1.12"
+           parent="Actor"
+           glib:type-name="ClutterScrollActor"
+           glib:get-type="clutter_scroll_actor_get_type"
+           glib:type-struct="ScrollActorClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scroll-actor.h"
+           line="44">The #ClutterScrollActor structure contains only
+private data, and should be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="74"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_scroll_actor_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="261">Creates a new #ClutterScrollActor.</doc>
+        <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scroll-actor.c"
+               line="266">The newly created #ClutterScrollActor
+  instance.</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <method name="get_scroll_mode"
+              c:identifier="clutter_scroll_actor_get_scroll_mode"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="304">Retrieves the #ClutterScrollActor:scroll-mode property</doc>
+        <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-scroll-actor.c"
+               line="310">the scrolling mode</doc>
+          <type name="ScrollMode" c:type="ClutterScrollMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scroll-actor.c"
+                 line="306">a #ClutterScrollActor</doc>
+            <type name="ScrollActor" c:type="ClutterScrollActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="scroll_to_point"
+              c:identifier="clutter_scroll_actor_scroll_to_point"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="322">Scrolls the contents of @actor so that @point is the new origin
+of the visible area.
+
+The coordinates of @point must be relative to the @actor.
+
+This function will use the currently set easing state of the @actor
+to transition from the current scroll origin to the new one.</doc>
+        <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                         line="89"/>
+        <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="../clutter/clutter/clutter-scroll-actor.c"
+                 line="324">a #ClutterScrollActor</doc>
+            <type name="ScrollActor" c:type="ClutterScrollActor*"/>
+          </instance-parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scroll-actor.c"
+                 line="325">a #graphene_point_t</doc>
+            <type name="Graphene.Point" c:type="const graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scroll_to_rect"
+              c:identifier="clutter_scroll_actor_scroll_to_rect"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="410">Scrolls @actor so that @rect is in the visible portion.</doc>
+        <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                         line="92"/>
+        <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="../clutter/clutter/clutter-scroll-actor.c"
+                 line="412">a #ClutterScrollActor</doc>
+            <type name="ScrollActor" c:type="ClutterScrollActor*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scroll-actor.c"
+                 line="413">a #ClutterRect</doc>
+            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scroll_mode"
+              c:identifier="clutter_scroll_actor_set_scroll_mode"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="277">Sets the #ClutterScrollActor:scroll-mode property.</doc>
+        <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                         line="83"/>
+        <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="../clutter/clutter/clutter-scroll-actor.c"
+                 line="279">a #ClutterScrollActor</doc>
+            <type name="ScrollActor" c:type="ClutterScrollActor*"/>
+          </instance-parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-scroll-actor.c"
+                 line="280">a #ClutterScrollMode</doc>
+            <type name="ScrollMode" c:type="ClutterScrollMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="scroll-mode"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-scroll-actor.c"
+             line="173">The scrolling direction.</doc>
+        <type name="ScrollMode"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ScrollActorPrivate" c:type="ClutterScrollActorPrivate*"/>
+      </field>
+    </class>
+    <record name="ScrollActorClass"
+            c:type="ClutterScrollActorClass"
+            glib:is-gtype-struct-for="ScrollActor"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scroll-actor.h"
+           line="60">The #ClutterScrollActor structure contains only
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="74"/>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="ScrollActorPrivate"
+            c:type="ClutterScrollActorPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-scroll-actor.h"
+                       line="41"/>
+    </record>
+    <enumeration name="ScrollDirection"
+                 version="0.4"
+                 glib:type-name="ClutterScrollDirection"
+                 glib:get-type="clutter_scroll_direction_get_type"
+                 c:type="ClutterScrollDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="918">Direction of a pointer scroll event.
+
+The %CLUTTER_SCROLL_SMOOTH value implies that the #ClutterScrollEvent
+has precise scrolling delta information.</doc>
+      <member name="up"
+              value="0"
+              c:identifier="CLUTTER_SCROLL_UP"
+              glib:nick="up">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="920">Scroll up</doc>
+      </member>
+      <member name="down"
+              value="1"
+              c:identifier="CLUTTER_SCROLL_DOWN"
+              glib:nick="down">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="921">Scroll down</doc>
+      </member>
+      <member name="left"
+              value="2"
+              c:identifier="CLUTTER_SCROLL_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="922">Scroll left</doc>
+      </member>
+      <member name="right"
+              value="3"
+              c:identifier="CLUTTER_SCROLL_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="923">Scroll right</doc>
+      </member>
+      <member name="smooth"
+              value="4"
+              c:identifier="CLUTTER_SCROLL_SMOOTH"
+              glib:nick="smooth">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="924">Precise scrolling delta (available in 1.10)</doc>
+      </member>
+    </enumeration>
+    <record name="ScrollEvent" c:type="ClutterScrollEvent" version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="311">Scroll wheel (or similar device) event</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="348"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="313">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="314">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="315">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="316">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="317">event source actor</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="318">event X coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="319">event Y coordinate</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="direction" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="320">direction of the scrolling</doc>
+        <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="321">button modifiers</doc>
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="axes" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="322">reserved for future use</doc>
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="323">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="scroll_source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="325">the source of scroll events. This field is available since 1.26</doc>
+        <type name="ScrollSource" c:type="ClutterScrollSource"/>
+      </field>
+      <field name="finish_flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="326">the axes that were stopped in this event. This field is available since 1.26</doc>
+        <type name="ScrollFinishFlags" c:type="ClutterScrollFinishFlags"/>
+      </field>
+    </record>
+    <bitfield name="ScrollFinishFlags"
+              version="1.26"
+              glib:type-name="ClutterScrollFinishFlags"
+              glib:get-type="clutter_scroll_finish_flags_get_type"
+              c:type="ClutterScrollFinishFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1587">Flags used to notify the axes that were stopped in a #ClutterScrollEvent.
+These can be used to trigger post-scroll effects like kinetic scrolling.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_SCROLL_FINISHED_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1589">no axis was stopped.</doc>
+      </member>
+      <member name="horizontal"
+              value="1"
+              c:identifier="CLUTTER_SCROLL_FINISHED_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1590">The horizontal axis stopped.</doc>
+      </member>
+      <member name="vertical"
+              value="2"
+              c:identifier="CLUTTER_SCROLL_FINISHED_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1591">The vertical axis stopped.</doc>
+      </member>
+    </bitfield>
+    <bitfield name="ScrollMode"
+              version="1.12"
+              glib:type-name="ClutterScrollMode"
+              glib:get-type="clutter_scroll_mode_get_type"
+              c:type="ClutterScrollMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1404">Scroll modes.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_SCROLL_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1406">Ignore scrolling</doc>
+      </member>
+      <member name="horizontally"
+              value="1"
+              c:identifier="CLUTTER_SCROLL_HORIZONTALLY"
+              glib:nick="horizontally">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1407">Scroll only horizontally</doc>
+      </member>
+      <member name="vertically"
+              value="2"
+              c:identifier="CLUTTER_SCROLL_VERTICALLY"
+              glib:nick="vertically">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1408">Scroll only vertically</doc>
+      </member>
+      <member name="both"
+              value="3"
+              c:identifier="CLUTTER_SCROLL_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1409">Scroll in both directions</doc>
+      </member>
+    </bitfield>
+    <enumeration name="ScrollSource"
+                 version="1.26"
+                 glib:type-name="ClutterScrollSource"
+                 glib:get-type="clutter_scroll_source_get_type"
+                 c:type="ClutterScrollSource">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1564">The scroll source determines the source of the scroll event. Keep in mind
+that the source device #ClutterInputDeviceType is not enough to infer
+the scroll source.</doc>
+      <member name="unknown"
+              value="0"
+              c:identifier="CLUTTER_SCROLL_SOURCE_UNKNOWN"
+              glib:nick="unknown">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1566">Source of scroll events is unknown.</doc>
+      </member>
+      <member name="wheel"
+              value="1"
+              c:identifier="CLUTTER_SCROLL_SOURCE_WHEEL"
+              glib:nick="wheel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1567">The scroll event is originated by a mouse wheel.</doc>
+      </member>
+      <member name="finger"
+              value="2"
+              c:identifier="CLUTTER_SCROLL_SOURCE_FINGER"
+              glib:nick="finger">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1568">The scroll event is originated by one or more
+  fingers on the device (eg. touchpads).</doc>
+      </member>
+      <member name="continuous"
+              value="3"
+              c:identifier="CLUTTER_SCROLL_SOURCE_CONTINUOUS"
+              glib:nick="continuous">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1570">The scroll event is originated by the
+  motion of some device (eg. a scroll button is set).</doc>
+      </member>
+    </enumeration>
+    <class name="Seat"
+           c:symbol-prefix="seat"
+           c:type="ClutterSeat"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterSeat"
+           glib:get-type="clutter_seat_get_type"
+           glib:type-struct="SeatClass">
+      <source-position filename="../clutter/clutter/clutter-seat.h"
+                       line="131"/>
+      <virtual-method name="apply_kbd_a11y_settings">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="124"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <type name="KbdA11ySettings" c:type="ClutterKbdA11ySettings*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="bell_notify" invoker="bell_notify">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="101"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="compress_motion" invoker="compress_motion">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="to_discard" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="copy_event_data">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="117"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_virtual_device"
+                      invoker="create_virtual_device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="626">Creates a virtual input device.</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="128"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="633">a newly created virtual device</doc>
+          <type name="VirtualInputDevice" c:type="ClutterVirtualInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="628">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="device_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="629">the type of the virtual device</doc>
+            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="free_event_data">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="120"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_keyboard" invoker="get_keyboard">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="341">Returns the logical keyboard</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="347">the logical keyboard</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="343">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_keymap" invoker="get_keymap">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="393">Returns the seat keymap</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="399">the seat keymap</doc>
+          <type name="Keymap" c:type="ClutterKeymap*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="395">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_pointer" invoker="get_pointer">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="325">Returns the logical pointer</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="96"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="331">the logical pointer</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="327">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_supported_virtual_device_types"
+                      invoker="get_supported_virtual_device_types"
+                      introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <type name="VirtualDeviceType" c:type="ClutterVirtualDeviceType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="handle_device_event" invoker="handle_device_event">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="peek_devices"
+                      invoker="peek_devices"
+                      introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="const GList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="warp_pointer" invoker="warp_pointer">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="112"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="bell_notify" c:identifier="clutter_seat_bell_notify">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="141"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="compress_motion"
+              c:identifier="clutter_seat_compress_motion">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="183"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="to_discard" transfer-ownership="none">
+            <type name="Event" c:type="const ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_virtual_device"
+              c:identifier="clutter_seat_create_virtual_device">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="626">Creates a virtual input device.</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="177"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="633">a newly created virtual device</doc>
+          <type name="VirtualInputDevice" c:type="ClutterVirtualInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="628">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="device_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="629">the type of the virtual device</doc>
+            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ensure_a11y_state"
+              c:identifier="clutter_seat_ensure_a11y_state">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="153"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_kbd_a11y_settings"
+              c:identifier="clutter_seat_get_kbd_a11y_settings">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="150"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <type name="KbdA11ySettings" c:type="ClutterKbdA11ySettings*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_keyboard" c:identifier="clutter_seat_get_keyboard">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="341">Returns the logical keyboard</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="347">the logical keyboard</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="343">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_keymap" c:identifier="clutter_seat_get_keymap">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="393">Returns the seat keymap</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="144"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="399">the seat keymap</doc>
+          <type name="Keymap" c:type="ClutterKeymap*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="395">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer" c:identifier="clutter_seat_get_pointer">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="325">Returns the logical pointer</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="134"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="331">the logical pointer</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="327">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer_a11y_settings"
+              c:identifier="clutter_seat_get_pointer_a11y_settings">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="511">Gets the current pointer accessibility settings</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="160"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="513">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="514">a pointer to a #ClutterPointerA11ySettings</doc>
+            <type name="PointerA11ySettings"
+                  c:type="ClutterPointerA11ySettings*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_supported_virtual_device_types"
+              c:identifier="clutter_seat_get_supported_virtual_device_types"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="181"/>
+        <return-value transfer-ownership="none">
+          <type name="VirtualDeviceType" c:type="ClutterVirtualDeviceType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_touch_mode" c:identifier="clutter_seat_get_touch_mode">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="727">Gets the current touch-mode state of the #ClutterSeat @seat.
+The #ClutterSeat:touch-mode property is set to %TRUE if the following
+requirements are fulfilled:
+
+ - A touchscreen is available
+ - A tablet mode switch, if present, is enabled</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="195"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="738">%TRUE if the device is a tablet that doesn't have an external
+  keyboard attached, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="729">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="handle_device_event"
+              c:identifier="clutter_seat_handle_device_event">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="187"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="inhibit_unfocus"
+              c:identifier="clutter_seat_inhibit_unfocus">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="547">Inhibits unsetting of the pointer focus-surface for the #ClutterSeat @seat,
+this allows to keep using the pointer even when it's hidden.
+
+This property is refcounted, so clutter_seat_uninhibit_unfocus() must be
+called the exact same number of times as clutter_seat_inhibit_unfocus()
+was called before.</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="168"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="549">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_unfocus_inhibited"
+              c:identifier="clutter_seat_is_unfocus_inhibited">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="605">Gets whether unsetting of the pointer focus-surface is inhibited
+for the #ClutterSeat @seat.</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="174"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="612">%TRUE if unsetting is inhibited, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="607">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_devices" c:identifier="clutter_seat_list_devices">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="368">Returns the list of HW devices</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="138"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-seat.c"
+               line="374">A list
+  of #ClutterInputDevice. The elements of the returned list are owned by
+  Clutter and may not be freed, the returned list should be freed using
+  g_list_free() when done.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="InputDevice"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="370">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="peek_devices"
+              c:identifier="clutter_seat_peek_devices"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="const GList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_kbd_a11y_settings"
+              c:identifier="clutter_seat_set_kbd_a11y_settings">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="147"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <type name="KbdA11ySettings" c:type="ClutterKbdA11ySettings*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pointer_a11y_dwell_click_type"
+              c:identifier="clutter_seat_set_pointer_a11y_dwell_click_type">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="529">Sets the dwell click type</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="164"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="531">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="click_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="532">type of click as #ClutterPointerA11yDwellClickType</doc>
+            <type name="PointerA11yDwellClickType"
+                  c:type="ClutterPointerA11yDwellClickType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pointer_a11y_settings"
+              c:identifier="clutter_seat_set_pointer_a11y_settings">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="485">Sets the pointer accessibility settings</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="156"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="487">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="488">a pointer to a #ClutterPointerA11ySettings</doc>
+            <type name="PointerA11ySettings"
+                  c:type="ClutterPointerA11ySettings*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="uninhibit_unfocus"
+              c:identifier="clutter_seat_uninhibit_unfocus">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="573">Disables the inhibiting of unsetting of the pointer focus-surface
+previously enabled by calling clutter_seat_inhibit_unfocus().
+
+This property is refcounted, so clutter_seat_uninhibit_unfocus() must be
+called the exact same number of times as clutter_seat_inhibit_unfocus()
+was called before.</doc>
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="171"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="575">a #ClutterSeat</doc>
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="warp_pointer" c:identifier="clutter_seat_warp_pointer">
+        <source-position filename="../clutter/clutter/clutter-seat.h"
+                         line="191"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="seat" transfer-ownership="none">
+            <type name="Seat" c:type="ClutterSeat*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="backend"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Backend"/>
+      </property>
+      <property name="touch-mode" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="304">The current touch-mode of the #ClutterSeat, it is set to %TRUE if the
+requirements documented in clutter_seat_get_touch_mode() are fulfilled.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="device-added" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="InputDevice"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="device-removed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="InputDevice"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="is-unfocus-inhibited-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="281">The ::is-unfocus-inhibited-changed signal is emitted when the
+property to inhibit the unsetting of the focus-surface of the
+#ClutterSeat changed. To get the current state of this property,
+use clutter_seat_is_unfocus_inhibited().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="kbd-a11y-flags-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="190">The ::kbd-a11y-flags-changed signal is emitted each time the
+ClutterKeyboardA11yFlags configuration is changed as the result of
+keyboard accessibility operations.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="settings_flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="193">the new ClutterKeyboardA11yFlags configuration</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="changed_mask" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="194">the ClutterKeyboardA11yFlags changed</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="kbd-a11y-mods-state-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="167">The ::kbd-a11y-mods-state-changed signal is emitted each time either the
+latched modifiers mask or locked modifiers mask are changed as the
+result of keyboard accessibilty's sticky keys operations.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="latched_mask" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="170">the latched modifier mask from stickykeys</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="locked_mask" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="171">the locked modifier mask from stickykeys</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="ptr-a11y-dwell-click-type-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="213">The ::ptr-a11y-dwell-click-type-changed signal is emitted each time
+the ClutterPointerA11yDwellClickType mode is changed as the result
+of pointer accessibility operations.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="click_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="216">the new #ClutterPointerA11yDwellClickType mode</doc>
+            <type name="PointerA11yDwellClickType"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="ptr-a11y-timeout-started" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="230">The ::ptr-a11y-timeout-started signal is emitted when a
+pointer accessibility timeout delay is started, so that upper
+layers can notify the user with some visual feedback.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="233">the core pointer #ClutterInputDevice</doc>
+            <type name="InputDevice"/>
+          </parameter>
+          <parameter name="timeout_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="234">the type of timeout #ClutterPointerA11yTimeoutType</doc>
+            <type name="PointerA11yTimeoutType"/>
+          </parameter>
+          <parameter name="delay" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="235">the delay in ms before secondary-click is triggered.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="ptr-a11y-timeout-stopped" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-seat.c"
+             line="255">The ::ptr-a11y-timeout-stopped signal is emitted when a running
+pointer accessibility timeout delay is stopped, either because
+it's triggered at the end of the delay or cancelled, so that
+upper layers can notify the user with some visual feedback.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="device" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="258">the core pointer #ClutterInputDevice</doc>
+            <type name="InputDevice"/>
+          </parameter>
+          <parameter name="timeout_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="259">the type of timeout #ClutterPointerA11yTimeoutType</doc>
+            <type name="PointerA11yTimeoutType"/>
+          </parameter>
+          <parameter name="clicked" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="260">%TRUE if the timeout finished and triggered a click</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="tool-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="InputDevice"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="InputDeviceTool"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="SeatClass"
+            c:type="ClutterSeatClass"
+            glib:is-gtype-struct-for="Seat">
+      <source-position filename="../clutter/clutter/clutter-seat.h"
+                       line="131"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_pointer">
+        <callback name="get_pointer">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="331">the logical pointer</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-seat.c"
+                   line="327">a #ClutterSeat</doc>
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_keyboard">
+        <callback name="get_keyboard">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="97"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="347">the logical keyboard</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-seat.c"
+                   line="343">a #ClutterSeat</doc>
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="peek_devices" introspectable="0">
+        <callback name="peek_devices" introspectable="0">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="99"/>
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="const GList*">
+              <type name="gpointer" c:type="gpointer"/>
+            </type>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="bell_notify">
+        <callback name="bell_notify">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="101"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_keymap">
+        <callback name="get_keymap">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="103"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="399">the seat keymap</doc>
+            <type name="Keymap" c:type="ClutterKeymap*"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-seat.c"
+                   line="395">a #ClutterSeat</doc>
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="compress_motion">
+        <callback name="compress_motion">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="105"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+            <parameter name="to_discard" transfer-ownership="none">
+              <type name="Event" c:type="const ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="handle_device_event">
+        <callback name="handle_device_event">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="109"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="warp_pointer">
+        <callback name="warp_pointer">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="112"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="copy_event_data">
+        <callback name="copy_event_data">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="117"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="src" transfer-ownership="none">
+              <type name="Event" c:type="const ClutterEvent*"/>
+            </parameter>
+            <parameter name="dest" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="free_event_data">
+        <callback name="free_event_data">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="120"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="apply_kbd_a11y_settings">
+        <callback name="apply_kbd_a11y_settings">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="124"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="settings" transfer-ownership="none">
+              <type name="KbdA11ySettings" c:type="ClutterKbdA11ySettings*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_virtual_device">
+        <callback name="create_virtual_device">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="128"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-seat.c"
+                 line="633">a newly created virtual device</doc>
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-seat.c"
+                   line="628">a #ClutterSeat</doc>
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+            <parameter name="device_type" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-seat.c"
+                   line="629">the type of the virtual device</doc>
+              <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_supported_virtual_device_types">
+        <callback name="get_supported_virtual_device_types">
+          <source-position filename="../clutter/clutter/clutter-seat.h"
+                           line="130"/>
+          <return-value transfer-ownership="none">
+            <type name="VirtualDeviceType" c:type="ClutterVirtualDeviceType"/>
+          </return-value>
+          <parameters>
+            <parameter name="seat" transfer-ownership="none">
+              <type name="Seat" c:type="ClutterSeat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="Settings"
+           c:symbol-prefix="settings"
+           c:type="ClutterSettings"
+           version="1.4"
+           parent="GObject.Object"
+           glib:type-name="ClutterSettings"
+           glib:get-type="clutter_settings_get_type"
+           glib:type-struct="SettingsClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-settings.c"
+           line="55">`ClutterSettings` is an opaque structure whose
+members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-settings.h"
+                       line="17"/>
+      <function name="get_default"
+                c:identifier="clutter_settings_get_default"
+                version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="881">Retrieves the singleton instance of #ClutterSettings</doc>
+        <source-position filename="../clutter/clutter/clutter-settings.h"
+                         line="23"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-settings.c"
+               line="886">the instance of #ClutterSettings. The
+  returned object is owned by Clutter and it should not be unreferenced
+  directly</doc>
+          <type name="Settings" c:type="ClutterSettings*"/>
+        </return-value>
+      </function>
+      <property name="backend"
+                version="1.4"
+                deprecated="1"
+                deprecated-version="1.10"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="625">A back pointer to the #ClutterBackend</doc>
+        <type name="Backend"/>
+      </property>
+      <property name="dnd-drag-threshold"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="675">The default distance that the cursor of a pointer device
+should travel before a drag operation should start.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="double-click-distance"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="659">The maximum distance, in pixels, between button-press events that
+determines whether or not to increase the click count by 1.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="double-click-time"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="643">The time, in milliseconds, that should elapse between button-press
+events in order to increase the click count by 1.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="font-antialias"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="706">Whether or not to use antialiasing when rendering text; a value
+of 1 enables it unconditionally; a value of 0 disables it
+unconditionally; and -1 will use the system's default.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="font-dpi"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="723">The DPI used when rendering text, as a value of 1024 * dots/inch.
+
+If set to -1, the system's default will be used instead</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="font-hint-style"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="765">The style of the hinting used when rendering text. Valid values
+are:
+
+  - hintnone
+  - hintslight
+  - hintmedium
+  - hintfull</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="font-hinting"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="748">Whether or not to use hinting when rendering text; a value of 1
+unconditionally enables it; a value of 0 unconditionally disables
+it; and a value of -1 will use the system's default.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="font-name"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="691">The default font name that should be used by text actors, as
+a string that can be passed to pango_font_description_from_string().</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="font-subpixel-order"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="785">The type of sub-pixel antialiasing used when rendering text. Valid
+values are:
+
+  - none
+  - rgb
+  - bgr
+  - vrgb
+  - vbgr</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="fontconfig-timestamp"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="long-press-duration"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-settings.c"
+             line="806">Sets the minimum duration for a press to be recognized as a long press
+gesture. The duration is expressed in milliseconds.
+
+See also #ClutterClickAction:long-press-duration.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="password-hint-time"
+                writable="1"
+                transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="unscaled-font-dpi"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+    </class>
+    <record name="SettingsClass"
+            c:type="ClutterSettingsClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Settings">
+      <source-position filename="../clutter/clutter/clutter-settings.h"
+                       line="17"/>
+    </record>
+    <record name="Shader" c:type="ClutterShader" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="104"/>
+    </record>
+    <class name="ShaderEffect"
+           c:symbol-prefix="shader_effect"
+           c:type="ClutterShaderEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterShaderEffect"
+           glib:get-type="clutter_shader_effect_get_type"
+           glib:type-struct="ShaderEffectClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-effect.h"
+           line="47">The #ClutterShaderEffect structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="91"/>
+      <constructor name="new"
+                   c:identifier="clutter_shader_effect_new"
+                   version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="495">Creates a new #ClutterShaderEffect, to be applied to an actor using
+clutter_actor_add_effect().
+
+The effect will be empty until clutter_shader_effect_set_shader_source()
+is called.</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-effect.c"
+               line="506">the newly created #ClutterShaderEffect.
+  Use g_object_unref() when done.</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="shader_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="497">the type of the shader, either %CLUTTER_FRAGMENT_SHADER,
+  or %CLUTTER_VERTEX_SHADER</doc>
+            <type name="ShaderType" c:type="ClutterShaderType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="get_static_shader_source">
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="82"/>
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_program"
+              c:identifier="clutter_shader_effect_get_program"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="539">Retrieves a pointer to the program's handle</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="117"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-effect.c"
+               line="545">a pointer to the program's handle,
+  or %NULL</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="541">a #ClutterShaderEffect</doc>
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_shader"
+              c:identifier="clutter_shader_effect_get_shader"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="519">Retrieves a pointer to the shader's handle</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="115"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-effect.c"
+               line="525">a pointer to the shader's handle,
+  or %NULL</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="521">a #ClutterShaderEffect</doc>
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_shader_source"
+              c:identifier="clutter_shader_effect_set_shader_source"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="856">Sets the source of the GLSL shader used by @effect
+
+This function should only be called by implementations of
+the #ClutterShaderEffect class, and not by application code.
+
+This function can only be called once; subsequent calls will
+yield no result.</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-effect.c"
+               line="869">%TRUE if the source was set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="858">a #ClutterShaderEffect</doc>
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="859">the source of a GLSL shader</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform"
+              c:identifier="clutter_shader_effect_set_uniform"
+              version="1.4"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="773">Sets a list of values as the payload for the uniform @name inside
+the shader effect
+
+The @gtype must be one of: %G_TYPE_INT, for 1 or more integer values;
+%G_TYPE_FLOAT, for 1 or more floating point values;
+%CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values;
+%CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point
+values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of
+floating point values mapping a matrix
+
+The number of values interpreted is defined by the @n_value
+argument, and by the @gtype argument. For instance, a uniform named
+"sampler0" and containing a single integer value is set using:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_shader_effect_set_uniform (effect, "sampler0",
+                                     G_TYPE_INT, 1,
+                                     0);
+]|
+
+While a uniform named "components" and containing a 3-elements vector
+of floating point values (a "vec3") can be set using:
+
+|[&lt;!-- language="C" --&gt;
+  gfloat component_r, component_g, component_b;
+
+  clutter_shader_effect_set_uniform (effect, "components",
+                                     G_TYPE_FLOAT, 3,
+                                     component_r,
+                                     component_g,
+                                     component_b);
+]|
+
+or can be set using:
+
+|[&lt;!-- language="C" --&gt;
+  gfloat component_vec[3];
+
+  clutter_shader_effect_set_uniform (effect, "components",
+                                     CLUTTER_TYPE_SHADER_FLOAT, 3,
+                                     component_vec);
+]|
+
+Finally, a uniform named "map" and containing a matrix can be set using:
+
+|[&lt;!-- language="C" --&gt;
+  clutter_shader_effect_set_uniform (effect, "map",
+                                     CLUTTER_TYPE_SHADER_MATRIX, 1,
+                                     cogl_matrix_get_array (&amp;matrix));
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="775">a #ClutterShaderEffect</doc>
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="776">the name of the uniform to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="777">the type of the uniform to set</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="n_values" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="778">the number of values</doc>
+            <type name="gsize" c:type="gsize"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="779">a list of values</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_value"
+              c:identifier="clutter_shader_effect_set_uniform_value"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="628">Sets @value as the payload for the uniform @name inside the shader
+effect
+
+The #GType of the @value must be one of: %G_TYPE_INT, for a single
+integer value; %G_TYPE_FLOAT, for a single floating point value;
+%CLUTTER_TYPE_SHADER_INT, for an array of integer values;
+%CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values;
+and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point
+values. It also accepts %G_TYPE_DOUBLE for compatibility with other
+languages than C.</doc>
+        <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                         line="110"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="effect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="630">a #ClutterShaderEffect</doc>
+            <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="631">the name of the uniform to set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-shader-effect.c"
+                 line="632">a #GValue with the value of the uniform to set</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="shader-type"
+                version="1.4"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-effect.c"
+             line="460">The type of shader that is used by the effect. This property
+should be set by the constructor of #ClutterShaderEffect
+sub-classes.</doc>
+        <type name="ShaderType"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ShaderEffectPrivate" c:type="ClutterShaderEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="ShaderEffectClass"
+            c:type="ClutterShaderEffectClass"
+            glib:is-gtype-struct-for="ShaderEffect"
+            version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-effect.h"
+           line="63">The #ClutterShaderEffectClass structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="91"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="OffscreenEffectClass"
+              c:type="ClutterOffscreenEffectClass"/>
+      </field>
+      <field name="get_static_shader_source">
+        <callback name="get_static_shader_source">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="82"/>
+          <return-value transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="ShaderEffect" c:type="ClutterShaderEffect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_shader1" introspectable="0">
+        <callback name="_clutter_shader1">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader2" introspectable="0">
+        <callback name="_clutter_shader2">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader3" introspectable="0">
+        <callback name="_clutter_shader3">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader4" introspectable="0">
+        <callback name="_clutter_shader4">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader5" introspectable="0">
+        <callback name="_clutter_shader5">
+          <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ShaderEffectPrivate"
+            c:type="ClutterShaderEffectPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-shader-effect.h"
+                       line="44"/>
+    </record>
+    <class name="ShaderFloat"
+           c:symbol-prefix="shader_float"
+           c:type="ClutterShaderFloat"
+           glib:type-name="ClutterShaderFloat"
+           glib:get-type="clutter_shader_float_get_type"
+           glib:fundamental="1">
+    </class>
+    <class name="ShaderInt"
+           c:symbol-prefix="shader_int"
+           c:type="ClutterShaderInt"
+           glib:type-name="ClutterShaderInt"
+           glib:get-type="clutter_shader_int_get_type"
+           glib:fundamental="1">
+    </class>
+    <class name="ShaderMatrix"
+           c:symbol-prefix="shader_matrix"
+           c:type="ClutterShaderMatrix"
+           glib:type-name="ClutterShaderMatrix"
+           glib:get-type="clutter_shader_matrix_get_type"
+           glib:fundamental="1">
+    </class>
+    <enumeration name="ShaderType"
+                 version="1.4"
+                 glib:type-name="ClutterShaderType"
+                 glib:get-type="clutter_shader_type_get_type"
+                 c:type="ClutterShaderType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="298">The type of GLSL shader program</doc>
+      <member name="vertex_shader"
+              value="0"
+              c:identifier="CLUTTER_VERTEX_SHADER"
+              glib:nick="vertex-shader">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="300">a vertex shader</doc>
+      </member>
+      <member name="fragment_shader"
+              value="1"
+              c:identifier="CLUTTER_FRAGMENT_SHADER"
+              glib:nick="fragment-shader">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="301">a fragment shader</doc>
+      </member>
+    </enumeration>
+    <class name="SnapConstraint"
+           c:symbol-prefix="snap_constraint"
+           c:type="ClutterSnapConstraint"
+           version="1.6"
+           parent="Constraint"
+           glib:type-name="ClutterSnapConstraint"
+           glib:get-type="clutter_snap_constraint_get_type"
+           glib:type-struct="SnapConstraintClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-snap-constraint.h"
+           line="40">#ClutterSnapConstraint is an opaque structure
+whose members cannot be directly accesses</doc>
+      <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                       line="49"/>
+      <constructor name="new"
+                   c:identifier="clutter_snap_constraint_new"
+                   version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="388">Creates a new #ClutterSnapConstraint that will snap a #ClutterActor
+to the @edge of @source, with the given @offset.</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-snap-constraint.c"
+               line="399">the newly created #ClutterSnapConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="390">the #ClutterActor to use as the source of
+  the constraint, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="from_edge" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="392">the edge of the actor to use in the constraint</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge"/>
+          </parameter>
+          <parameter name="to_edge" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="393">the edge of @source to use in the constraint</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="394">the offset to apply to the constraint, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_edges"
+              c:identifier="clutter_snap_constraint_get_edges"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="536">Retrieves the edges used by the @constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="538">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+          <parameter name="from_edge"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="539">return location for the actor's edge, or %NULL</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge*"/>
+          </parameter>
+          <parameter name="to_edge"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="540">return location for the source's edge, or %NULL</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_offset"
+              c:identifier="clutter_snap_constraint_get_offset"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="586">Retrieves the offset set using clutter_snap_constraint_set_offset()</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-snap-constraint.c"
+               line="592">the offset, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="588">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_snap_constraint_get_source"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="468">Retrieves the #ClutterActor set using clutter_snap_constraint_set_source()</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="64"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-snap-constraint.c"
+               line="474">a pointer to the source actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="470">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_edges"
+              c:identifier="clutter_snap_constraint_set_edges"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="486">Sets the edges to be used by the @constraint
+
+The @from_edge is the edge on the #ClutterActor to which @constraint
+has been added. The @to_edge is the edge of the #ClutterActor inside
+the #ClutterSnapConstraint:source property.</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="488">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+          <parameter name="from_edge" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="489">the edge on the actor</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge"/>
+          </parameter>
+          <parameter name="to_edge" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="490">the edge on the source</doc>
+            <type name="SnapEdge" c:type="ClutterSnapEdge"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_offset"
+              c:identifier="clutter_snap_constraint_set_offset"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="560">Sets the offset to be applied to the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="74"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="562">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="563">the offset to apply, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_snap_constraint_set_source"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="419">Sets the source #ClutterActor for the constraint</doc>
+        <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="constraint" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="421">a #ClutterSnapConstraint</doc>
+            <type name="SnapConstraint" c:type="ClutterSnapConstraint*"/>
+          </instance-parameter>
+          <parameter name="source"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-snap-constraint.c"
+                 line="422">a #ClutterActor, or %NULL to unset the source</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="from-edge"
+                version="1.6"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="324">The edge of the #ClutterActor that should be snapped</doc>
+        <type name="SnapEdge"/>
+      </property>
+      <property name="offset"
+                version="1.6"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="354">The offset, in pixels, between #ClutterSnapConstraint:from-edge
+and #ClutterSnapConstraint:to-edge</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="source"
+                version="1.6"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="310">The #ClutterActor used as the source for the constraint</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="to-edge"
+                version="1.6"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-snap-constraint.c"
+             line="339">The edge of the #ClutterSnapConstraint:source that should be snapped</doc>
+        <type name="SnapEdge"/>
+      </property>
+    </class>
+    <record name="SnapConstraintClass"
+            c:type="ClutterSnapConstraintClass"
+            disguised="1"
+            glib:is-gtype-struct-for="SnapConstraint">
+      <source-position filename="../clutter/clutter/clutter-snap-constraint.h"
+                       line="49"/>
+    </record>
+    <enumeration name="SnapEdge"
+                 version="1.6"
+                 glib:type-name="ClutterSnapEdge"
+                 glib:get-type="clutter_snap_edge_get_type"
+                 c:type="ClutterSnapEdge">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1091">The edge to snap</doc>
+      <member name="top"
+              value="0"
+              c:identifier="CLUTTER_SNAP_EDGE_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1093">the top edge</doc>
+      </member>
+      <member name="right"
+              value="1"
+              c:identifier="CLUTTER_SNAP_EDGE_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1094">the right edge</doc>
+      </member>
+      <member name="bottom"
+              value="2"
+              c:identifier="CLUTTER_SNAP_EDGE_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1095">the bottom edge</doc>
+      </member>
+      <member name="left"
+              value="3"
+              c:identifier="CLUTTER_SNAP_EDGE_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1096">the left edge</doc>
+      </member>
+    </enumeration>
+    <class name="Stage"
+           c:symbol-prefix="stage"
+           c:type="ClutterStage"
+           version="0.2"
+           parent="Actor"
+           glib:type-name="ClutterStage"
+           glib:get-type="clutter_stage_get_type"
+           glib:type-struct="StageClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage.h"
+           line="48">The #ClutterStage structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="93"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <virtual-method name="activate">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="before_paint">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="deactivate">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint_view">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </parameter>
+          <parameter name="redraw_clip" transfer-ownership="none">
+            <type name="cairo.Region" c:type="const cairo_region_t*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="capture_into" c:identifier="clutter_stage_capture_into">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="paint" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="guint8" c:type="uint8_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_stage_views"
+              c:identifier="clutter_stage_clear_stage_views">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ensure_viewport"
+              c:identifier="clutter_stage_ensure_viewport"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2594">Ensures that the GL viewport is updated with the current
+stage window size.
+
+This function will queue a redraw of @stage.
+
+This function should not be called by applications; it is used
+when embedding a #ClutterStage into a toolkit with another
+windowing system, like GTK+.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="193"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2596">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="event" c:identifier="clutter_stage_event" version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2398">This function is used to emit an event on the main stage.
+
+You should rarely need to use this function, except for
+synthetised events.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2408">the return value from the signal emission</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2400">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2401">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actor_at_pos"
+              c:identifier="clutter_stage_get_actor_at_pos">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2367">Checks the scene at the coordinates @x and @y and returns a pointer
+to the #ClutterActor at those coordinates. The result is the actor which
+would be at the specified location on the next redraw, and is not
+necessarily that which was there on the previous redraw. This allows the
+function to perform chronologically correctly after any queued changes to
+the scene, and even if nothing has been drawn.
+
+By using @pick_mode it is possible to control which actors will be
+painted and thus available.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="181"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2384">the actor at the specified coordinates,
+  if any</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2369">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="pick_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2370">how the scene graph should be painted</doc>
+            <type name="PickMode" c:type="ClutterPickMode"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2371">X coordinate to check</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2372">Y coordinate to check</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_capture_final_size"
+              c:identifier="clutter_stage_get_capture_final_size">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="211"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="scale" transfer-ownership="none">
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_counter"
+              c:identifier="clutter_stage_get_frame_counter">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="50"/>
+        <return-value transfer-ownership="none">
+          <type name="gint64" c:type="int64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key_focus"
+              c:identifier="clutter_stage_get_key_focus"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2551">Retrieves the actor that is currently under key focus.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="165"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2557">the actor with key focus, or the stage</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2553">the #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_minimum_size"
+              c:identifier="clutter_stage_get_minimum_size"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2960">Retrieves the minimum size for a stage window as set using
+clutter_stage_set_minimum_size().
+
+The returned size may not correspond to the actual minimum size and
+it is specific to the #ClutterStage implementation inside the
+Clutter backend</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="152"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2962">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2963">return location for the minimum width, in pixels,
+  or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2965">return location for the minimum height, in pixels,
+  or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_events_enabled"
+              c:identifier="clutter_stage_get_motion_events_enabled"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="3299">Retrieves the value set using clutter_stage_set_motion_events_enabled().</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="175"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="3305">%TRUE if the per-actor motion event delivery is enabled
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="3301">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_perspective"
+              c:identifier="clutter_stage_get_perspective">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2077">Retrieves the stage perspective.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2079">A #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="perspective"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2080">return location for a
+  #ClutterPerspective</doc>
+            <type name="Perspective" c:type="ClutterPerspective*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_throttle_motion_events"
+              c:identifier="clutter_stage_get_throttle_motion_events"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2910">Retrieves the value set with clutter_stage_set_throttle_motion_events()</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="170"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2916">%TRUE if the motion events are being throttled,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2912">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_title"
+              c:identifier="clutter_stage_get_title"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2467">Gets the stage title.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="145"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2473">pointer to the title string for the stage. The
+returned string is owned by the actor and should not
+be modified or freed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2469">A #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_use_alpha" c:identifier="clutter_stage_get_use_alpha">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="159"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_view_at"
+              c:identifier="clutter_stage_get_view_at"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="235"/>
+        <return-value>
+          <type name="StageView" c:type="ClutterStageView*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_redraw_queued_on_view"
+              c:identifier="clutter_stage_is_redraw_queued_on_view"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="196"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paint_to_buffer"
+              c:identifier="clutter_stage_paint_to_buffer"
+              throws="1">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="225"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt"
+                  c:type="const cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="scale" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="guint8" c:type="uint8_t*"/>
+          </parameter>
+          <parameter name="stride" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="paint_flags" transfer-ownership="none">
+            <type name="PaintFlag" c:type="ClutterPaintFlag"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paint_to_framebuffer"
+              c:identifier="clutter_stage_paint_to_framebuffer">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="218"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="framebuffer" transfer-ownership="none">
+            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+          </parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt"
+                  c:type="const cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="scale" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="paint_flags" transfer-ownership="none">
+            <type name="PaintFlag" c:type="ClutterPaintFlag"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_stage_views"
+              c:identifier="clutter_stage_peek_stage_views"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="40"/>
+        <return-value>
+          <type name="GLib.List" c:type="GList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="read_pixels" c:identifier="clutter_stage_read_pixels">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2268">Makes a screenshot of the stage in RGBA 8bit data, returns a
+linear buffer with @width * 4 as rowstride.
+
+The alpha data contained in the returned buffer is driver-dependent,
+and not guaranteed to hold any sensible value.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="186"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage.c"
+               line="2284">a pointer to newly allocated memory with the buffer
+  or %NULL if the read failed. Use g_free() on the returned data
+  to release the resources it has allocated.</doc>
+          <array zero-terminated="0" c:type="guchar*">
+            <type name="guint8" c:type="guchar"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2270">A #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2271">x coordinate of the first pixel that is read from stage</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2272">y coordinate of the first pixel that is read from stage</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2273">Width dimension of pixels to be read, or -1 for the
+  entire stage width</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2275">Height dimension of pixels to be read, or -1 for the
+  entire stage height</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="schedule_update"
+              c:identifier="clutter_stage_schedule_update">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="3010">Schedules a redraw of the #ClutterStage at the next optimal timestamp.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="208"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="3012">a #ClutterStage actor</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_key_focus"
+              c:identifier="clutter_stage_set_key_focus"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2487">Sets the key focus on @actor. An actor with key focus will receive
+all the key events. If @actor is %NULL, the stage will receive
+focus.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="162"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2489">the #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2490">the actor to set key focus to, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_minimum_size"
+              c:identifier="clutter_stage_set_minimum_size"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2929">Sets the minimum size for a stage window, if the default backend
+uses #ClutterStage inside a window
+
+This is a convenience function, and it is equivalent to setting the
+#ClutterActor:min-width and #ClutterActor:min-height on @stage
+
+If the current size of @stage is smaller than the minimum size, the
+@stage will be resized to the new @width and @height</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="148"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2931">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2932">width, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2933">height, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_motion_events_enabled"
+              c:identifier="clutter_stage_set_motion_events_enabled"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="3254">Sets whether per-actor motion events (and relative crossing
+events) should be disabled or not.
+
+The default is %TRUE.
+
+If @enable is %FALSE the following signals will not be emitted
+by the actors children of @stage:
+
+ - #ClutterActor::motion-event
+ - #ClutterActor::enter-event
+ - #ClutterActor::leave-event
+
+The events will still be delivered to the #ClutterStage.
+
+The main side effect of this function is that disabling the motion
+events will disable picking to detect the #ClutterActor underneath
+the pointer for each motion event. This is useful, for instance,
+when dragging a #ClutterActor across the @stage: the actor underneath
+the pointer is not going to change, so it's meaningless to perform
+a pick.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="172"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="3256">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="3257">%TRUE to enable the motion events delivery, and %FALSE
+  otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_throttle_motion_events"
+              c:identifier="clutter_stage_set_throttle_motion_events"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2880">Sets whether motion events received between redraws should
+be throttled or not. If motion events are throttled, those
+events received by the windowing system between redraws will
+be compressed so that only the last event will be propagated
+to the @stage and its actors.
+
+This function should only be used if you want to have all
+the motion events delivered to your application code.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="167"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2882">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="throttle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2883">%TRUE to throttle motion events</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_title"
+              c:identifier="clutter_stage_set_title"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="2437">Sets the stage title.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2439">A #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="title" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="2440">A utf8 string for the stage windows title.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_alpha" c:identifier="clutter_stage_set_use_alpha">
+        <source-position filename="../clutter/clutter/clutter-stage.h"
+                         line="156"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </instance-parameter>
+          <parameter name="use_alpha" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="key-focus"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1800">The #ClutterActor that will receive key events from the underlying
+windowing system.
+
+If %NULL, the #ClutterStage will receive the events.</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="perspective" version="0.8" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1771">The parameters used for the perspective projection from 3D
+coordinates to 2D</doc>
+        <type name="Perspective"/>
+      </property>
+      <property name="title"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1786">The stage's title - usually displayed in stage windows title decorations.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="StagePrivate" c:type="ClutterStagePrivate*"/>
+      </field>
+      <glib:signal name="activate" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1819">The ::activate signal is emitted when the stage receives key focus
+from the underlying window system.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="after-paint" when="last" version="1.20">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1881">The ::after-paint signal is emitted after the stage is painted,
+but before the results are displayed on the screen.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1884">a #ClutterStageView</doc>
+            <type name="StageView"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="after-update" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1903">a #ClutterStageView</doc>
+            <type name="StageView"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="before-paint" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1866">The ::before-paint signal is emitted before the stage is painted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1869">a #ClutterStageView</doc>
+            <type name="StageView"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="before-update" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1855">a #ClutterStageView</doc>
+            <type name="StageView"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="deactivate" when="last" version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1835">The ::deactivate signal is emitted when the stage loses key focus
+from the underlying window system.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="gl-video-memory-purged"
+                   when="last"
+                   introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1955">Signals that the underlying GL driver has had its texture memory purged
+so anything presently held in texture memory is now invalidated, and
+likely corrupt. It needs redrawing.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="paint-view" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1914">The ::paint-view signal is emitted before a #ClutterStageView is being
+painted.
+
+The view is painted in the default handler. Hence, if you want to perform
+some action after the view is painted, like reading the contents of the
+framebuffer, use g_signal_connect_after() or pass %G_CONNECT_AFTER.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1917">a #ClutterStageView</doc>
+            <type name="StageView"/>
+          </parameter>
+          <parameter name="redraw_clip" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1918">a #cairo_region_t with the redraw clip</doc>
+            <type name="cairo.Region"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="presented" when="last" introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage.c"
+             line="1937">Signals that the #ClutterStage was presented on the screen to the user.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1940">the #ClutterStageView presented</doc>
+            <type name="StageView"/>
+          </parameter>
+          <parameter name="frame_info"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage.c"
+                 line="1941">a #ClutterFrameInfo</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="StageClass"
+            c:type="ClutterStageClass"
+            glib:is-gtype-struct-for="Stage"
+            version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage.h"
+           line="63">The #ClutterStageClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="activate">
+        <callback name="activate">
+          <source-position filename="../clutter/clutter/clutter-stage.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deactivate">
+        <callback name="deactivate">
+          <source-position filename="../clutter/clutter/clutter-stage.h"
+                           line="81"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="before_paint">
+        <callback name="before_paint">
+          <source-position filename="../clutter/clutter/clutter-stage.h"
+                           line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+            <parameter name="view" transfer-ownership="none">
+              <type name="StageView" c:type="ClutterStageView*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint_view">
+        <callback name="paint_view">
+          <source-position filename="../clutter/clutter/clutter-stage.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+            <parameter name="view" transfer-ownership="none">
+              <type name="StageView" c:type="ClutterStageView*"/>
+            </parameter>
+            <parameter name="redraw_clip" transfer-ownership="none">
+              <type name="cairo.Region" c:type="const cairo_region_t*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="31">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <class name="StageManager"
+           c:symbol-prefix="stage_manager"
+           c:type="ClutterStageManager"
+           version="1.0"
+           parent="GObject.Object"
+           glib:type-name="ClutterStageManager"
+           glib:get-type="clutter_stage_manager_get_type"
+           glib:type-struct="StageManagerClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage-manager.h"
+           line="45">The #ClutterStageManager structure is private.</doc>
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="70"/>
+      <function name="get_default"
+                c:identifier="clutter_stage_manager_get_default"
+                version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="163">Returns the default #ClutterStageManager.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-manager.c"
+               line="168">the default stage manager instance. The returned
+  object is owned by Clutter and you should not reference or unreference it.</doc>
+          <type name="StageManager" c:type="ClutterStageManager*"/>
+        </return-value>
+      </function>
+      <virtual-method name="stage_added">
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_manager" transfer-ownership="none">
+            <type name="StageManager" c:type="ClutterStageManager*"/>
+          </instance-parameter>
+          <parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="stage_removed">
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_manager" transfer-ownership="none">
+            <type name="StageManager" c:type="ClutterStageManager*"/>
+          </instance-parameter>
+          <parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_default_stage"
+              c:identifier="clutter_stage_manager_get_default_stage"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="208">Returns the default #ClutterStage.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-manager.c"
+               line="214">the default stage. The returned object
+  is owned by Clutter and you should never reference or unreference it</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-manager.c"
+                 line="210">a #ClutterStageManager</doc>
+            <type name="StageManager" c:type="ClutterStageManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_stages"
+              c:identifier="clutter_stage_manager_list_stages"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="225">Lists all currently used stages.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="80"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-manager.c"
+               line="231">a newly
+  allocated list of #ClutterStage objects. Use g_slist_free() to
+  deallocate it when done.</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Stage"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-manager.c"
+                 line="227">a #ClutterStageManager</doc>
+            <type name="StageManager" c:type="ClutterStageManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="peek_stages"
+              c:identifier="clutter_stage_manager_peek_stages"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="243">Lists all currently used stages.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-manager.c"
+               line="249">a pointer
+  to the internal list of #ClutterStage objects. The returned list
+  is owned by the #ClutterStageManager and should never be modified
+  or freed</doc>
+          <type name="GLib.SList" c:type="const GSList*">
+            <type name="Stage"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-manager.c"
+                 line="245">a #ClutterStageManager</doc>
+            <type name="StageManager" c:type="ClutterStageManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="default-stage" version="0.8" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="105">The default stage used by Clutter.</doc>
+        <type name="Stage"/>
+      </property>
+      <glib:signal name="stage-added" when="last" version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="120">The ::stage-added signal is emitted each time a new #ClutterStage
+has been added to the stage manager.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-manager.c"
+                 line="123">the added stage</doc>
+            <type name="Stage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="stage-removed" when="last" version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-manager.c"
+             line="138">The ::stage-removed signal is emitted each time a #ClutterStage
+has been removed from the stage manager.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-manager.c"
+                 line="141">the removed stage</doc>
+            <type name="Stage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="StageManagerClass"
+            c:type="ClutterStageManagerClass"
+            glib:is-gtype-struct-for="StageManager"
+            version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage-manager.h"
+           line="53">The #ClutterStageManagerClass structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                       line="70"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="stage_added">
+        <callback name="stage_added">
+          <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                           line="66"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_manager" transfer-ownership="none">
+              <type name="StageManager" c:type="ClutterStageManager*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stage_removed">
+        <callback name="stage_removed">
+          <source-position filename="../clutter/clutter/clutter-stage-manager.h"
+                           line="68"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_manager" transfer-ownership="none">
+              <type name="StageManager" c:type="ClutterStageManager*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="StagePrivate" c:type="ClutterStagePrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-stage.h"
+                       line="46"/>
+    </record>
+    <bitfield name="StageState"
+              version="0.4"
+              glib:type-name="ClutterStageState"
+              glib:get-type="clutter_stage_state_get_type"
+              c:type="ClutterStageState">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="942">Stage state masks, used by the #ClutterEvent of type %CLUTTER_STAGE_STATE.</doc>
+      <member name="activated"
+              value="8"
+              c:identifier="CLUTTER_STAGE_STATE_ACTIVATED"
+              glib:nick="activated">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="944">Activated mask</doc>
+      </member>
+    </bitfield>
+    <record name="StageStateEvent"
+            c:type="ClutterStageStateEvent"
+            version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="350">Event signalling a change in the #ClutterStage state.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="374"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="352">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="353">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="354">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="355">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="356">event source actor (unused)</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="changed_mask" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="357">bitwise OR of the changed flags</doc>
+        <type name="StageState" c:type="ClutterStageState"/>
+      </field>
+      <field name="new_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="358">bitwise OR of the current state flags</doc>
+        <type name="StageState" c:type="ClutterStageState"/>
+      </field>
+    </record>
+    <class name="StageView"
+           c:symbol-prefix="stage_view"
+           c:type="ClutterStageView"
+           parent="GObject.Object"
+           glib:type-name="ClutterStageView"
+           glib:get-type="clutter_stage_view_get_type"
+           glib:type-struct="StageViewClass">
+      <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                       line="53"/>
+      <virtual-method name="get_offscreen_transformation_matrix"
+                      invoker="get_offscreen_transformation_matrix">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="setup_offscreen_blit_pipeline">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="transform_rect_to_onscreen">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="48"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="src_rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt"
+                  c:type="const cairo_rectangle_int_t*"/>
+          </parameter>
+          <parameter name="dst_width" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_height" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="assign_next_scanout"
+              c:identifier="clutter_stage_view_assign_next_scanout">
+        <source-position filename="../clutter/clutter/clutter-mutter.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stage_view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="scanout" transfer-ownership="none">
+            <type name="Cogl.Scanout" c:type="CoglScanout*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy" c:identifier="clutter_stage_view_destroy">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_clock"
+              c:identifier="clutter_stage_view_get_frame_clock"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="77"/>
+        <return-value>
+          <type name="FrameClock" c:type="ClutterFrameClock*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_framebuffer"
+              c:identifier="clutter_stage_view_get_framebuffer">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-view.c"
+             line="106">Retrieves the framebuffer of @view to draw to.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-view.c"
+               line="112">a #CoglFramebuffer</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-view.c"
+                 line="108">a #ClutterStageView</doc>
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout" c:identifier="clutter_stage_view_get_layout">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_offscreen_transformation_matrix"
+              c:identifier="clutter_stage_view_get_offscreen_transformation_matrix">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_onscreen"
+              c:identifier="clutter_stage_view_get_onscreen">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-stage-view.c"
+             line="128">Retrieves the onscreen framebuffer of @view if available.</doc>
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-stage-view.c"
+               line="134">a #CoglFramebuffer</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-stage-view.c"
+                 line="130">a #ClutterStageView</doc>
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_refresh_rate"
+              c:identifier="clutter_stage_view_get_refresh_rate">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_scale" c:identifier="clutter_stage_view_get_scale">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="invalidate_offscreen_blit_pipeline"
+              c:identifier="clutter_stage_view_invalidate_offscreen_blit_pipeline">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="peek_scanout"
+              c:identifier="clutter_stage_view_peek_scanout"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                         line="80"/>
+        <return-value>
+          <type name="Cogl.Scanout" c:type="CoglScanout*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="view" transfer-ownership="none">
+            <type name="StageView" c:type="ClutterStageView*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="framebuffer"
+                introspectable="0"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type/>
+      </property>
+      <property name="layout"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="cairo.RectangleInt"/>
+      </property>
+      <property name="name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="offscreen"
+                introspectable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type/>
+      </property>
+      <property name="refresh-rate"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="scale"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="gfloat" c:type="gfloat"/>
+      </property>
+      <property name="stage"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Stage"/>
+      </property>
+      <property name="use-shadowfb"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="StageViewClass"
+            c:type="ClutterStageViewClass"
+            glib:is-gtype-struct-for="StageView">
+      <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                       line="53"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="setup_offscreen_blit_pipeline">
+        <callback name="setup_offscreen_blit_pipeline">
+          <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                           line="42"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="view" transfer-ownership="none">
+              <type name="StageView" c:type="ClutterStageView*"/>
+            </parameter>
+            <parameter name="pipeline" transfer-ownership="none">
+              <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_offscreen_transformation_matrix">
+        <callback name="get_offscreen_transformation_matrix">
+          <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                           line="45"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="view" transfer-ownership="none">
+              <type name="StageView" c:type="ClutterStageView*"/>
+            </parameter>
+            <parameter name="matrix" transfer-ownership="none">
+              <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="transform_rect_to_onscreen">
+        <callback name="transform_rect_to_onscreen">
+          <source-position filename="../clutter/clutter/clutter-stage-view.h"
+                           line="48"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="view" transfer-ownership="none">
+              <type name="StageView" c:type="ClutterStageView*"/>
+            </parameter>
+            <parameter name="src_rect" transfer-ownership="none">
+              <type name="cairo.RectangleInt"
+                    c:type="const cairo_rectangle_int_t*"/>
+            </parameter>
+            <parameter name="dst_width" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="dst_height" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="dst_rect" transfer-ownership="none">
+              <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="StaticColor"
+                 version="1.6"
+                 glib:type-name="ClutterStaticColor"
+                 glib:get-type="clutter_static_color_get_type"
+                 c:type="ClutterStaticColor">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="703">Named colors, for accessing global colors defined by Clutter</doc>
+      <member name="white"
+              value="0"
+              c:identifier="CLUTTER_COLOR_WHITE"
+              glib:nick="white">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="705">White color (ffffffff)</doc>
+      </member>
+      <member name="black"
+              value="1"
+              c:identifier="CLUTTER_COLOR_BLACK"
+              glib:nick="black">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="706">Black color (000000ff)</doc>
+      </member>
+      <member name="red"
+              value="2"
+              c:identifier="CLUTTER_COLOR_RED"
+              glib:nick="red">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="707">Red color (ff0000ff)</doc>
+      </member>
+      <member name="dark_red"
+              value="3"
+              c:identifier="CLUTTER_COLOR_DARK_RED"
+              glib:nick="dark-red">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="708">Dark red color (800000ff)</doc>
+      </member>
+      <member name="green"
+              value="4"
+              c:identifier="CLUTTER_COLOR_GREEN"
+              glib:nick="green">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="709">Green color (00ff00ff)</doc>
+      </member>
+      <member name="dark_green"
+              value="5"
+              c:identifier="CLUTTER_COLOR_DARK_GREEN"
+              glib:nick="dark-green">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="710">Dark green color (008000ff)</doc>
+      </member>
+      <member name="blue"
+              value="6"
+              c:identifier="CLUTTER_COLOR_BLUE"
+              glib:nick="blue">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="711">Blue color (0000ffff)</doc>
+      </member>
+      <member name="dark_blue"
+              value="7"
+              c:identifier="CLUTTER_COLOR_DARK_BLUE"
+              glib:nick="dark-blue">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="712">Dark blue color (000080ff)</doc>
+      </member>
+      <member name="cyan"
+              value="8"
+              c:identifier="CLUTTER_COLOR_CYAN"
+              glib:nick="cyan">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="713">Cyan color (00ffffff)</doc>
+      </member>
+      <member name="dark_cyan"
+              value="9"
+              c:identifier="CLUTTER_COLOR_DARK_CYAN"
+              glib:nick="dark-cyan">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="714">Dark cyan color (008080ff)</doc>
+      </member>
+      <member name="magenta"
+              value="10"
+              c:identifier="CLUTTER_COLOR_MAGENTA"
+              glib:nick="magenta">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="715">Magenta color (ff00ffff)</doc>
+      </member>
+      <member name="dark_magenta"
+              value="11"
+              c:identifier="CLUTTER_COLOR_DARK_MAGENTA"
+              glib:nick="dark-magenta">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="716">Dark magenta color (800080ff)</doc>
+      </member>
+      <member name="yellow"
+              value="12"
+              c:identifier="CLUTTER_COLOR_YELLOW"
+              glib:nick="yellow">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="717">Yellow color (ffff00ff)</doc>
+      </member>
+      <member name="dark_yellow"
+              value="13"
+              c:identifier="CLUTTER_COLOR_DARK_YELLOW"
+              glib:nick="dark-yellow">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="718">Dark yellow color (808000ff)</doc>
+      </member>
+      <member name="gray"
+              value="14"
+              c:identifier="CLUTTER_COLOR_GRAY"
+              glib:nick="gray">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="719">Gray color (a0a0a4ff)</doc>
+      </member>
+      <member name="dark_gray"
+              value="15"
+              c:identifier="CLUTTER_COLOR_DARK_GRAY"
+              glib:nick="dark-gray">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="720">Dark Gray color (808080ff)</doc>
+      </member>
+      <member name="light_gray"
+              value="16"
+              c:identifier="CLUTTER_COLOR_LIGHT_GRAY"
+              glib:nick="light-gray">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="721">Light gray color (c0c0c0ff)</doc>
+      </member>
+      <member name="butter"
+              value="17"
+              c:identifier="CLUTTER_COLOR_BUTTER"
+              glib:nick="butter">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="722">Butter color (edd400ff)</doc>
+      </member>
+      <member name="butter_light"
+              value="18"
+              c:identifier="CLUTTER_COLOR_BUTTER_LIGHT"
+              glib:nick="butter-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="723">Light butter color (fce94fff)</doc>
+      </member>
+      <member name="butter_dark"
+              value="19"
+              c:identifier="CLUTTER_COLOR_BUTTER_DARK"
+              glib:nick="butter-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="724">Dark butter color (c4a000ff)</doc>
+      </member>
+      <member name="orange"
+              value="20"
+              c:identifier="CLUTTER_COLOR_ORANGE"
+              glib:nick="orange">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="725">Orange color (f57900ff)</doc>
+      </member>
+      <member name="orange_light"
+              value="21"
+              c:identifier="CLUTTER_COLOR_ORANGE_LIGHT"
+              glib:nick="orange-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="726">Light orange color (fcaf3fff)</doc>
+      </member>
+      <member name="orange_dark"
+              value="22"
+              c:identifier="CLUTTER_COLOR_ORANGE_DARK"
+              glib:nick="orange-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="727">Dark orange color (ce5c00ff)</doc>
+      </member>
+      <member name="chocolate"
+              value="23"
+              c:identifier="CLUTTER_COLOR_CHOCOLATE"
+              glib:nick="chocolate">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="728">Chocolate color (c17d11ff)</doc>
+      </member>
+      <member name="chocolate_light"
+              value="24"
+              c:identifier="CLUTTER_COLOR_CHOCOLATE_LIGHT"
+              glib:nick="chocolate-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="729">Light chocolate color (e9b96eff)</doc>
+      </member>
+      <member name="chocolate_dark"
+              value="25"
+              c:identifier="CLUTTER_COLOR_CHOCOLATE_DARK"
+              glib:nick="chocolate-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="730">Dark chocolate color (8f5902ff)</doc>
+      </member>
+      <member name="chameleon"
+              value="26"
+              c:identifier="CLUTTER_COLOR_CHAMELEON"
+              glib:nick="chameleon">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="731">Chameleon color (73d216ff)</doc>
+      </member>
+      <member name="chameleon_light"
+              value="27"
+              c:identifier="CLUTTER_COLOR_CHAMELEON_LIGHT"
+              glib:nick="chameleon-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="732">Light chameleon color (8ae234ff)</doc>
+      </member>
+      <member name="chameleon_dark"
+              value="28"
+              c:identifier="CLUTTER_COLOR_CHAMELEON_DARK"
+              glib:nick="chameleon-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="733">Dark chameleon color (4e9a06ff)</doc>
+      </member>
+      <member name="sky_blue"
+              value="29"
+              c:identifier="CLUTTER_COLOR_SKY_BLUE"
+              glib:nick="sky-blue">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="734">Sky color (3465a4ff)</doc>
+      </member>
+      <member name="sky_blue_light"
+              value="30"
+              c:identifier="CLUTTER_COLOR_SKY_BLUE_LIGHT"
+              glib:nick="sky-blue-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="735">Light sky color (729fcfff)</doc>
+      </member>
+      <member name="sky_blue_dark"
+              value="31"
+              c:identifier="CLUTTER_COLOR_SKY_BLUE_DARK"
+              glib:nick="sky-blue-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="736">Dark sky color (204a87ff)</doc>
+      </member>
+      <member name="plum"
+              value="32"
+              c:identifier="CLUTTER_COLOR_PLUM"
+              glib:nick="plum">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="737">Plum color (75507bff)</doc>
+      </member>
+      <member name="plum_light"
+              value="33"
+              c:identifier="CLUTTER_COLOR_PLUM_LIGHT"
+              glib:nick="plum-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="738">Light plum color (ad7fa8ff)</doc>
+      </member>
+      <member name="plum_dark"
+              value="34"
+              c:identifier="CLUTTER_COLOR_PLUM_DARK"
+              glib:nick="plum-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="739">Dark plum color (5c3566ff)</doc>
+      </member>
+      <member name="scarlet_red"
+              value="35"
+              c:identifier="CLUTTER_COLOR_SCARLET_RED"
+              glib:nick="scarlet-red">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="740">Scarlet red color (cc0000ff)</doc>
+      </member>
+      <member name="scarlet_red_light"
+              value="36"
+              c:identifier="CLUTTER_COLOR_SCARLET_RED_LIGHT"
+              glib:nick="scarlet-red-light">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="741">Light scarlet red color (ef2929ff)</doc>
+      </member>
+      <member name="scarlet_red_dark"
+              value="37"
+              c:identifier="CLUTTER_COLOR_SCARLET_RED_DARK"
+              glib:nick="scarlet-red-dark">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="742">Dark scarlet red color (a40000ff)</doc>
+      </member>
+      <member name="aluminium_1"
+              value="38"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_1"
+              glib:nick="aluminium-1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="743">Aluminium, first variant (eeeeecff)</doc>
+      </member>
+      <member name="aluminium_2"
+              value="39"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_2"
+              glib:nick="aluminium-2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="744">Aluminium, second variant (d3d7cfff)</doc>
+      </member>
+      <member name="aluminium_3"
+              value="40"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_3"
+              glib:nick="aluminium-3">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="745">Aluminium, third variant (babdb6ff)</doc>
+      </member>
+      <member name="aluminium_4"
+              value="41"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_4"
+              glib:nick="aluminium-4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="746">Aluminium, fourth variant (888a85ff)</doc>
+      </member>
+      <member name="aluminium_5"
+              value="42"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_5"
+              glib:nick="aluminium-5">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="747">Aluminium, fifth variant (555753ff)</doc>
+      </member>
+      <member name="aluminium_6"
+              value="43"
+              c:identifier="CLUTTER_COLOR_ALUMINIUM_6"
+              glib:nick="aluminium-6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="748">Aluminium, sixth variant (2e3436ff)</doc>
+      </member>
+      <member name="transparent"
+              value="44"
+              c:identifier="CLUTTER_COLOR_TRANSPARENT"
+              glib:nick="transparent">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="749">Transparent color (00000000)</doc>
+      </member>
+    </enumeration>
+    <enumeration name="StepMode"
+                 version="1.12"
+                 glib:type-name="ClutterStepMode"
+                 glib:get-type="clutter_step_mode_get_type"
+                 c:type="ClutterStepMode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1463">Change the value transition of a step function.
+
+See clutter_timeline_set_step_progress().</doc>
+      <member name="start"
+              value="0"
+              c:identifier="CLUTTER_STEP_MODE_START"
+              glib:nick="start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1465">The change in the value of a
+  %CLUTTER_STEP progress mode should occur at the start of
+  the transition</doc>
+      </member>
+      <member name="end"
+              value="1"
+              c:identifier="CLUTTER_STEP_MODE_END"
+              glib:nick="end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1468">The change in the value of a
+  %CLUTTER_STEP progress mode should occur at the end of
+  the transition</doc>
+      </member>
+    </enumeration>
+    <class name="SwipeAction"
+           c:symbol-prefix="swipe_action"
+           c:type="ClutterSwipeAction"
+           version="1.8"
+           parent="GestureAction"
+           glib:type-name="ClutterSwipeAction"
+           glib:get-type="clutter_swipe_action_get_type"
+           glib:type-struct="SwipeActionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-swipe-action.h"
+           line="51">The #ClutterSwipeAction structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="99"/>
+      <constructor name="new"
+                   c:identifier="clutter_swipe_action_new"
+                   version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-swipe-action.c"
+             line="265">Creates a new #ClutterSwipeAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-swipe-action.c"
+               line="270">the newly created #ClutterSwipeAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="swept">
+        <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="SwipeAction" c:type="ClutterSwipeAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="SwipeDirection" c:type="ClutterSwipeDirection"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="swipe">
+        <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                         line="88"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="SwipeAction" c:type="ClutterSwipeAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="SwipeDirection" c:type="ClutterSwipeDirection"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GestureAction" c:type="ClutterGestureAction"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="SwipeActionPrivate" c:type="ClutterSwipeActionPrivate*"/>
+      </field>
+      <glib:signal name="swept"
+                   when="last"
+                   version="1.8"
+                   deprecated="1"
+                   deprecated-version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-swipe-action.c"
+             line="208">The ::swept signal is emitted when a swipe gesture is recognized on the
+attached actor.</doc>
+        <doc-deprecated xml:space="preserve">Use the ::swipe signal instead.</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-swipe-action.c"
+                 line="211">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-swipe-action.c"
+                 line="212">the main direction of the swipe gesture</doc>
+            <type name="SwipeDirection"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="swipe" when="last" version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-swipe-action.c"
+             line="233">The ::swipe signal is emitted when a swipe gesture is recognized on the
+attached actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-swipe-action.c"
+               line="242">%TRUE if the swipe should continue, and %FALSE if
+  the swipe should be cancelled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-swipe-action.c"
+                 line="236">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-swipe-action.c"
+                 line="237">the main direction of the swipe gesture</doc>
+            <type name="SwipeDirection"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="SwipeActionClass"
+            c:type="ClutterSwipeActionClass"
+            glib:is-gtype-struct-for="SwipeAction"
+            version="1.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-swipe-action.h"
+           line="67">The #ClutterSwipeActionClass structure contains
+only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="99"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GestureActionClass" c:type="ClutterGestureActionClass"/>
+      </field>
+      <field name="swept">
+        <callback name="swept">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="SwipeAction" c:type="ClutterSwipeAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="SwipeDirection" c:type="ClutterSwipeDirection"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="swipe">
+        <callback name="swipe">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="SwipeAction" c:type="ClutterSwipeAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="SwipeDirection" c:type="ClutterSwipeDirection"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action1" introspectable="0">
+        <callback name="_clutter_swipe_action1">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="93"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action2" introspectable="0">
+        <callback name="_clutter_swipe_action2">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="94"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action3" introspectable="0">
+        <callback name="_clutter_swipe_action3">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action4" introspectable="0">
+        <callback name="_clutter_swipe_action4">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action5" introspectable="0">
+        <callback name="_clutter_swipe_action5">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="97"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_swipe_action6" introspectable="0">
+        <callback name="_clutter_swipe_action6">
+          <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                           line="98"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="SwipeActionPrivate"
+            c:type="ClutterSwipeActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-swipe-action.h"
+                       line="48"/>
+    </record>
+    <bitfield name="SwipeDirection"
+              version="1.8"
+              glib:type-name="ClutterSwipeDirection"
+              glib:get-type="clutter_swipe_direction_get_type"
+              c:type="ClutterSwipeDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1127">The main direction of the swipe gesture</doc>
+      <member name="up"
+              value="1"
+              c:identifier="CLUTTER_SWIPE_DIRECTION_UP"
+              glib:nick="up">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1129">Upwards swipe gesture</doc>
+      </member>
+      <member name="down"
+              value="2"
+              c:identifier="CLUTTER_SWIPE_DIRECTION_DOWN"
+              glib:nick="down">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1130">Downwards swipe gesture</doc>
+      </member>
+      <member name="left"
+              value="4"
+              c:identifier="CLUTTER_SWIPE_DIRECTION_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1131">Leftwards swipe gesture</doc>
+      </member>
+      <member name="right"
+              value="8"
+              c:identifier="CLUTTER_SWIPE_DIRECTION_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1132">Rightwards swipe gesture</doc>
+      </member>
+    </bitfield>
+    <function-macro name="TAP_ACTION"
+                    c:identifier="CLUTTER_TAP_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="46"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TAP_ACTION_CLASS"
+                    c:identifier="CLUTTER_TAP_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="48"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TAP_ACTION_GET_CLASS"
+                    c:identifier="CLUTTER_TAP_ACTION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="50"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT" c:identifier="CLUTTER_TEXT" introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXTURE_NODE"
+                    c:identifier="CLUTTER_TEXTURE_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="59"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_BUFFER"
+                    c:identifier="CLUTTER_TEXT_BUFFER"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="34"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_BUFFER_CLASS"
+                    c:identifier="CLUTTER_TEXT_BUFFER_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="35"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_BUFFER_GET_CLASS"
+                    c:identifier="CLUTTER_TEXT_BUFFER_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="38"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_CLASS"
+                    c:identifier="CLUTTER_TEXT_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="40"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_GET_CLASS"
+                    c:identifier="CLUTTER_TEXT_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXT_NODE"
+                    c:identifier="CLUTTER_TEXT_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="125"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TIMELINE"
+                    c:identifier="CLUTTER_TIMELINE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="36"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TIMELINE_CLASS"
+                    c:identifier="CLUTTER_TIMELINE_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TIMELINE_GET_CLASS"
+                    c:identifier="CLUTTER_TIMELINE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="40"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSFORM_NODE"
+                    c:identifier="CLUTTER_TRANSFORM_NODE"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="213"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION"
+                    c:identifier="CLUTTER_TRANSITION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION_CLASS"
+                    c:identifier="CLUTTER_TRANSITION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION_GET_CLASS"
+                    c:identifier="CLUTTER_TRANSITION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION_GROUP"
+                    c:identifier="CLUTTER_TRANSITION_GROUP"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="37"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION_GROUP_CLASS"
+                    c:identifier="CLUTTER_TRANSITION_GROUP_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRANSITION_GROUP_GET_CLASS"
+                    c:identifier="CLUTTER_TRANSITION_GROUP_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="TapAction"
+           c:symbol-prefix="tap_action"
+           c:type="ClutterTapAction"
+           version="1.14"
+           parent="GestureAction"
+           glib:type-name="ClutterTapAction"
+           glib:get-type="clutter_tap_action_get_type"
+           glib:type-struct="TapActionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-tap-action.h"
+           line="56">The #ClutterTapAction structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="93"/>
+      <constructor name="new"
+                   c:identifier="clutter_tap_action_new"
+                   version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-tap-action.c"
+             line="135">Creates a new #ClutterTapAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-tap-action.c"
+               line="140">the newly created #ClutterTapAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="tap">
+        <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="TapAction" c:type="ClutterTapAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GestureAction" c:type="ClutterGestureAction"/>
+      </field>
+      <glib:signal name="tap" when="last" version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-tap-action.c"
+             line="111">The ::tap signal is emitted when the tap gesture is complete.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-tap-action.c"
+                 line="114">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="TapActionClass"
+            c:type="ClutterTapActionClass"
+            glib:is-gtype-struct-for="TapAction">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-tap-action.h"
+           line="70">The #ClutterTapActionClass structure contains
+only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="93"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GestureActionClass" c:type="ClutterGestureActionClass"/>
+      </field>
+      <field name="tap">
+        <callback name="tap">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="TapAction" c:type="ClutterTapAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action1" introspectable="0">
+        <callback name="_clutter_tap_action1">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action2" introspectable="0">
+        <callback name="_clutter_tap_action2">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action3" introspectable="0">
+        <callback name="_clutter_tap_action3">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action4" introspectable="0">
+        <callback name="_clutter_tap_action4">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action5" introspectable="0">
+        <callback name="_clutter_tap_action5">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_tap_action6" introspectable="0">
+        <callback name="_clutter_tap_action6">
+          <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="TapActionPrivate"
+            c:type="ClutterTapActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-tap-action.h"
+                       line="53"/>
+    </record>
+    <class name="Text"
+           c:symbol-prefix="text"
+           c:type="ClutterText"
+           version="1.0"
+           parent="Actor"
+           glib:type-name="ClutterText"
+           glib:get-type="clutter_text_get_type"
+           glib:type-struct="TextClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text.h"
+           line="49">The #ClutterText struct contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-text.h" line="97"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_text_new" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4651">Creates a new #ClutterText actor. This actor can be used to
+display and edit text.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4657">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="clutter_text_new_full"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4667">Creates a new #ClutterText actor, using @font_name as the font
+description; @text will be used to set the contents of the actor;
+and @color will be used as the color to render @text.
+
+This function is equivalent to calling clutter_text_new(),
+clutter_text_set_font_name(), clutter_text_set_text() and
+clutter_text_set_color().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4681">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4669">a string with a font description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4670">the contents of the actor</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4671">the color to be used to render @text</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_buffer"
+                   c:identifier="clutter_text_new_with_buffer"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4859">Creates a new entry with the specified text buffer.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="112"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4865">a new #ClutterText</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4861">The buffer to use for the new #ClutterText.</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_text"
+                   c:identifier="clutter_text_new_with_text"
+                   version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4697">Creates a new #ClutterText actor, using @font_name as the font
+description; @text will be used to set the contents of the actor.
+
+This function is equivalent to calling clutter_text_new(),
+clutter_text_set_font_name(), and clutter_text_set_text().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4708">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4699">a string with a font description</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4700">the contents of the actor</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="activate">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cursor_changed">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cursor_event">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="text_changed">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="activate"
+              c:identifier="clutter_text_activate"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5106">Emits the #ClutterText::activate signal, if @self has been set
+as activatable using clutter_text_set_activatable().
+
+This function can be used to emit the ::activate signal inside
+a #ClutterActor::captured-event or #ClutterActor::key-press-event
+signal handlers before the default signal handler for the
+#ClutterText is invoked.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="282"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5118">%TRUE if the ::activate signal has been emitted,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5108">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="coords_to_position"
+              c:identifier="clutter_text_coords_to_position"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="1131">Retrieves the position of the character at the given coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="284"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="1139">the position of the character</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1133">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1134">the X coordinate, relative to the actor</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1135">the Y coordinate, relative to the actor</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_chars"
+              c:identifier="clutter_text_delete_chars"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6590">Deletes @n_chars inside a #ClutterText actor, starting from the
+current cursor position.
+
+Somewhat awkwardly, the cursor position is decremented by the same
+number of characters you've deleted.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="185"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6592">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6593">the number of characters to delete</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_selection"
+              c:identifier="clutter_text_delete_selection"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="1362">Deletes the currently selected text
+
+This function is only useful in subclasses of #ClutterText</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="257"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="1370">%TRUE if text was deleted or if the text actor
+  is empty, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1364">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="delete_text"
+              c:identifier="clutter_text_delete_text"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6566">Deletes the text inside a #ClutterText actor between @start_pos
+and @end_pos.
+
+The starting and ending positions are expressed in characters,
+not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="192"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6568">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6569">starting position</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6570">ending position</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_activatable"
+              c:identifier="clutter_text_get_activatable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5088">Retrieves whether a #ClutterText is activatable or not.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="208"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5094">%TRUE if the actor is activatable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5090">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_attributes"
+              c:identifier="clutter_text_get_attributes"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6079">Gets the attribute list that was set on the #ClutterText actor
+clutter_text_set_attributes(), if any.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="164"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6086">the attribute list, or %NULL if none was set. The
+ returned value is owned by the #ClutterText and should not be unreferenced.</doc>
+          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6081">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_buffer"
+              c:identifier="clutter_text_get_buffer"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4876">Get the #ClutterTextBuffer object which holds the text for
+this widget.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="114"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4883">A #GtkEntryBuffer object.</doc>
+          <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4878">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_chars"
+              c:identifier="clutter_text_get_chars"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6619">Retrieves the contents of the #ClutterText actor between
+@start_pos and @end_pos, but not including @end_pos.
+
+The positions are specified in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="196"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6630">a newly allocated string with the contents of
+  the text actor between the specified positions. Use g_free()
+  to free the resources when done</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6621">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6622">start of text, in characters</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6623">end of text, in characters</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_color"
+              c:identifier="clutter_text_get_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5800">Retrieves the text color as set by clutter_text_set_color().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="130"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5802">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5803">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_color"
+              c:identifier="clutter_text_get_cursor_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5220">Retrieves the color of the cursor of a #ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="224"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5222">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5223">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_position"
+              c:identifier="clutter_text_get_cursor_position"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6254">Retrieves the cursor position.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="211"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6260">the cursor position, in characters</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6256">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_rect"
+              c:identifier="clutter_text_get_cursor_rect"
+              version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6829">Retrieves the rectangle that contains the cursor.
+
+The coordinates of the rectangle's origin are in actor-relative
+coordinates.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="232"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6831">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6832">return location of a #ClutterRect</doc>
+            <type name="Graphene.Rect" c:type="graphene_rect_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_size"
+              c:identifier="clutter_text_get_cursor_size"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6350">Retrieves the size of the cursor of a #ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="230"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6356">the size of the cursor, in pixels</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6352">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_visible"
+              c:identifier="clutter_text_get_cursor_visible"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5181">Retrieves whether the cursor of a #ClutterText actor is visible.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="219"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5187">%TRUE if the cursor is visible</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5183">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_editable"
+              c:identifier="clutter_text_get_editable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4984">Retrieves whether a #ClutterText is editable or not.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="203"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="4990">%TRUE if the actor is editable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4986">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_ellipsize"
+              c:identifier="clutter_text_get_ellipsize"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5858">Returns the ellipsizing position of a #ClutterText actor, as
+set by clutter_text_set_ellipsize().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="147"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5865">#PangoEllipsizeMode</doc>
+          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5860">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_font_description"
+              c:identifier="clutter_text_get_font_description"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5496">Retrieves the #PangoFontDescription used by @self</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="141"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5502">a #PangoFontDescription. The returned value is owned
+  by the #ClutterText actor and it should not be modified or freed</doc>
+          <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5498">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_font_name"
+              c:identifier="clutter_text_get_font_name"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5515">Retrieves the font name as set by clutter_text_set_font_name().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5521">a string containing the font name. The returned
+  string is owned by the #ClutterText actor and should not be
+  modified or freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5517">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_input_hints"
+              c:identifier="clutter_text_get_input_hints">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="312"/>
+        <return-value transfer-ownership="none">
+          <type name="InputContentHintFlags"
+                c:type="ClutterInputContentHintFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_input_purpose"
+              c:identifier="clutter_text_get_input_purpose">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="314"/>
+        <return-value transfer-ownership="none">
+          <type name="InputContentPurpose"
+                c:type="ClutterInputContentPurpose"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_justify"
+              c:identifier="clutter_text_get_justify"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6235">Retrieves whether the #ClutterText actor should justify its contents
+on both margins.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="179"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6242">%TRUE if the text should be justified</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6237">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout"
+              c:identifier="clutter_text_get_layout"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5745">Retrieves the current #PangoLayout used by a #ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="159"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5751">a #PangoLayout. The returned object is owned by
+  the #ClutterText actor and should not be modified or freed</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5747">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout_offsets"
+              c:identifier="clutter_text_get_layout_offsets"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6800">Obtains the coordinates where the #ClutterText will draw the #PangoLayout
+representing the text.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="301"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6802">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6803">location to store X offset of layout, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6804">location to store Y offset of layout, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_line_alignment"
+              c:identifier="clutter_text_get_line_alignment"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6133">Retrieves the alignment of a #ClutterText, as set by
+clutter_text_set_line_alignment().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="174"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6140">a #PangoAlignment</doc>
+          <type name="Pango.Alignment" c:type="PangoAlignment"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6135">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_line_wrap"
+              c:identifier="clutter_text_get_line_wrap"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5877">Retrieves the value set using clutter_text_set_line_wrap().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="152"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5883">%TRUE if the #ClutterText actor should wrap
+  its contents</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5879">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_line_wrap_mode"
+              c:identifier="clutter_text_get_line_wrap_mode"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5961">Retrieves the line wrap mode used by the #ClutterText actor.
+
+See clutter_text_set_line_wrap_mode ().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5969">the wrap mode used by the #ClutterText</doc>
+          <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5963">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_max_length"
+              c:identifier="clutter_text_get_max_length"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6442">Gets the maximum length of text that can be set into a text actor.
+
+See clutter_text_set_max_length().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="267"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6450">the maximum number of characters.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6444">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_password_char"
+              c:identifier="clutter_text_get_password_char"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6402">Retrieves the character to use in place of the actual text
+as set by clutter_text_set_password_char().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="262"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6409">a Unicode character or 0 if the password
+  character is not set</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6404">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selectable"
+              c:identifier="clutter_text_get_selectable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5034">Retrieves whether a #ClutterText is selectable or not.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="238"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5040">%TRUE if the actor is selectable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5036">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selected_text_color"
+              c:identifier="clutter_text_get_selected_text_color"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5450">Retrieves the color of selected text of a #ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="278"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5452">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5453">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_selection"
+              c:identifier="clutter_text_get_selection"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5275">Retrieves the currently selected text.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="249"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5281">a newly allocated string containing the currently
+  selected text, or %NULL. Use g_free() to free the returned
+  string.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5277">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selection_bound"
+              c:identifier="clutter_text_get_selection_bound"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5363">Retrieves the other end of the selection of a #ClutterText actor,
+in characters from the current cursor position.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="243"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5370">the position of the other end of the selection</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5365">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selection_color"
+              c:identifier="clutter_text_get_selection_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5405">Retrieves the color of the selection of a #ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="254"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5407">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5408">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_single_line_mode"
+              c:identifier="clutter_text_get_single_line_mode"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6715">Retrieves whether the #ClutterText actor is in single line mode.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="272"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6721">%TRUE if the #ClutterText actor is in single line mode</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6717">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_text"
+              c:identifier="clutter_text_get_text"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5616">Retrieves a pointer to the current contents of a #ClutterText
+actor.
+
+If you need a copy of the contents for manipulating, either
+use g_strdup() on the returned string, or use:
+
+|[
+   copy = clutter_text_get_chars (text, 0, -1);
+]|
+
+Which will return a newly allocated string.
+
+If the #ClutterText actor is empty, this function will return
+an empty string, and not %NULL.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="119"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="5635">the contents of the actor. The returned
+  string is owned by the #ClutterText actor and should never be modified
+  or freed</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5618">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_use_markup"
+              c:identifier="clutter_text_get_use_markup"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6185">Retrieves whether the contents of the #ClutterText actor should be
+parsed for the Pango text markup.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="169"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="6192">%TRUE if the contents will be parsed for markup</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6187">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_preedit" c:identifier="clutter_text_has_preedit">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="317"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="insert_text"
+              c:identifier="clutter_text_insert_text"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6517">Inserts @text into a #ClutterActor at the given position.
+
+If @position is a negative number, the text will be appended
+at the end of the current contents of the #ClutterText.
+
+The position is expressed in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="188"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6519">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6520">the text to be inserted</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6521">the position of the insertion, or -1</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_unichar"
+              c:identifier="clutter_text_insert_unichar"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6489">Inserts @wc at the current cursor position of a
+#ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="182"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6491">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="wc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6492">a Unicode character</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="position_to_coords"
+              c:identifier="clutter_text_position_to_coords"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="1257">Retrieves the coordinates of the given @position.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="288"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text.c"
+               line="1267">%TRUE if the conversion was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1259">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1260">position in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1261">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1262">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="line_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="1263">return location for the line height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_activatable"
+              c:identifier="clutter_text_set_activatable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5052">Sets whether a #ClutterText actor should be activatable.
+
+An activatable #ClutterText actor will emit the #ClutterText::activate
+signal whenever the 'Enter' (or 'Return') key is pressed; if it is not
+activatable, a new line will be appended to the current content.
+
+An activatable #ClutterText must also be set as editable using
+clutter_text_set_editable().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="205"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5054">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="activatable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5055">whether the #ClutterText actor should be activatable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_attributes"
+              c:identifier="clutter_text_set_attributes"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6030">Sets the attributes list that are going to be applied to the
+#ClutterText contents.
+
+The #ClutterText actor will take a reference on the #PangoAttrList
+passed to this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="161"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6032">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="attrs"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6033">a #PangoAttrList or %NULL to unset the attributes</doc>
+            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_buffer"
+              c:identifier="clutter_text_set_buffer"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4895">Set the #ClutterTextBuffer object which holds the text for
+this widget.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="116"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="4897">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4898">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="clutter_text_set_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5776">Sets the color of the contents of a #ClutterText actor.
+
+The overall opacity of the #ClutterText actor will be the
+result of the alpha value of @color and the composited
+opacity of the actor itself on the scenegraph, as returned
+by clutter_actor_get_paint_opacity().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="127"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5778">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5779">a #ClutterColor</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_color"
+              c:identifier="clutter_text_set_cursor_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5199">Sets the color of the cursor of a #ClutterText actor.
+
+If @color is %NULL, the cursor color will be the same as the
+text color.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="221"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5201">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5202">the color of the cursor, or %NULL to unset it</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_position"
+              c:identifier="clutter_text_set_cursor_position"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6272">Sets the cursor of a #ClutterText actor at @position.
+
+The position is expressed in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="213"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6274">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6275">the new cursor position, in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_size"
+              c:identifier="clutter_text_set_cursor_size"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6315">Sets the size of the cursor of a #ClutterText. The cursor
+will only be visible if the #ClutterText:cursor-visible property
+is set to %TRUE.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="227"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6317">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6318">the size of the cursor, in pixels, or -1 to use the
+  default value</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_visible"
+              c:identifier="clutter_text_set_cursor_visible"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5141">Sets whether the cursor of a #ClutterText actor should be
+visible or not.
+
+The color of the cursor will be the same as the text color
+unless clutter_text_set_cursor_color() has been called.
+
+The size of the cursor can be set using clutter_text_set_cursor_size().
+
+The position of the cursor can be changed programmatically using
+clutter_text_set_cursor_position().</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="216"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5143">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="cursor_visible" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5144">whether the cursor should be visible</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_editable"
+              c:identifier="clutter_text_set_editable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4941">Sets whether the #ClutterText actor should be editable.
+
+An editable #ClutterText with key focus set using
+clutter_actor_grab_key_focus() or clutter_stage_set_key_focus()
+will receive key events and will update its contents accordingly.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="200"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="4943">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="editable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4944">whether the #ClutterText should be editable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ellipsize"
+              c:identifier="clutter_text_set_ellipsize"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5823">Sets the mode used to ellipsize (add an ellipsis: "...") to the
+text if there is not enough space to render the entire contents
+of a #ClutterText actor</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="144"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5825">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5826">a #PangoEllipsizeMode</doc>
+            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_description"
+              c:identifier="clutter_text_set_font_description"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5473">Sets @font_desc as the font description for a #ClutterText
+
+The #PangoFontDescription is copied by the #ClutterText actor
+so you can safely call pango_font_description_free() on it after
+calling this function.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="138"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5475">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="font_desc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5476">a #PangoFontDescription</doc>
+            <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_name"
+              c:identifier="clutter_text_set_font_name"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5535">Sets the font used by a #ClutterText. The @font_name string
+must either be %NULL, which means that the font name from the
+default #ClutterBackend will be used; or be something that can
+be parsed by the pango_font_description_from_string() function,
+like:
+
+|[
+  // Set the font to the system's Sans, 10 points
+  clutter_text_set_font_name (text, "Sans 10");
+
+  // Set the font to the system's Serif, 16 pixels
+  clutter_text_set_font_name (text, "Serif 16px");
+
+  // Set the font to Helvetica, 10 points
+  clutter_text_set_font_name (text, "Helvetica 10");
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="133"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5537">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="font_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5538">a font name, or %NULL to set the default font name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_input_hints"
+              c:identifier="clutter_text_set_input_hints">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="306"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="hints" transfer-ownership="none">
+            <type name="InputContentHintFlags"
+                  c:type="ClutterInputContentHintFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_input_purpose"
+              c:identifier="clutter_text_set_input_purpose">
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="309"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="purpose" transfer-ownership="none">
+            <type name="InputContentPurpose"
+                  c:type="ClutterInputContentPurpose"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_justify"
+              c:identifier="clutter_text_set_justify"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6204">Sets whether the text of the #ClutterText actor should be justified
+on both margins. This setting is ignored if Clutter is compiled
+against Pango &amp;lt; 1.18.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="176"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6206">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="justify" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6207">whether the text should be justified</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_alignment"
+              c:identifier="clutter_text_set_line_alignment"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6099">Sets the way that the lines of a wrapped label are aligned with
+respect to each other. This does not affect the overall alignment
+of the label within its allocated or specified width.
+
+To align a #ClutterText actor you should add it to a container
+that supports alignment, or use the anchor point.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="171"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6101">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="alignment" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6102">A #PangoAlignment</doc>
+            <type name="Pango.Alignment" c:type="PangoAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_wrap"
+              c:identifier="clutter_text_set_line_wrap"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5896">Sets whether the contents of a #ClutterText actor should wrap,
+if they don't fit the size assigned to the actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="149"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5898">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="line_wrap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5899">whether the contents should wrap</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_wrap_mode"
+              c:identifier="clutter_text_set_line_wrap_mode"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5928">If line wrapping is enabled (see clutter_text_set_line_wrap()) this
+function controls how the line wrapping is performed. The default is
+%PANGO_WRAP_WORD which means wrap on word boundaries.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="154"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5930">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="wrap_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5931">the line wrapping mode</doc>
+            <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_markup"
+              c:identifier="clutter_text_set_markup"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5713">Sets @markup as the contents of a #ClutterText.
+
+This is a convenience function for setting a string containing
+Pango markup, and it is logically equivalent to:
+
+|[
+  /&amp;ast; the order is important &amp;ast;/
+  clutter_text_set_text (CLUTTER_TEXT (actor), markup);
+  clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-text.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="../clutter/clutter/clutter-text.c"
+                 line="5715">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="markup"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5716">a string containing Pango markup.
+  Passing %NULL is the same as passing "" (the empty string)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_max_length"
+              c:identifier="clutter_text_set_max_length"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6422">Sets the maximum allowed length of the contents of the actor. If the
+current contents are longer than the given length, then they will be
+truncated to fit.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="264"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6424">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="max" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6425">the maximum number of characters allowed in the text actor; 0
+  to disable or -1 to set the length of the current string</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_password_char"
+              c:identifier="clutter_text_set_password_char"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6368">Sets the character to use in place of the actual text in a
+password text actor.
+
+If @wc is 0 the text will be displayed as it is entered in the
+#ClutterText actor.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="259"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6370">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="wc" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6371">a Unicode character, or 0 to unset the password character</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_preedit_string"
+              c:identifier="clutter_text_set_preedit_string"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6733">Sets, or unsets, the pre-edit string. This function is useful
+for input methods to display a string (with eventual specific
+Pango attributes) before it is entered inside the #ClutterText
+buffer.
+
+The preedit string and attributes are ignored if the #ClutterText
+actor is not editable.
+
+This function should not be used by applications</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="295"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6735">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="preedit_str"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6736">the pre-edit string, or %NULL to unset it</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="preedit_attrs"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6737">the pre-edit string attributes</doc>
+            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6738">the cursor position for the pre-edit string</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selectable"
+              c:identifier="clutter_text_set_selectable"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5002">Sets whether a #ClutterText actor should be selectable.
+
+A selectable #ClutterText will allow selecting its contents using
+the pointer or the keyboard.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="235"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5004">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="selectable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5005">whether the #ClutterText actor should be selectable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selected_text_color"
+              c:identifier="clutter_text_set_selected_text_color"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5428">Sets the selected text color of a #ClutterText actor.
+
+If @color is %NULL, the selected text color will be the same as the
+selection color, which then falls back to cursor, and then text color.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="275"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5430">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5431">the selected text color, or %NULL to unset it</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection"
+              c:identifier="clutter_text_set_selection"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5243">Selects the region of text between @start_pos and @end_pos.
+
+This function changes the position of the cursor to match
+@start_pos and the selection bound to match @end_pos.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="245"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5245">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5246">start of the selection, in characters</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5247">end of the selection, in characters</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection_bound"
+              c:identifier="clutter_text_set_selection_bound"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5326">Sets the other end of the selection, starting from the current
+cursor position.
+
+If @selection_bound is -1, the selection unset.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="240"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5328">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="selection_bound" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5329">the position of the end of the selection, in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection_color"
+              c:identifier="clutter_text_set_selection_color"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5382">Sets the color of the selection of a #ClutterText actor.
+
+If @color is %NULL, the selection color will be the same as the
+cursor color, or if no cursor color is set either then it will be
+the same as the text color.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="251"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5384">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5385">the color of the selection, or %NULL to unset it</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_single_line_mode"
+              c:identifier="clutter_text_set_single_line_mode"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6662">Sets whether a #ClutterText actor should be in single line mode
+or not. Only editable #ClutterText&lt;!-- --&gt;s can be in single line
+mode.
+
+A text actor in single line mode will not wrap text and will clip
+the visible area to the predefined size. The contents of the
+text actor will scroll to display the end of the text if its length
+is bigger than the allocated width.
+
+When setting the single line mode the #ClutterText:activatable
+property is also set as a side effect. Instead of entering a new
+line character, the text actor will emit the #ClutterText::activate
+signal.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="269"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6664">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="single_line" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6665">whether to enable single line mode</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text"
+              c:identifier="clutter_text_set_text"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="5678">Sets the contents of a #ClutterText actor.
+
+If the #ClutterText:use-markup property was set to %TRUE it
+will be reset to %FALSE as a side effect. If you want to
+maintain the #ClutterText:use-markup you should use the
+clutter_text_set_markup() function instead</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="121"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="5680">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="text"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="5681">the text to set. Passing %NULL is the same
+  as passing "" (the empty string)</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_markup"
+              c:identifier="clutter_text_set_use_markup"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="6152">Sets whether the contents of the #ClutterText actor contains markup
+in &lt;link linkend="PangoMarkupFormat"&gt;Pango's text markup language&lt;/link&gt;.
+
+Setting #ClutterText:use-markup on an editable #ClutterText will
+not have any effect except hiding the markup.
+
+See also #ClutterText:use-markup.</doc>
+        <source-position filename="../clutter/clutter/clutter-text.h"
+                         line="166"/>
+        <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="../clutter/clutter/clutter-text.c"
+                 line="6154">a #ClutterText</doc>
+            <type name="Text" c:type="ClutterText*"/>
+          </instance-parameter>
+          <parameter name="setting" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="6155">%TRUE if the text should be parsed for markup.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="activatable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3963">Toggles whether return invokes the activate signal or not.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="attributes"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4127">A list of #PangoStyleAttribute&lt;!-- --&gt;s to be applied to the
+contents of the #ClutterText actor.</doc>
+        <type name="Pango.AttrList"/>
+      </property>
+      <property name="buffer"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3843">The buffer which stores the text for this #ClutterText.
+
+If set to %NULL, a default buffer will be created.</doc>
+        <type name="TextBuffer"/>
+      </property>
+      <property name="color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3913">The color used to render the text.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="cursor-color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3997">The color of the cursor.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="cursor-color-set"
+                version="1.0"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4013">Will be set to %TRUE if #ClutterText:cursor-color has been set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="cursor-position"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4064">The current input cursor position. -1 is taken to be the end of the text</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="cursor-size"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4028">The size of the cursor, in pixels. If set to -1 the size used will
+be the default cursor size of 2 pixels.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="cursor-visible"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3978">Whether the input cursor is visible or not.
+
+The cursor will only be visible if this property and either
+the #ClutterText:editable or the #ClutterText:selectable properties
+are set to %TRUE.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="editable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3929">Whether key events delivered to the actor causes editing.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="ellipsize"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4200">The preferred place to ellipsize the contents of the #ClutterText actor</doc>
+        <type name="Pango.EllipsizeMode"/>
+      </property>
+      <property name="font-description"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3878">The #PangoFontDescription that should be used by the #ClutterText
+
+If you have a string describing the font then you should look at
+#ClutterText:font-name instead</doc>
+        <type name="Pango.FontDescription"/>
+      </property>
+      <property name="font-name"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3860">The font to be used by the #ClutterText, as a string
+that can be parsed by pango_font_description_from_string().
+
+If set to %NULL, the default system font will be used instead.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="input-hints" writable="1" transfer-ownership="none">
+        <type name="InputContentHintFlags"/>
+      </property>
+      <property name="input-purpose" writable="1" transfer-ownership="none">
+        <type name="InputContentPurpose"/>
+      </property>
+      <property name="justify"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4233">Whether the contents of the #ClutterText should be justified
+on both margins.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="line-alignment"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4216">The preferred alignment for the text. This property controls
+the alignment of multi-line paragraphs.</doc>
+        <type name="Pango.Alignment"/>
+      </property>
+      <property name="line-wrap"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4166">Whether to wrap the lines of #ClutterText:text if the contents
+exceed the available allocation. The wrapping strategy is
+controlled by the #ClutterText:line-wrap-mode property.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="line-wrap-mode"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4183">If #ClutterText:line-wrap is set to %TRUE, this property will
+control how the text is wrapped.</doc>
+        <type name="Pango.WrapMode"/>
+      </property>
+      <property name="max-length"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4265">The maximum length of the contents of the #ClutterText actor.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="password-char"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4249">If non-zero, the character that should be used in place of
+the actual text in a password text actor.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="position"
+                version="1.0"
+                deprecated="1"
+                deprecated-version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4044">The current input cursor position. -1 is taken to be the end of the text</doc>
+        <doc-deprecated xml:space="preserve">Use ClutterText:cursor-position instead.</doc-deprecated>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="selectable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3944">Whether it is possible to select text, either using the pointer
+or the keyboard.
+
+This property depends on the #ClutterActor:reactive property being
+set to %TRUE.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="selected-text-color"
+                version="1.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4304">The color of selected text.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="selected-text-color-set"
+                version="1.8"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4320">Will be set to %TRUE if #ClutterText:selected-text-color has been set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="selection-bound"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4080">The current input cursor position. -1 is taken to be the end of the text</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="selection-color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4096">The color of the selection.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="selection-color-set"
+                version="1.0"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4112">Will be set to %TRUE if #ClutterText:selection-color has been set.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="single-line-mode"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4280">Whether the #ClutterText actor should be in single line mode
+or not. A single line #ClutterText actor will only contain a
+single line of text, scrolling it in case its length is bigger
+than the allocated size.
+
+Setting this property will also set the #ClutterText:activatable
+property as a side-effect.
+
+The #ClutterText:single-line-mode property is used only if the
+#ClutterText:editable property is set to %TRUE.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="text"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="3898">The text to render inside the actor.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="use-markup"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4143">Whether the text includes Pango markup.
+
+For more information about the Pango markup format, see
+pango_layout_set_markup() in the Pango documentation.
+
+It is not possible to round-trip this property between
+%TRUE and %FALSE. Once a string with markup has been set on
+a #ClutterText actor with :use-markup set to %TRUE, the markup
+is stripped from the string.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="TextPrivate" c:type="ClutterTextPrivate*"/>
+      </field>
+      <glib:signal name="activate" when="last" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4457">The ::activate signal is emitted each time the actor is 'activated'
+by the user, normally by pressing the 'Enter' key. The signal is
+emitted only if #ClutterText:activatable is set to %TRUE.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-changed" when="last" version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4440">The ::cursor-changed signal is emitted whenever the cursor
+position or size changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-event"
+                   when="last"
+                   version="1.0"
+                   deprecated="1"
+                   deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4417">The ::cursor-event signal is emitted whenever the cursor position
+changes inside a #ClutterText actor. Inside @rect it is stored
+the current position and size of the cursor, relative to the actor
+itself.</doc>
+        <doc-deprecated xml:space="preserve">Use the #ClutterText::cursor-changed signal 
instead</doc-deprecated>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4420">the coordinates of the cursor</doc>
+            <type name="Graphene.Rect"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="delete-text" when="last" action="1" version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4395">This signal is emitted when text is deleted from the actor by
+the user. It is emitted before @self text changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4398">the starting position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4399">the end position</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="insert-text" when="last" action="1" version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4367">This signal is emitted when text is inserted into the actor by
+the user. It is emitted before @self text changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_text" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4370">the new text to insert</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="new_text_length" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4371">the length of the new text, in bytes, or -1 if
+    new_text is nul-terminated</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="position"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text.c"
+                 line="4373">the position, in characters, at which to insert the
+    new text. this is an in-out parameter.  After the signal
+    emission is finished, it should point after the newly
+    inserted text.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-changed" when="last" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text.c"
+             line="4351">The ::text-changed signal is emitted after @actor's text changes</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <class name="TextBuffer"
+           c:symbol-prefix="text_buffer"
+           c:type="ClutterTextBuffer"
+           version="1.10"
+           parent="GObject.Object"
+           glib:type-name="ClutterTextBuffer"
+           glib:get-type="clutter_text_buffer_get_type"
+           glib:type-struct="TextBufferClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text-buffer.h"
+           line="53">The #ClutterTextBuffer structure contains private
+data and it should only be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="124"/>
+      <constructor name="new"
+                   c:identifier="clutter_text_buffer_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="431">Create a new ClutterTextBuffer object.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="130"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="436">A new ClutterTextBuffer object.</doc>
+          <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_with_text"
+                   c:identifier="clutter_text_buffer_new_with_text"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="447">Create a new ClutterTextBuffer object with some text.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="132"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="454">A new ClutterTextBuffer object.</doc>
+          <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="text"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="449">initial buffer text</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="text_len" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="450">initial buffer text length, or -1 for null-terminated.</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="delete_text" invoker="delete_text" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="681">Deletes a sequence of characters from the buffer. @n_chars characters are
+deleted starting at @position. If @n_chars is negative, then all characters
+until the end of the text are deleted.
+
+If @position or @n_chars are out of bounds, then they are coerced to sane
+values.
+
+Note that the positions are specified in characters, not bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="110"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="696">The number of characters deleted.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="683">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="684">position at which to delete text</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="685">number of characters to delete</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="deleted_text">
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_length" invoker="get_length" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="469">Retrieves the length in characters of the buffer.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="475">The number of characters in the buffer.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="471">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_text">
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="n_bytes" transfer-ownership="none">
+            <type name="gsize" c:type="gsize*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="insert_text" invoker="insert_text" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="623">Inserts @n_chars characters of @chars into the contents of the
+buffer, at position @position.
+
+If @n_chars is negative, then characters from chars will be inserted
+until a null-terminator is found. If @position or @n_chars are out of
+bounds, or the maximum buffer text length is exceeded, then they are
+coerced to sane values.
+
+Note that the position and length are in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="640">The number of characters actually inserted.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="625">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="626">the position at which to insert text.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="627">the text to insert into the buffer.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="628">the length of the text in characters, or -1</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="inserted_text">
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="90"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="delete_text"
+              c:identifier="clutter_text_buffer_delete_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="681">Deletes a sequence of characters from the buffer. @n_chars characters are
+deleted starting at @position. If @n_chars is negative, then all characters
+until the end of the text are deleted.
+
+If @position or @n_chars are out of bounds, then they are coerced to sane
+values.
+
+Note that the positions are specified in characters, not bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="696">The number of characters deleted.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="683">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="684">position at which to delete text</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="685">number of characters to delete</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="emit_deleted_text"
+              c:identifier="clutter_text_buffer_emit_deleted_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="747">Emits the #ClutterTextBuffer::deleted-text signal on @buffer.
+
+Used when subclassing #ClutterTextBuffer</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="166"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="749">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="750">position at which text was deleted</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="751">number of characters deleted</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="emit_inserted_text"
+              c:identifier="clutter_text_buffer_emit_inserted_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="724">Emits the #ClutterTextBuffer::inserted-text signal on @buffer.
+
+Used when subclassing #ClutterTextBuffer</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="161"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="726">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="727">position at which text was inserted</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="728">text that was inserted</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="729">number of characters inserted</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bytes"
+              c:identifier="clutter_text_buffer_get_bytes"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="492">Retrieves the length in bytes of the buffer.
+See clutter_text_buffer_get_length().</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="136"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="499">The byte length of the buffer.</doc>
+          <type name="gsize" c:type="gsize"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="494">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_length"
+              c:identifier="clutter_text_buffer_get_length"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="469">Retrieves the length in characters of the buffer.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="138"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="475">The number of characters in the buffer.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="471">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_max_length"
+              c:identifier="clutter_text_buffer_get_max_length"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="604">Retrieves the maximum allowed length of the text in
+@buffer. See clutter_text_buffer_set_max_length().</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="149"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="611">the maximum allowed number of characters
+              in #ClutterTextBuffer, or 0 if there is no maximum.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="606">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_text"
+              c:identifier="clutter_text_buffer_get_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="518">Retrieves the contents of the buffer.
+
+The memory pointer returned by this call will not change
+unless this object emits a signal, or is finalized.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="140"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="527">a pointer to the contents of the widget as a
+     string. This string points to internally allocated
+     storage in the buffer and must not be freed, modified or
+     stored.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="520">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="insert_text"
+              c:identifier="clutter_text_buffer_insert_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="623">Inserts @n_chars characters of @chars into the contents of the
+buffer, at position @position.
+
+If @n_chars is negative, then characters from chars will be inserted
+until a null-terminator is found. If @position or @n_chars are out of
+bounds, or the maximum buffer text length is exceeded, then they are
+coerced to sane values.
+
+Note that the position and length are in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="152"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-text-buffer.c"
+               line="640">The number of characters actually inserted.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="625">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="626">the position at which to insert text.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="627">the text to insert into the buffer.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="628">the length of the text in characters, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_max_length"
+              c:identifier="clutter_text_buffer_set_max_length"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="576">Sets the maximum allowed length of the contents of the buffer. If
+the current contents are longer than the given length, then they
+will be truncated to fit.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="578">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="max_length" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="579">the maximum length of the entry buffer, or 0 for no maximum.
+  (other than the maximum length of entries.) The value passed in will
+  be clamped to the range [ 0, %CLUTTER_TEXT_BUFFER_MAX_SIZE ].</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text"
+              c:identifier="clutter_text_buffer_set_text"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="547">Sets the text in the buffer.
+
+This is roughly equivalent to calling clutter_text_buffer_delete_text()
+and clutter_text_buffer_insert_text().
+
+Note that @n_chars is in characters, not in bytes.</doc>
+        <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="549">a #ClutterTextBuffer</doc>
+            <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+          </instance-parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="550">the new text</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="551">the number of characters in @text, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="length" version="1.10" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="352">The length (in characters) of the text in buffer.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="max-length"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="366">The maximum length (in characters) of the text in the buffer.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="text" version="1.10" transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="338">The contents of the buffer.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <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="TextBufferPrivate" c:type="ClutterTextBufferPrivate*"/>
+      </field>
+      <glib:signal name="deleted-text" when="first" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="405">This signal is emitted after text is deleted from the buffer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="408">the position the text was deleted at.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="409">The number of characters that were deleted.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="inserted-text" when="first" version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-text-buffer.c"
+             line="382">This signal is emitted after text is inserted into the buffer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="385">the position the text was inserted at.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="386">The text that was inserted.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="387">The number of characters that were inserted.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="TextBufferClass"
+            c:type="ClutterTextBufferClass"
+            glib:is-gtype-struct-for="TextBuffer"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text-buffer.h"
+           line="69">The #ClutterTextBufferClass structure contains
+only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="124"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="inserted_text">
+        <callback name="inserted_text">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="chars" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="n_chars" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deleted_text">
+        <callback name="deleted_text">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="n_chars" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_text">
+        <callback name="get_text">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="100"/>
+          <return-value transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+            <parameter name="n_bytes" transfer-ownership="none">
+              <type name="gsize" c:type="gsize*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_length">
+        <callback name="get_length">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="103"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="475">The number of characters in the buffer.</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="471">a #ClutterTextBuffer</doc>
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="insert_text">
+        <callback name="insert_text">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="105"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="640">The number of characters actually inserted.</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="625">a #ClutterTextBuffer</doc>
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="626">the position at which to insert text.</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="chars" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="627">the text to insert into the buffer.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="n_chars" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="628">the length of the text in characters, or -1</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delete_text">
+        <callback name="delete_text">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="110"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-text-buffer.c"
+                 line="696">The number of characters deleted.</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="buffer" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="683">a #ClutterTextBuffer</doc>
+              <type name="TextBuffer" c:type="ClutterTextBuffer*"/>
+            </parameter>
+            <parameter name="position" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="684">position at which to delete text</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="n_chars" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../clutter/clutter/clutter-text-buffer.c"
+                   line="685">number of characters to delete</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="116"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="117"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="118"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="119"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="120"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="121"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="122"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved8" introspectable="0">
+        <callback name="_clutter_reserved8">
+          <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                           line="123"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="TextBufferPrivate"
+            c:type="ClutterTextBufferPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-text-buffer.h"
+                       line="51"/>
+    </record>
+    <record name="TextClass"
+            c:type="ClutterTextClass"
+            glib:is-gtype-struct-for="Text"
+            version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text.h"
+           line="64">The #ClutterTextClass struct contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-text.h" line="97"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="text_changed">
+        <callback name="text_changed">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="82"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="activate">
+        <callback name="activate">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_event">
+        <callback name="cursor_event">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+            <parameter name="rect" transfer-ownership="none">
+              <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_changed">
+        <callback name="cursor_changed">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="91"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="93"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="94"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <source-position filename="../clutter/clutter/clutter-text.h"
+                           line="96"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="TextDirection"
+                 version="1.2"
+                 glib:type-name="ClutterTextDirection"
+                 glib:get-type="clutter_text_direction_get_type"
+                 c:type="ClutterTextDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="280">The text direction to be used by #ClutterActor&lt;!-- --&gt;s</doc>
+      <member name="default"
+              value="0"
+              c:identifier="CLUTTER_TEXT_DIRECTION_DEFAULT"
+              glib:nick="default">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="282">Use the default setting, as returned
+  by clutter_get_default_text_direction()</doc>
+      </member>
+      <member name="ltr"
+              value="1"
+              c:identifier="CLUTTER_TEXT_DIRECTION_LTR"
+              glib:nick="ltr">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="284">Use left-to-right text direction</doc>
+      </member>
+      <member name="rtl"
+              value="2"
+              c:identifier="CLUTTER_TEXT_DIRECTION_RTL"
+              glib:nick="rtl">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="285">Use right-to-left text direction</doc>
+      </member>
+    </enumeration>
+    <class name="TextNode"
+           c:symbol-prefix="text_node"
+           c:type="ClutterTextNode"
+           version="1.10"
+           parent="PaintNode"
+           glib:type-name="ClutterTextNode"
+           glib:get-type="clutter_text_node_get_type"
+           glib:type-struct="TextNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="128">The #ClutterTextNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="137"/>
+      <constructor name="new"
+                   c:identifier="clutter_text_node_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-nodes.c"
+             line="940">Creates a new #ClutterPaintNode that will paint a #PangoLayout
+with the given color.
+
+This function takes a reference on the passed @layout, so it
+is safe to call g_object_unref() after it returns.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="143"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-nodes.c"
+               line="952">the newly created #ClutterPaintNode.
+  Use clutter_paint_node_unref() when done</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="layout"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="942">a #PangoLayout, or %NULL</doc>
+            <type name="Pango.Layout" c:type="PangoLayout*"/>
+          </parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="943">the color used to paint the layout,
+  or %NULL</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="TextNodeClass"
+            c:type="ClutterTextNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="TextNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="784">The `ClutterTextNodeClass` structure is an opaque
+type whose contents cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="137"/>
+    </record>
+    <record name="TextPrivate" c:type="ClutterTextPrivate" disguised="1">
+      <source-position filename="../clutter/clutter/clutter-text.h" line="46"/>
+    </record>
+    <bitfield name="TextureFlags"
+              version="0.4"
+              deprecated="1"
+              deprecated-version="1.22"
+              glib:type-name="ClutterTextureFlags"
+              glib:get-type="clutter_texture_flags_get_type"
+              c:type="ClutterTextureFlags">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1169">Flags for clutter_texture_set_from_rgb_data().</doc>
+      <doc-deprecated xml:space="preserve">The #ClutterTexture class was the only user of
+  this API</doc-deprecated>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_TEXTURE_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1171">No flags</doc>
+      </member>
+      <member name="rgb_flag_bgr"
+              value="2"
+              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_BGR"
+              glib:nick="rgb-flag-bgr">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1172">Unused flag</doc>
+      </member>
+      <member name="rgb_flag_premult"
+              value="4"
+              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_PREMULT"
+              glib:nick="rgb-flag-premult">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1173">Unused flag</doc>
+      </member>
+      <member name="yuv_flag_yuv2"
+              value="8"
+              c:identifier="CLUTTER_TEXTURE_YUV_FLAG_YUV2"
+              glib:nick="yuv-flag-yuv2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1174">Unused flag</doc>
+      </member>
+    </bitfield>
+    <class name="TextureNode"
+           c:symbol-prefix="texture_node"
+           c:type="ClutterTextureNode"
+           version="1.10"
+           parent="PipelineNode"
+           glib:type-name="ClutterTextureNode"
+           glib:get-type="clutter_texture_node_get_type"
+           glib:type-struct="TextureNodeClass"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.h"
+           line="62">The #ClutterTextNode structure is an opaque
+type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="71"/>
+      <constructor name="new"
+                   c:identifier="clutter_texture_node_new"
+                   version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-nodes.c"
+             line="714">Creates a new #ClutterPaintNode that will paint the passed @texture.
+
+This function will take a reference on @texture, so it is safe to
+call cogl_object_unref() on @texture when it returns.
+
+The @color must not be pre-multiplied with its #ClutterColor.alpha
+channel value; if @color is %NULL, a fully opaque white color will
+be used for blending.</doc>
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="77"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-nodes.c"
+               line="730">the newly created #ClutterPaintNode.
+  Use clutter_paint_node_unref() when done</doc>
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="716">a #CoglTexture</doc>
+            <type name="Cogl.Texture" c:type="CoglTexture*"/>
+          </parameter>
+          <parameter name="color"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="717">a #ClutterColor used for blending, or %NULL</doc>
+            <type name="Color" c:type="const ClutterColor*"/>
+          </parameter>
+          <parameter name="min_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="718">the minification filter for the texture</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter"/>
+          </parameter>
+          <parameter name="mag_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-paint-nodes.c"
+                 line="719">the magnification filter for the texture</doc>
+            <type name="ScalingFilter" c:type="ClutterScalingFilter"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="TextureNodeClass"
+            c:type="ClutterTextureNodeClass"
+            disguised="1"
+            glib:is-gtype-struct-for="TextureNode"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="667">The `ClutterTextureNodeClass` structure is an
+opaque type whose members cannot be directly accessed.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="71"/>
+    </record>
+    <enumeration name="TextureQuality"
+                 version="0.8"
+                 deprecated="1"
+                 deprecated-version="1.22"
+                 glib:type-name="ClutterTextureQuality"
+                 glib:get-type="clutter_texture_quality_get_type"
+                 c:type="ClutterTextureQuality">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1191">Enumaration controlling the texture quality.</doc>
+      <doc-deprecated xml:space="preserve">The #ClutterTexture class was the only user of
+  this API; use #ClutterImage and clutter_actor_set_content_scaling_filters()
+  instead.</doc-deprecated>
+      <member name="low"
+              value="0"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_LOW"
+              glib:nick="low">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1193">fastest rendering will use nearest neighbour
+  interpolation when rendering. good setting.</doc>
+      </member>
+      <member name="medium"
+              value="1"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_MEDIUM"
+              glib:nick="medium">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1195">higher quality rendering without using
+  extra resources.</doc>
+      </member>
+      <member name="high"
+              value="2"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_HIGH"
+              glib:nick="high">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1197">render the texture with the best quality
+  available using extra memory.</doc>
+      </member>
+    </enumeration>
+    <class name="Timeline"
+           c:symbol-prefix="timeline"
+           c:type="ClutterTimeline"
+           version="0.2"
+           parent="GObject.Object"
+           glib:type-name="ClutterTimeline"
+           glib:get-type="clutter_timeline_get_type"
+           glib:type-struct="TimelineClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-timeline.h"
+           line="63">The #ClutterTimeline structure contains only private data
+and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="116"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_timeline_new"
+                   version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1590">Creates a new #ClutterTimeline with a duration of @duration_ms milli seconds.</doc>
+        <source-position filename="../clutter/clutter/deprecated/clutter-timeline.h"
+                         line="30"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1596">the newly created #ClutterTimeline instance. Use
+  g_object_unref() when done using it</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="duration_ms" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1592">Duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_for_actor"
+                   c:identifier="clutter_timeline_new_for_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1609">Creates a new #ClutterTimeline with a duration of @duration milli seconds.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="122"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1616">the newly created #ClutterTimeline instance. Use
+  g_object_unref() when done using it</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1611">The #ClutterActor the timeline is associated with</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="duration_ms" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1612">Duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_for_frame_clock"
+                   c:identifier="clutter_timeline_new_for_frame_clock">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1629">Creates a new #ClutterTimeline with a duration of @duration_ms milli seconds.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="126"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1636">the newly created #ClutterTimeline instance. Use
+  g_object_unref() when done using it</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="frame_clock" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1631">The #ClutterFrameClock the timeline is driven by</doc>
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </parameter>
+          <parameter name="duration_ms" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1632">Duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="completed">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="marker_reached">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="new_frame">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paused">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="started">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="stopped">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="108"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="is_finished" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_marker"
+              c:identifier="clutter_timeline_add_marker"
+              version="1.14">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1951">Adds a named marker that will be hit when the timeline has reached
+the specified @progress.
+
+Markers are unique string identifiers for a given position on the
+timeline. Once @timeline reaches the given @progress of its duration,
+if will emit a ::marker-reached signal for each marker attached to
+that particular point.
+
+A marker can be removed with clutter_timeline_remove_marker(). The
+timeline can be advanced to a marker using
+clutter_timeline_advance_to_marker().
+
+See also: clutter_timeline_add_marker_at_time()</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="184"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1953">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1954">the unique name for this marker</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1955">the normalized value of the position of the martke</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_marker_at_time"
+              c:identifier="clutter_timeline_add_marker_at_time"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1987">Adds a named marker that will be hit when the timeline has been
+running for @msecs milliseconds.
+
+Markers are unique string identifiers for a given position on the
+timeline. Once @timeline reaches the given @msecs, it will emit
+a ::marker-reached signal for each marker attached to that position.
+
+A marker can be removed with clutter_timeline_remove_marker(). The
+timeline can be advanced to a marker using
+clutter_timeline_advance_to_marker().
+
+See also: clutter_timeline_add_marker()</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="188"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1989">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1990">the unique name for this marker</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1991">position of the marker in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="advance" c:identifier="clutter_timeline_advance">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1533">Advance timeline to the requested point. The point is given as a
+time in milliseconds since the timeline started.
+
+The @timeline will not emit the #ClutterTimeline::new-frame
+signal for the given time. The first ::new-frame signal after the call to
+clutter_timeline_advance() will be emit the skipped markers.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="168"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1535">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1536">Time to advance to</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="advance_to_marker"
+              c:identifier="clutter_timeline_advance_to_marker"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2120">Advances @timeline to the time of the given @marker_name.
+
+Like clutter_timeline_advance(), this function will not
+emit the #ClutterTimeline::new-frame for the time where @marker_name
+is set, nor it will emit #ClutterTimeline::marker-reached for
+@marker_name.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="202"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2122">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2123">the name of the marker</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actor" c:identifier="clutter_timeline_get_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="318">Get the actor the timeline is associated with.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="324">the associated #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="320">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_auto_reverse"
+              c:identifier="clutter_timeline_get_auto_reverse"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2296">Retrieves the value set by clutter_timeline_set_auto_reverse().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="156"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2302">%TRUE if the timeline should automatically reverse, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2298">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_cubic_bezier_progress"
+              c:identifier="clutter_timeline_get_cubic_bezier_progress"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2692">Retrieves the control points for the cubic bezier progress mode.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="227"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2702">%TRUE if the @timeline is using a cubic bezier progress
+  more, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2694">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="c_1"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2695">return location for the first control
+  point of the cubic bezier, or %NULL</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+          <parameter name="c_2"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2697">return location for the second control
+  point of the cubic bezier, or %NULL</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_current_repeat"
+              c:identifier="clutter_timeline_get_current_repeat"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2565">Retrieves the current repeat for a timeline.
+
+Repeats start at 0.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="234"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2573">the current repeat</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2567">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_delay"
+              c:identifier="clutter_timeline_get_delay"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1649">Retrieves the delay set using clutter_timeline_set_delay().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="180"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1655">the delay in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1651">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_delta"
+              c:identifier="clutter_timeline_get_delta"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1829">Retrieves the amount of time elapsed since the last
+ClutterTimeline::new-frame signal.
+
+This function is only useful inside handlers for the ::new-frame
+signal, and its behaviour is undefined if the timeline is not
+playing.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="182"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1840">the amount of time in milliseconds elapsed since the
+last frame</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1831">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_direction"
+              c:identifier="clutter_timeline_get_direction"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1778">Retrieves the direction of the timeline set with
+clutter_timeline_set_direction().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="142"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1785">the direction of the timeline</doc>
+          <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1780">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_timeline_get_duration"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1693">Retrieves the duration of a #ClutterTimeline in milliseconds.
+See clutter_timeline_set_duration().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="137"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1700">the duration of the timeline, in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1695">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_duration_hint"
+              c:identifier="clutter_timeline_get_duration_hint"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2531">Retrieves the full duration of the @timeline, taking into account the
+current value of the #ClutterTimeline:repeat-count property.
+
+If the #ClutterTimeline:repeat-count property is set to -1, this function
+will return %G_MAXINT64.
+
+The returned value is to be considered a hint, and it's only valid
+as long as the @timeline hasn't been changed.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="232"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2544">the full duration of the #ClutterTimeline</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2533">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_elapsed_time"
+              c:identifier="clutter_timeline_get_elapsed_time">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1558">Request the current time position of the timeline.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="171"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1564">current elapsed time in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1560">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_clock"
+              c:identifier="clutter_timeline_get_frame_clock"
+              introspectable="0">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="237"/>
+        <return-value>
+          <type name="FrameClock" c:type="ClutterFrameClock*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_progress"
+              c:identifier="clutter_timeline_get_progress"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1745">The position of the timeline in a normalized [-1, 2] interval.
+
+The return value of this function is determined by the progress
+mode set using clutter_timeline_set_progress_mode(), or by the
+progress function set using clutter_timeline_set_progress_func().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="173"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1755">the normalized current position in the timeline.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1747">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_progress_mode"
+              c:identifier="clutter_timeline_get_progress_mode"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2512">Retrieves the progress mode set using clutter_timeline_set_progress_mode()
+or clutter_timeline_set_progress_func().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="213"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2519">a #ClutterAnimationMode</doc>
+          <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2514">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_repeat_count"
+              c:identifier="clutter_timeline_get_repeat_count"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2349">Retrieves the number set using clutter_timeline_set_repeat_count().</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="161"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2355">the number of repeats</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2351">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_step_progress"
+              c:identifier="clutter_timeline_get_step_progress"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2619">Retrieves the parameters of the step progress mode used by @timeline.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="219"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2628">%TRUE if the @timeline is using a step progress
+  mode, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2621">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="n_steps"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2622">return location for the number of steps, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="step_mode"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2623">return location for the value change policy,
+  or %NULL</doc>
+            <type name="StepMode" c:type="ClutterStepMode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="has_marker"
+              c:identifier="clutter_timeline_has_marker"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2206">Checks whether @timeline has a marker set with the given name.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="199"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2213">%TRUE if the marker was found</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2208">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2209">the name of the marker</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_playing" c:identifier="clutter_timeline_is_playing">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1574">Queries state of a #ClutterTimeline.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="175"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="1580">%TRUE if timeline is currently playing</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1576">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_markers"
+              c:identifier="clutter_timeline_list_markers"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2049">Retrieves the list of markers at time @msecs. If @msecs is a
+negative integer, all the markers attached to @timeline will be
+returned.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="195"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.c"
+               line="2059">
+  a newly allocated, %NULL terminated string array containing the names
+  of the markers. Use g_strfreev() when done.</doc>
+          <array length="1" zero-terminated="1" c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2051">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2052">the time to check, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="n_markers"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2053">the number of markers returned</doc>
+            <type name="gsize" c:type="gsize*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pause" c:identifier="clutter_timeline_pause">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1422">Pauses the #ClutterTimeline on current frame</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="149"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1424">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_marker"
+              c:identifier="clutter_timeline_remove_marker"
+              version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2168">Removes @marker_name, if found, from @timeline.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="192"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2170">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2171">the name of the marker to remove</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rewind" c:identifier="clutter_timeline_rewind">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1475">Rewinds #ClutterTimeline to the first frame if its direction is
+%CLUTTER_TIMELINE_FORWARD and the last frame if it is
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="163"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1477">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_actor" c:identifier="clutter_timeline_set_actor">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="455">Set the actor the timeline is associated with.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="133"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="457">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="actor"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="458">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_auto_reverse"
+              c:identifier="clutter_timeline_set_auto_reverse"
+              version="1.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2231">Sets whether @timeline should reverse the direction after the
+emission of the #ClutterTimeline::completed signal.
+
+Setting the #ClutterTimeline:auto-reverse property to %TRUE is the
+equivalent of connecting a callback to the #ClutterTimeline::completed
+signal and changing the direction of the timeline from that callback;
+for instance, this code:
+
+|[
+static void
+reverse_timeline (ClutterTimeline *timeline)
+{
+  ClutterTimelineDirection dir = clutter_timeline_get_direction (timeline);
+
+  if (dir == CLUTTER_TIMELINE_FORWARD)
+    dir = CLUTTER_TIMELINE_BACKWARD;
+  else
+    dir = CLUTTER_TIMELINE_FORWARD;
+
+  clutter_timeline_set_direction (timeline, dir);
+}
+...
+  timeline = clutter_timeline_new (1000);
+  clutter_timeline_set_repeat_count (timeline, -1);
+  g_signal_connect (timeline, "completed",
+                    G_CALLBACK (reverse_timeline),
+                    NULL);
+]|
+
+can be effectively replaced by:
+
+|[
+  timeline = clutter_timeline_new (1000);
+  clutter_timeline_set_repeat_count (timeline, -1);
+  clutter_timeline_set_auto_reverse (timeline);
+]|</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="153"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2233">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="reverse" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2234">%TRUE if the @timeline should reverse the direction</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cubic_bezier_progress"
+              c:identifier="clutter_timeline_set_cubic_bezier_progress"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2654">Sets the #ClutterTimeline:progress-mode of @timeline
+to %CLUTTER_CUBIC_BEZIER, and sets the two control
+points for the cubic bezier.
+
+The cubic bezier curve is between (0, 0) and (1, 1). The X coordinate
+of the two control points must be in the [ 0, 1 ] range, while the
+Y coordinate of the two control points can exceed this range.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="223"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2656">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="c_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2657">the first control point for the cubic bezier</doc>
+            <type name="Graphene.Point" c:type="const graphene_point_t*"/>
+          </parameter>
+          <parameter name="c_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2658">the second control point for the cubic bezier</doc>
+            <type name="Graphene.Point" c:type="const graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_delay"
+              c:identifier="clutter_timeline_set_delay"
+              version="0.4">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1667">Sets the delay, in milliseconds, before @timeline should start.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1669">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1670">delay in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_direction"
+              c:identifier="clutter_timeline_set_direction"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1798">Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="144"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1800">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1801">the direction of the timeline</doc>
+            <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="clutter_timeline_set_duration"
+              version="0.6">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1716">Sets the duration of the timeline, in milliseconds. The speed
+of the timeline depends on the ClutterTimeline:fps setting.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1718">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1719">duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_frame_clock"
+              c:identifier="clutter_timeline_set_frame_clock">
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="240"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="frame_clock" transfer-ownership="none">
+            <type name="FrameClock" c:type="ClutterFrameClock*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_progress_func"
+              c:identifier="clutter_timeline_set_progress_func"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2367">Sets a custom progress function for @timeline. The progress function will
+be called by clutter_timeline_get_progress() and will be used to compute
+the progress value based on the elapsed time and the total duration of the
+timeline.
+
+If @func is not %NULL, the #ClutterTimeline:progress-mode property will
+be set to %CLUTTER_CUSTOM_MODE.
+
+If @func is %NULL, any previously set progress function will be unset, and
+the #ClutterTimeline:progress-mode property will be set to %CLUTTER_LINEAR.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="205"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2369">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="notified"
+                     closure="1"
+                     destroy="2">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2370">a progress function, or %NULL</doc>
+            <type name="TimelineProgressFunc"
+                  c:type="ClutterTimelineProgressFunc"/>
+          </parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2371">data to pass to @func</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2372">a function to be called when the progress function is removed
+   or the timeline is disposed</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_progress_mode"
+              c:identifier="clutter_timeline_set_progress_mode"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2469">Sets the progress function using a value from the #ClutterAnimationMode
+enumeration. The @mode cannot be %CLUTTER_CUSTOM_MODE or bigger than
+%CLUTTER_ANIMATION_LAST.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="210"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2471">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2472">the progress mode, as a #ClutterAnimationMode</doc>
+            <type name="AnimationMode" c:type="ClutterAnimationMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_repeat_count"
+              c:identifier="clutter_timeline_set_repeat_count"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2315">Sets the number of times the @timeline should repeat.
+
+If @count is 0, the timeline never repeats.
+
+If @count is -1, the timeline will always repeat until
+it's stopped.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="158"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2317">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="count" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2318">the number of times the timeline should repeat</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_step_progress"
+              c:identifier="clutter_timeline_set_step_progress"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="2585">Sets the #ClutterTimeline:progress-mode of the @timeline to %CLUTTER_STEPS
+and provides the parameters of the step function.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="215"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2587">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="n_steps" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2588">the number of steps</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="step_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="2589">whether the change should happen at the start
+  or at the end of the step</doc>
+            <type name="StepMode" c:type="ClutterStepMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="skip" c:identifier="clutter_timeline_skip">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1498">Advance timeline by the requested time in milliseconds</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="165"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1500">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1501">Amount of time to skip</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start" c:identifier="clutter_timeline_start">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1385">Starts the #ClutterTimeline playing.</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="147"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1387">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="stop" c:identifier="clutter_timeline_stop">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1448">Stops the #ClutterTimeline and moves to frame 0</doc>
+        <source-position filename="../clutter/clutter/clutter-timeline.h"
+                         line="151"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="timeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1450">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="actor"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="Actor"/>
+      </property>
+      <property name="auto-reverse"
+                version="1.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="847">If the direction of the timeline should be automatically reversed
+when reaching the end.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="delay"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="799">A delay, in milliseconds, that should be observed by the
+timeline before actually starting.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="direction"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="831">The direction of the timeline, either %CLUTTER_TIMELINE_FORWARD or
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <type name="TimelineDirection"/>
+      </property>
+      <property name="duration"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="815">Duration of the timeline in milliseconds, depending on the
+ClutterTimeline:fps value.</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="frame-clock"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="897">The frame clock driving the timeline.</doc>
+        <type name="FrameClock"/>
+      </property>
+      <property name="progress-mode"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="882">Controls the way a #ClutterTimeline computes the normalized progress.</doc>
+        <type name="AnimationMode"/>
+      </property>
+      <property name="repeat-count"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="862">Defines how many times the timeline should repeat.
+
+If the repeat count is 0, the timeline does not repeat.
+
+If the repeat count is set to -1, the timeline will repeat until it is
+stopped.</doc>
+        <type name="gint" c:type="gint"/>
+      </property>
+      <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="TimelinePrivate" c:type="ClutterTimelinePrivate*"/>
+      </field>
+      <glib:signal name="completed" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="932">The #ClutterTimeline::completed signal is emitted when the timeline's
+elapsed time reaches the value of the #ClutterTimeline:duration
+property.
+
+This signal will be emitted even if the #ClutterTimeline is set to be
+repeating.
+
+If you want to get notification on whether the #ClutterTimeline has
+been stopped or has finished its run, including its eventual repeats,
+you should use the #ClutterTimeline::stopped signal instead.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="marker-reached"
+                   when="last"
+                   no-recurse="1"
+                   detailed="1"
+                   no-hooks="1"
+                   version="0.8">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="983">The ::marker-reached signal is emitted each time a timeline
+reaches a marker set with
+clutter_timeline_add_marker_at_time(). This signal is detailed
+with the name of the marker as well, so it is possible to connect
+a callback to the ::marker-reached signal for a specific marker
+with:
+
+&lt;informalexample&gt;&lt;programlisting&gt;
+  clutter_timeline_add_marker_at_time (timeline, "foo", 500);
+  clutter_timeline_add_marker_at_time (timeline, "bar", 750);
+
+  g_signal_connect (timeline, "marker-reached",
+                    G_CALLBACK (each_marker_reached), NULL);
+  g_signal_connect (timeline, "marker-reached::foo",
+                    G_CALLBACK (foo_marker_reached), NULL);
+  g_signal_connect (timeline, "marker-reached::bar",
+                    G_CALLBACK (bar_marker_reached), NULL);
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+
+In the example, the first callback will be invoked for both
+the "foo" and "bar" marker, while the second and third callbacks
+will be invoked for the "foo" or "bar" markers, respectively.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="986">the name of the marker reached</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="987">the elapsed time</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="new-frame" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="915">The ::new-frame signal is emitted for each timeline running
+timeline before a new frame is drawn to give animations a chance
+to update the scene.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="918">the elapsed time between 0 and duration</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="paused" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="970">The ::paused signal is emitted when clutter_timeline_pause() is invoked.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="started" when="last">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="954">The ::started signal is emitted when the timeline starts its run.
+This might be as soon as clutter_timeline_start() is invoked or
+after the delay set in the ClutterTimeline:delay property has
+expired.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="stopped" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.c"
+             line="1025">The #ClutterTimeline::stopped signal is emitted when the timeline
+has been stopped, either because clutter_timeline_stop() has been
+called, or because it has been exhausted.
+
+This is different from the #ClutterTimeline::completed signal,
+which gets emitted after every repeat finishes.
+
+If the #ClutterTimeline has is marked as infinitely repeating,
+this signal will never be emitted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="is_finished" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-timeline.c"
+                 line="1028">%TRUE if the signal was emitted at the end of the
+  timeline.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="TimelineClass"
+            c:type="ClutterTimelineClass"
+            glib:is-gtype-struct-for="Timeline"
+            version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-timeline.h"
+           line="79">The #ClutterTimelineClass structure contains only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="116"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="started">
+        <callback name="started">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="98"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="completed">
+        <callback name="completed">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="99"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paused">
+        <callback name="paused">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="100"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="new_frame">
+        <callback name="new_frame">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="102"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+            <parameter name="msecs" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="marker_reached">
+        <callback name="marker_reached">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="105"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+            <parameter name="marker_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="msecs" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stopped">
+        <callback name="stopped">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="108"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+            <parameter name="is_finished" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_1" introspectable="0">
+        <callback name="_clutter_timeline_1">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="112"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_2" introspectable="0">
+        <callback name="_clutter_timeline_2">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="113"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_3" introspectable="0">
+        <callback name="_clutter_timeline_3">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="114"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_4" introspectable="0">
+        <callback name="_clutter_timeline_4">
+          <source-position filename="../clutter/clutter/clutter-timeline.h"
+                           line="115"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="TimelineDirection"
+                 version="0.6"
+                 glib:type-name="ClutterTimelineDirection"
+                 glib:get-type="clutter_timeline_direction_get_type"
+                 c:type="ClutterTimelineDirection">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1215">The direction of a #ClutterTimeline</doc>
+      <member name="forward"
+              value="0"
+              c:identifier="CLUTTER_TIMELINE_FORWARD"
+              glib:nick="forward">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1217">forward direction for a timeline</doc>
+      </member>
+      <member name="backward"
+              value="1"
+              c:identifier="CLUTTER_TIMELINE_BACKWARD"
+              glib:nick="backward">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1218">backward direction for a timeline</doc>
+      </member>
+    </enumeration>
+    <record name="TimelinePrivate"
+            c:type="ClutterTimelinePrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="43"/>
+    </record>
+    <callback name="TimelineProgressFunc"
+              c:type="ClutterTimelineProgressFunc"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-timeline.h"
+           line="45">A function for defining a custom progress.</doc>
+      <source-position filename="../clutter/clutter/clutter-timeline.h"
+                       line="58"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-timeline.h"
+             line="54">the progress, as a floating point value between -1.0 and 2.0.</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="timeline" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.h"
+               line="47">a #ClutterTimeline</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </parameter>
+        <parameter name="elapsed" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.h"
+               line="48">the elapsed time, in milliseconds</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="total" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.h"
+               line="49">the total duration of the timeline, in milliseconds,</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="3">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-timeline.h"
+               line="50">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="TouchEvent" c:type="ClutterTouchEvent" version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="376">Used for touch events.
+
+The @type field will be one of %CLUTTER_TOUCH_BEGIN, %CLUTTER_TOUCH_END,
+%CLUTTER_TOUCH_UPDATE, or %CLUTTER_TOUCH_CANCEL.
+
+Touch events are grouped into sequences; each touch sequence will begin
+with a %CLUTTER_TOUCH_BEGIN event, progress with %CLUTTER_TOUCH_UPDATE
+events, and end either with a %CLUTTER_TOUCH_END event or with a
+%CLUTTER_TOUCH_CANCEL event.
+
+With multi-touch capable devices there can be multiple event sequence
+running at the same time.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="422"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="378">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="379">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="380">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="381">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="382">event source actor (unused)</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="383">the X coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="384">the Y coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="sequence" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="385">the event sequence that this event belongs to</doc>
+        <type name="EventSequence" c:type="ClutterEventSequence*"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="386">a bit-mask representing the state
+  of modifier keys (e.g. Control, Shift, and Alt) and the pointer
+  buttons. See #ClutterModifierType</doc>
+        <type name="ModifierType"/>
+      </field>
+      <field name="axes" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="389">reserved</doc>
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="390">the device that originated the event. If you want the physical
+device the event originated from, use clutter_event_get_source_device()</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <enumeration name="TouchpadGesturePhase"
+                 version="1.24"
+                 glib:type-name="ClutterTouchpadGesturePhase"
+                 glib:get-type="clutter_touchpad_gesture_phase_get_type"
+                 c:type="ClutterTouchpadGesturePhase">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1526">The phase of a touchpad gesture event. All gestures are guaranteed to
+begin with an event of type %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN,
+followed by a number of %CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE (possibly 0).
+
+A finished gesture may have 2 possible outcomes, an event with phase
+%CLUTTER_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is
+considered successful, this should be used as the hint to perform any
+permanent changes.
+
+Cancelled gestures may be so for a variety of reasons, due to hardware,
+or due to the gesture recognition layers hinting the gesture did not
+finish resolutely (eg. a 3rd finger being added during a pinch gesture).
+In these cases, the last event with report the phase
+%CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint
+to undo any visible/permanent changes that were done throughout the
+progress of the gesture.
+
+See also #ClutterTouchpadPinchEvent and #ClutterTouchpadPinchEvent.</doc>
+      <member name="begin"
+              value="0"
+              c:identifier="CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN"
+              glib:nick="begin">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1528">The gesture has begun.</doc>
+      </member>
+      <member name="update"
+              value="1"
+              c:identifier="CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE"
+              glib:nick="update">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1529">The gesture has been updated.</doc>
+      </member>
+      <member name="end"
+              value="2"
+              c:identifier="CLUTTER_TOUCHPAD_GESTURE_PHASE_END"
+              glib:nick="end">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1530">The gesture was finished, changes
+  should be permanently applied.</doc>
+      </member>
+      <member name="cancel"
+              value="3"
+              c:identifier="CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL"
+              glib:nick="cancel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1532">The gesture was cancelled, all
+  changes should be undone.</doc>
+      </member>
+    </enumeration>
+    <record name="TouchpadPinchEvent"
+            c:type="ClutterTouchpadPinchEvent"
+            version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="424">Used for touchpad pinch gesture events. The current state of the
+gesture will be determined by the @phase field.
+
+Each event with phase %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN
+will report a @scale of 1.0, all later phases in the gesture
+report the current scale relative to the initial 1.0 value
+(eg. 0.5 being half the size, 2.0 twice as big).</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="466"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="426">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="427">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="428">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="429">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="430">event source actor (unused)</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="phase" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="431">the current phase of the gesture</doc>
+        <type name="TouchpadGesturePhase"
+              c:type="ClutterTouchpadGesturePhase"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="432">the X coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="433">the Y coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="dx" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="434">movement delta of the pinch focal point in the X axis</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="dy" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="435">movement delta of the pinch focal point in the Y axis</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="angle_delta" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="436">angle delta in degrees, clockwise rotations are
+  represented by positive deltas</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="scale" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="438">the current scale</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="n_fingers" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="TouchpadSwipeEvent"
+            c:type="ClutterTouchpadSwipeEvent"
+            version="1.24">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.h"
+           line="468">Used for touchpad swipe gesture events. The current state of the
+gesture will be determined by the @phase field.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="501"/>
+      <field name="type" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="470">event type</doc>
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="471">event time</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="472">event flags</doc>
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="473">event source stage</doc>
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="474">event source actor (unused)</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="phase" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="475">the current phase of the gesture</doc>
+        <type name="TouchpadGesturePhase"
+              c:type="ClutterTouchpadGesturePhase"/>
+      </field>
+      <field name="n_fingers" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="476">the number of fingers triggering the swipe</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="477">the X coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="478">the Y coordinate of the pointer, relative to the stage</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="dx" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="479">movement delta of the pinch focal point in the X axis</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="dy" writable="1">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.h"
+             line="480">movement delta of the pinch focal point in the Y axis</doc>
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <class name="TransformNode"
+           c:symbol-prefix="transform_node"
+           c:type="ClutterTransformNode"
+           parent="PaintNode"
+           glib:type-name="ClutterTransformNode"
+           glib:get-type="clutter_transform_node_get_type"
+           glib:type-struct="TransformNodeClass"
+           glib:fundamental="1">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="225"/>
+      <constructor name="new" c:identifier="clutter_transform_node_new">
+        <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                         line="231"/>
+        <return-value transfer-ownership="full">
+          <type name="PaintNode" c:type="ClutterPaintNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="projection" transfer-ownership="none">
+            <type name="Cogl.Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="TransformNodeClass"
+            c:type="ClutterTransformNodeClass"
+            glib:is-gtype-struct-for="TransformNode">
+      <source-position filename="../clutter/clutter/clutter-paint-nodes.h"
+                       line="225"/>
+    </record>
+    <class name="Transition"
+           c:symbol-prefix="transition"
+           c:type="ClutterTransition"
+           version="1.10"
+           parent="Timeline"
+           abstract="1"
+           glib:type-name="ClutterTransition"
+           glib:get-type="clutter_transition_get_type"
+           glib:type-struct="TransitionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition.h"
+           line="46">The #ClutterTransition structure contains private
+data and should only be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="94"/>
+      <implements name="Scriptable"/>
+      <virtual-method name="attached">
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="82"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="animatable" transfer-ownership="none">
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="compute_value">
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="animatable" transfer-ownership="none">
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="none">
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="detached">
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="animatable" transfer-ownership="none">
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_animatable"
+              c:identifier="clutter_transition_get_animatable"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="392">Retrieves the #ClutterAnimatable set using clutter_transition_set_animatable().</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="123"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-transition.c"
+               line="398">a #ClutterAnimatable, or %NULL; the returned
+  animatable is owned by the #ClutterTransition, and it should not be freed
+  directly.</doc>
+          <type name="Animatable" c:type="ClutterAnimatable*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="394">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_interval"
+              c:identifier="clutter_transition_get_interval"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="326">Retrieves the interval set using clutter_transition_set_interval()</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-transition.c"
+               line="332">a #ClutterInterval, or %NULL; the returned
+  interval is owned by the #ClutterTransition and it should not be freed
+  directly</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="328">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_remove_on_complete"
+              c:identifier="clutter_transition_get_remove_on_complete"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="440">Retrieves the value of the #ClutterTransition:remove-on-complete property.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="128"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-transition.c"
+               line="446">%TRUE if the @transition should be detached when complete,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="442">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_animatable"
+              c:identifier="clutter_transition_set_animatable"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="346">Sets the #ClutterTransition:animatable property.
+
+The @transition will acquire a reference to the @animatable instance,
+and will call the #ClutterTransitionClass.attached() virtual function.
+
+If an existing #ClutterAnimatable is attached to @transition, the
+reference will be released, and the #ClutterTransitionClass.detached()
+virtual function will be called.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="120"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="348">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="animatable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="349">a #ClutterAnimatable, or %NULL</doc>
+            <type name="Animatable" c:type="ClutterAnimatable*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from"
+              c:identifier="clutter_transition_set_from"
+              shadowed-by="set_from_value"
+              version="1.12"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="580">Sets the initial value of the transition.
+
+This is a convenience function that will either create the
+#ClutterInterval used by @transition, or will update it if
+the #ClutterTransition:interval is already set.
+
+If @transition already has a #ClutterTransition:interval set,
+then @value must hold the same type, or a transformable type,
+as the interval's #ClutterInterval:value-type property.
+
+This is a convenience function for the C API; language bindings
+should use clutter_transition_set_from_value() instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="111"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="582">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="583">the type of the value to set</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="584">the initial value</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_value"
+              c:identifier="clutter_transition_set_from_value"
+              shadows="set_from"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="512">Sets the initial value of the transition.
+
+This is a convenience function that will either create the
+#ClutterInterval used by @transition, or will update it if
+the #ClutterTransition:interval is already set.
+
+This function will copy the contents of @value, so it is
+safe to call g_value_unset() after it returns.
+
+If @transition already has a #ClutterTransition:interval set,
+then @value must hold the same type, or a transformable type,
+as the interval's #ClutterInterval:value-type property.
+
+This function is meant to be used by language bindings.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="514">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="515">a #GValue with the initial value of the transition</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_interval"
+              c:identifier="clutter_transition_set_interval"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="292">Sets the #ClutterTransition:interval property using @interval.
+
+The @transition will acquire a reference on the @interval, sinking
+the floating flag on it if necessary.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="294">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="interval"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="295">a #ClutterInterval, or %NULL</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_remove_on_complete"
+              c:identifier="clutter_transition_set_remove_on_complete"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="412">Sets whether @transition should be detached from the #ClutterAnimatable
+set using clutter_transition_set_animatable() when the
+#ClutterTimeline::completed signal is emitted.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="125"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="414">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="remove_complete" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="415">whether to detach @transition when complete</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_to"
+              c:identifier="clutter_transition_set_to"
+              shadowed-by="set_to_value"
+              version="1.12"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="633">Sets the final value of the transition.
+
+This is a convenience function that will either create the
+#ClutterInterval used by @transition, or will update it if
+the #ClutterTransition:interval is already set.
+
+If @transition already has a #ClutterTransition:interval set,
+then @value must hold the same type, or a transformable type,
+as the interval's #ClutterInterval:value-type property.
+
+This is a convenience function for the C API; language bindings
+should use clutter_transition_set_to_value() instead.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="115"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="635">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="636">the type of the value to set</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="637">the final value</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_to_value"
+              c:identifier="clutter_transition_set_to_value"
+              shadows="set_to"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="546">Sets the final value of the transition.
+
+This is a convenience function that will either create the
+#ClutterInterval used by @transition, or will update it if
+the #ClutterTransition:interval is already set.
+
+This function will copy the contents of @value, so it is
+safe to call g_value_unset() after it returns.
+
+If @transition already has a #ClutterTransition:interval set,
+then @value must hold the same type, or a transformable type,
+as the interval's #ClutterInterval:value-type property.
+
+This function is meant to be used by language bindings.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition.h"
+                         line="108"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="548">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </instance-parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition.c"
+                 line="549">a #GValue with the final value of the transition</doc>
+            <type name="GObject.Value" c:type="const GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="animatable"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="247">The #ClutterAnimatable instance currently being animated.</doc>
+        <type name="Animatable"/>
+      </property>
+      <property name="interval"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="231">The #ClutterInterval used to describe the initial and final states
+of the transition.</doc>
+        <type name="Interval"/>
+      </property>
+      <property name="remove-on-complete"
+                version="1.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition.c"
+             line="262">Whether the #ClutterTransition should be automatically detached
+from the #ClutterTransition:animatable instance whenever the
+#ClutterTimeline::stopped signal is emitted.
+
+The #ClutterTransition:remove-on-complete property takes into
+account the value of the #ClutterTimeline:repeat-count property,
+and it only detaches the transition if the transition is not
+repeating.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Timeline" c:type="ClutterTimeline"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="TransitionPrivate" c:type="ClutterTransitionPrivate*"/>
+      </field>
+    </class>
+    <record name="TransitionClass"
+            c:type="ClutterTransitionClass"
+            glib:is-gtype-struct-for="Transition"
+            version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition.h"
+           line="62">The #ClutterTransitionClass structure contains
+private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="94"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="TimelineClass" c:type="ClutterTimelineClass"/>
+      </field>
+      <field name="attached">
+        <callback name="attached">
+          <source-position filename="../clutter/clutter/clutter-transition.h"
+                           line="82"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="transition" transfer-ownership="none">
+              <type name="Transition" c:type="ClutterTransition*"/>
+            </parameter>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="detached">
+        <callback name="detached">
+          <source-position filename="../clutter/clutter/clutter-transition.h"
+                           line="84"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="transition" transfer-ownership="none">
+              <type name="Transition" c:type="ClutterTransition*"/>
+            </parameter>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="compute_value">
+        <callback name="compute_value">
+          <source-position filename="../clutter/clutter/clutter-transition.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="transition" transfer-ownership="none">
+              <type name="Transition" c:type="ClutterTransition*"/>
+            </parameter>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="interval" transfer-ownership="none">
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="progress" transfer-ownership="none">
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <class name="TransitionGroup"
+           c:symbol-prefix="transition_group"
+           c:type="ClutterTransitionGroup"
+           version="1.12"
+           parent="Transition"
+           glib:type-name="ClutterTransitionGroup"
+           glib:get-type="clutter_transition_group_get_type"
+           glib:type-struct="TransitionGroupClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition-group.h"
+           line="46">The #ClutterTransitionGroup structure contains
+private data and should only be accessed using the provided API.</doc>
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="76"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_transition_group_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition-group.c"
+             line="174">Creates a new #ClutterTransitionGroup instance.</doc>
+        <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                         line="82"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-transition-group.c"
+               line="179">the newly created #ClutterTransitionGroup. Use
+  g_object_unref() when done to deallocate the resources it
+  uses</doc>
+          <type name="Transition" c:type="ClutterTransition*"/>
+        </return-value>
+      </constructor>
+      <method name="add_transition"
+              c:identifier="clutter_transition_group_add_transition"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition-group.c"
+             line="191">Adds @transition to @group.
+
+This function acquires a reference on @transition that will be released
+when calling clutter_transition_group_remove_transition().</doc>
+        <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition-group.c"
+                 line="193">a #ClutterTransitionGroup</doc>
+            <type name="TransitionGroup" c:type="ClutterTransitionGroup*"/>
+          </instance-parameter>
+          <parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition-group.c"
+                 line="194">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all"
+              c:identifier="clutter_transition_group_remove_all"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition-group.c"
+             line="234">Removes all transitions from @group.
+
+This function releases the reference acquired when calling
+clutter_transition_group_add_transition().</doc>
+        <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                         line="91"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition-group.c"
+                 line="236">a #ClutterTransitionGroup</doc>
+            <type name="TransitionGroup" c:type="ClutterTransitionGroup*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_transition"
+              c:identifier="clutter_transition_group_remove_transition"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-transition-group.c"
+             line="213">Removes @transition from @group.
+
+This function releases the reference acquired on @transition when
+calling clutter_transition_group_add_transition().</doc>
+        <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                         line="88"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition-group.c"
+                 line="215">a #ClutterTransitionGroup</doc>
+            <type name="TransitionGroup" c:type="ClutterTransitionGroup*"/>
+          </instance-parameter>
+          <parameter name="transition" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-transition-group.c"
+                 line="216">a #ClutterTransition</doc>
+            <type name="Transition" c:type="ClutterTransition*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="Transition" c:type="ClutterTransition"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="TransitionGroupPrivate"
+              c:type="ClutterTransitionGroupPrivate*"/>
+      </field>
+    </class>
+    <record name="TransitionGroupClass"
+            c:type="ClutterTransitionGroupClass"
+            glib:is-gtype-struct-for="TransitionGroup"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition-group.h"
+           line="62">The #ClutterTransitionGroupClass structure
+contains only private data.</doc>
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="76"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="TransitionClass" c:type="ClutterTransitionClass"/>
+      </field>
+      <field name="_padding" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="TransitionGroupPrivate"
+            c:type="ClutterTransitionGroupPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-transition-group.h"
+                       line="43"/>
+    </record>
+    <record name="TransitionPrivate"
+            c:type="ClutterTransitionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-transition.h"
+                       line="43"/>
+    </record>
+    <enumeration name="UnitType"
+                 version="1.0"
+                 glib:type-name="ClutterUnitType"
+                 glib:get-type="clutter_unit_type_get_type"
+                 c:type="ClutterUnitType">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1230">The type of unit in which a value is expressed
+
+This enumeration might be expanded at later date</doc>
+      <member name="pixel"
+              value="0"
+              c:identifier="CLUTTER_UNIT_PIXEL"
+              glib:nick="pixel">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1232">Unit expressed in pixels (with subpixel precision)</doc>
+      </member>
+      <member name="em"
+              value="1"
+              c:identifier="CLUTTER_UNIT_EM"
+              glib:nick="em">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1233">Unit expressed in em</doc>
+      </member>
+      <member name="mm"
+              value="2"
+              c:identifier="CLUTTER_UNIT_MM"
+              glib:nick="mm">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1234">Unit expressed in millimeters</doc>
+      </member>
+      <member name="point"
+              value="3"
+              c:identifier="CLUTTER_UNIT_POINT"
+              glib:nick="point">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1235">Unit expressed in points</doc>
+      </member>
+      <member name="cm"
+              value="4"
+              c:identifier="CLUTTER_UNIT_CM"
+              glib:nick="cm">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1236">Unit expressed in centimeters</doc>
+      </member>
+    </enumeration>
+    <record name="Units"
+            c:type="ClutterUnits"
+            version="1.0"
+            glib:type-name="ClutterUnits"
+            glib:get-type="clutter_units_get_type"
+            c:symbol-prefix="units">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.h"
+           line="40">An opaque structure, to be used to store sizing and positioning
+values along with their unit.</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="71"/>
+      <field name="unit_type" readable="0" private="1">
+        <type name="UnitType" c:type="ClutterUnitType"/>
+      </field>
+      <field name="value" readable="0" private="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="pixels" readable="0" private="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="pixels_set" readable="0" private="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="serial" readable="0" private="1">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="__padding_1" readable="0" private="1">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="__padding_2" readable="0" private="1">
+        <type name="gint64" c:type="gint64"/>
+      </field>
+      <method name="copy" c:identifier="clutter_units_copy" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="337">Copies @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="81"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="343">the newly created copy of a
+  #ClutterUnits structure. Use clutter_units_free() to free
+  the allocated resources</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="339">the #ClutterUnits to copy</doc>
+            <type name="Units" c:type="const ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_units_free" version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="358">Frees the resources allocated by @units
+
+You should only call this function on a #ClutterUnits
+created using clutter_units_copy()</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="360">the #ClutterUnits to free</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_unit_type"
+              c:identifier="clutter_units_get_unit_type"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="301">Retrieves the unit type of the value stored inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="76"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="307">a unit type</doc>
+          <type name="UnitType" c:type="ClutterUnitType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="303">a #ClutterUnits</doc>
+            <type name="Units" c:type="const ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_unit_value"
+              c:identifier="clutter_units_get_unit_value"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="319">Retrieves the value stored inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="78"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="325">the value stored inside a #ClutterUnits</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="321">a #ClutterUnits</doc>
+            <type name="Units" c:type="const ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="to_pixels"
+              c:identifier="clutter_units_to_pixels"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="376">Converts a value in #ClutterUnits to pixels</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="382">the value in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="378">units to convert</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="to_string"
+              c:identifier="clutter_units_to_string"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="587">Converts @units into a string
+
+See clutter_units_from_string() for the units syntax and for
+examples of output
+
+Fractional values are truncated to the second decimal
+position for em, mm and cm, and to the first decimal position for
+typographic points. Pixels are integers.</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="112"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="600">a newly allocated string containing the encoded
+  #ClutterUnits value. Use g_free() to free the string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="units" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="589">a #ClutterUnits</doc>
+            <type name="Units" c:type="const ClutterUnits*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <function name="from_cm"
+                c:identifier="clutter_units_from_cm"
+                version="1.2">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="168">Stores a value in centimeters inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="170">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="cm" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="171">centimeters</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_em"
+                c:identifier="clutter_units_from_em"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="220">Stores a value in em inside @units, using the default font
+name as returned by clutter_backend_get_font_name()</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="89"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="222">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="em" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="223">em</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_em_for_font"
+                c:identifier="clutter_units_from_em_for_font"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="247">Stores a value in em inside @units using @font_name</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="92"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="249">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="font_name"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="250">the font name and size</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="em" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="251">em</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_mm"
+                c:identifier="clutter_units_from_mm"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="142">Stores a value in millimiters inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="96"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="144">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="mm" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="145">millimeters</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_pixels"
+                c:identifier="clutter_units_from_pixels"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="275">Stores a value in pixels inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="277">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="px" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="278">pixels</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_pt"
+                c:identifier="clutter_units_from_pt"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="194">Stores a value in typographic points inside @units</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="102"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="196">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="pt" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="197">typographic points</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="from_string"
+                c:identifier="clutter_units_from_string"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="430">Parses a value and updates @units with it
+
+A #ClutterUnits expressed in string should match:
+
+|[
+  units: wsp* unit-value wsp* unit-name? wsp*
+  unit-value: number
+  unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm'
+  number: digit+
+          | digit* sep digit+
+  sep: '.' | ','
+  digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
+  wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+
+]|
+
+For instance, these are valid strings:
+
+|[
+  10 px
+  5.1 em
+  24 pt
+  12.6 mm
+  .3 cm
+]|
+
+While these are not:
+
+|[
+  42 cats
+  omg!1!ponies
+]|
+
+If no unit is specified, pixels are assumed.</doc>
+        <source-position filename="../clutter/clutter/clutter-units.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="469">%TRUE if the string was successfully parsed,
+  and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="units"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="432">a #ClutterUnits</doc>
+            <type name="Units" c:type="ClutterUnits*"/>
+          </parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-units.c"
+                 line="433">the string to convert</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <function-macro name="VALUE_HOLDS_COLOR"
+                    c:identifier="CLUTTER_VALUE_HOLDS_COLOR"
+                    version="1.0"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.h"
+           line="150">Evaluates to %TRUE if @x holds a #ClutterColor&lt;!-- --&gt;.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="158"/>
+      <parameters>
+        <parameter name="x">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.h"
+               line="152">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_HOLDS_PAINT_NODE"
+                    c:identifier="CLUTTER_VALUE_HOLDS_PAINT_NODE"
+                    version="1.10"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.h"
+           line="90">Evaluates to %TRUE if the @value has been initialized to hold
+a #ClutterPaintNode.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="99"/>
+      <parameters>
+        <parameter name="value">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.h"
+               line="92">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_HOLDS_SHADER_FLOAT"
+                    c:identifier="CLUTTER_VALUE_HOLDS_SHADER_FLOAT"
+                    version="1.0"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.h"
+           line="43">Evaluates to %TRUE if @x holds a #ClutterShaderFloat.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="51"/>
+      <parameters>
+        <parameter name="x">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.h"
+               line="45">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_HOLDS_SHADER_INT"
+                    c:identifier="CLUTTER_VALUE_HOLDS_SHADER_INT"
+                    version="1.0"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.h"
+           line="53">Evaluates to %TRUE if @x holds a #ClutterShaderInt.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="61"/>
+      <parameters>
+        <parameter name="x">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.h"
+               line="55">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_HOLDS_SHADER_MATRIX"
+                    c:identifier="CLUTTER_VALUE_HOLDS_SHADER_MATRIX"
+                    version="1.0"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.h"
+           line="63">Evaluates to %TRUE if @x holds a #ClutterShaderMatrix.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="71"/>
+      <parameters>
+        <parameter name="x">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.h"
+               line="65">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="VALUE_HOLDS_UNITS"
+                    c:identifier="CLUTTER_VALUE_HOLDS_UNITS"
+                    version="0.8"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.h"
+           line="127">Evaluates to %TRUE if @x holds a #ClutterUnits value</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="135"/>
+      <parameters>
+        <parameter name="x">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.h"
+               line="129">a #GValue</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <bitfield name="VirtualDeviceType"
+              glib:type-name="ClutterVirtualDeviceType"
+              glib:get-type="clutter_virtual_device_type_get_type"
+              c:type="ClutterVirtualDeviceType">
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_VIRTUAL_DEVICE_TYPE_NONE"
+              glib:nick="none">
+      </member>
+      <member name="keyboard"
+              value="1"
+              c:identifier="CLUTTER_VIRTUAL_DEVICE_TYPE_KEYBOARD"
+              glib:nick="keyboard">
+      </member>
+      <member name="pointer"
+              value="2"
+              c:identifier="CLUTTER_VIRTUAL_DEVICE_TYPE_POINTER"
+              glib:nick="pointer">
+      </member>
+      <member name="touchscreen"
+              value="4"
+              c:identifier="CLUTTER_VIRTUAL_DEVICE_TYPE_TOUCHSCREEN"
+              glib:nick="touchscreen">
+      </member>
+    </bitfield>
+    <class name="VirtualInputDevice"
+           c:symbol-prefix="virtual_input_device"
+           c:type="ClutterVirtualInputDevice"
+           parent="GObject.Object"
+           glib:type-name="ClutterVirtualInputDevice"
+           glib:get-type="clutter_virtual_input_device_get_type"
+           glib:type-struct="VirtualInputDeviceClass">
+      <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                       line="107"/>
+      <virtual-method name="notify_absolute_motion"
+                      invoker="notify_absolute_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_button" invoker="notify_button">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="button_state" transfer-ownership="none">
+            <type name="ButtonState" c:type="ClutterButtonState"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_discrete_scroll"
+                      invoker="notify_discrete_scroll">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+          </parameter>
+          <parameter name="scroll_source" transfer-ownership="none">
+            <type name="ScrollSource" c:type="ClutterScrollSource"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_key" invoker="notify_key">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="key" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="key_state" transfer-ownership="none">
+            <type name="KeyState" c:type="ClutterKeyState"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_keyval" invoker="notify_keyval">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="key_state" transfer-ownership="none">
+            <type name="KeyState" c:type="ClutterKeyState"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_relative_motion"
+                      invoker="notify_relative_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_scroll_continuous"
+                      invoker="notify_scroll_continuous">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="85"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="scroll_source" transfer-ownership="none">
+            <type name="ScrollSource" c:type="ClutterScrollSource"/>
+          </parameter>
+          <parameter name="finish_flags" transfer-ownership="none">
+            <type name="ScrollFinishFlags" c:type="ClutterScrollFinishFlags"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_touch_down" invoker="notify_touch_down">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="92"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_touch_motion" invoker="notify_touch_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="98"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="notify_touch_up" invoker="notify_touch_up">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_device_type"
+              c:identifier="clutter_virtual_input_device_get_device_type">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="173"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="notify_absolute_motion"
+              c:identifier="clutter_virtual_input_device_notify_absolute_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="116"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_button"
+              c:identifier="clutter_virtual_input_device_notify_button">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="122"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="button_state" transfer-ownership="none">
+            <type name="ButtonState" c:type="ClutterButtonState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_discrete_scroll"
+              c:identifier="clutter_virtual_input_device_notify_discrete_scroll">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="140"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+          </parameter>
+          <parameter name="scroll_source" transfer-ownership="none">
+            <type name="ScrollSource" c:type="ClutterScrollSource"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_key"
+              c:identifier="clutter_virtual_input_device_notify_key">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="128"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="key" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="key_state" transfer-ownership="none">
+            <type name="KeyState" c:type="ClutterKeyState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_keyval"
+              c:identifier="clutter_virtual_input_device_notify_keyval">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="134"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+          <parameter name="key_state" transfer-ownership="none">
+            <type name="KeyState" c:type="ClutterKeyState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_relative_motion"
+              c:identifier="clutter_virtual_input_device_notify_relative_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="110"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_scroll_continuous"
+              c:identifier="clutter_virtual_input_device_notify_scroll_continuous">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="146"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="dx" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="scroll_source" transfer-ownership="none">
+            <type name="ScrollSource" c:type="ClutterScrollSource"/>
+          </parameter>
+          <parameter name="finish_flags" transfer-ownership="none">
+            <type name="ScrollFinishFlags" c:type="ClutterScrollFinishFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_touch_down"
+              c:identifier="clutter_virtual_input_device_notify_touch_down">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="154"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_touch_motion"
+              c:identifier="clutter_virtual_input_device_notify_touch_motion">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="161"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="notify_touch_up"
+              c:identifier="clutter_virtual_input_device_notify_touch_up">
+        <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                         line="168"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="virtual_device" transfer-ownership="none">
+            <type name="VirtualInputDevice"
+                  c:type="ClutterVirtualInputDevice*"/>
+          </instance-parameter>
+          <parameter name="time_us" transfer-ownership="none">
+            <type name="guint64" c:type="uint64_t"/>
+          </parameter>
+          <parameter name="slot" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="device-type"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="InputDeviceType"/>
+      </property>
+      <property name="seat"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Seat"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="VirtualInputDeviceClass"
+            c:type="ClutterVirtualInputDeviceClass"
+            glib:is-gtype-struct-for="VirtualInputDevice">
+      <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                       line="107"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="notify_relative_motion">
+        <callback name="notify_relative_motion">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="56"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="dx" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="dy" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_absolute_motion">
+        <callback name="notify_absolute_motion">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="61"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_button">
+        <callback name="notify_button">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="66"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="button" transfer-ownership="none">
+              <type name="guint32" c:type="uint32_t"/>
+            </parameter>
+            <parameter name="button_state" transfer-ownership="none">
+              <type name="ButtonState" c:type="ClutterButtonState"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_key">
+        <callback name="notify_key">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="71"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="key" transfer-ownership="none">
+              <type name="guint32" c:type="uint32_t"/>
+            </parameter>
+            <parameter name="key_state" transfer-ownership="none">
+              <type name="KeyState" c:type="ClutterKeyState"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_keyval">
+        <callback name="notify_keyval">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="keyval" transfer-ownership="none">
+              <type name="guint32" c:type="uint32_t"/>
+            </parameter>
+            <parameter name="key_state" transfer-ownership="none">
+              <type name="KeyState" c:type="ClutterKeyState"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_discrete_scroll">
+        <callback name="notify_discrete_scroll">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+            </parameter>
+            <parameter name="scroll_source" transfer-ownership="none">
+              <type name="ScrollSource" c:type="ClutterScrollSource"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_scroll_continuous">
+        <callback name="notify_scroll_continuous">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="85"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="dx" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="dy" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="scroll_source" transfer-ownership="none">
+              <type name="ScrollSource" c:type="ClutterScrollSource"/>
+            </parameter>
+            <parameter name="finish_flags" transfer-ownership="none">
+              <type name="ScrollFinishFlags"
+                    c:type="ClutterScrollFinishFlags"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_touch_down">
+        <callback name="notify_touch_down">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="slot" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_touch_motion">
+        <callback name="notify_touch_motion">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="98"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="slot" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gdouble" c:type="double"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="notify_touch_up">
+        <callback name="notify_touch_up">
+          <source-position filename="../clutter/clutter/clutter-virtual-input-device.h"
+                           line="104"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="virtual_device" transfer-ownership="none">
+              <type name="VirtualInputDevice"
+                    c:type="ClutterVirtualInputDevice*"/>
+            </parameter>
+            <parameter name="time_us" transfer-ownership="none">
+              <type name="guint64" c:type="uint64_t"/>
+            </parameter>
+            <parameter name="slot" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="WINDOWING_EGL"
+              value="eglnative"
+              c:type="CLUTTER_WINDOWING_EGL">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="16"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="WINDOWING_GLX" value="glx" c:type="CLUTTER_WINDOWING_GLX">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="15"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="WINDOWING_X11" value="x11" c:type="CLUTTER_WINDOWING_X11">
+      <source-position filename="../clutter/clutter/clutter-config.h"
+                       line="13"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="ZOOM_ACTION"
+                    c:identifier="CLUTTER_ZOOM_ACTION"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="39"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ZOOM_ACTION_CLASS"
+                    c:identifier="CLUTTER_ZOOM_ACTION_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="41"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ZOOM_ACTION_GET_CLASS"
+                    c:identifier="CLUTTER_ZOOM_ACTION_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="43"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="ZoomAction"
+           c:symbol-prefix="zoom_action"
+           c:type="ClutterZoomAction"
+           version="1.12"
+           parent="GestureAction"
+           glib:type-name="ClutterZoomAction"
+           glib:get-type="clutter_zoom_action_get_type"
+           glib:type-struct="ZoomActionClass">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-zoom-action.h"
+           line="49">The #ClutterZoomAction structure contains only
+private data and should be accessed using the provided API</doc>
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="91"/>
+      <constructor name="new"
+                   c:identifier="clutter_zoom_action_new"
+                   version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="419">Creates a new #ClutterZoomAction instance</doc>
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="97"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-zoom-action.c"
+               line="424">the newly created #ClutterZoomAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="zoom">
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="focal_point" transfer-ownership="none">
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_focal_point"
+              c:identifier="clutter_zoom_action_get_focal_point"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="478">Retrieves the focal point of the current zoom</doc>
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="480">a #ClutterZoomAction</doc>
+            <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+          </instance-parameter>
+          <parameter name="point"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="481">a #graphene_point_t</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_focal_point"
+              c:identifier="clutter_zoom_action_get_transformed_focal_point"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="497">Retrieves the focal point relative to the actor's coordinates of
+the current zoom</doc>
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="499">a #ClutterZoomAction</doc>
+            <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+          </instance-parameter>
+          <parameter name="point"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="500">a #graphene_point_t</doc>
+            <type name="Graphene.Point" c:type="graphene_point_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_zoom_axis"
+              c:identifier="clutter_zoom_action_get_zoom_axis"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="459">Retrieves the axis constraint set by clutter_zoom_action_set_zoom_axis()</doc>
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-zoom-action.c"
+               line="465">the axis constraint</doc>
+          <type name="ZoomAxis" c:type="ClutterZoomAxis"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="461">a #ClutterZoomAction</doc>
+            <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_zoom_axis"
+              c:identifier="clutter_zoom_action_set_zoom_axis"
+              version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="434">Restricts the zooming action to a specific axis</doc>
+        <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                         line="100"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="action" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="436">a #ClutterZoomAction</doc>
+            <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+          </instance-parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="437">the axis to constraint the zooming to</doc>
+            <type name="ZoomAxis" c:type="ClutterZoomAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="zoom-axis"
+                version="1.12"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="354">Constraints the zooming action to the specified axis</doc>
+        <type name="ZoomAxis"/>
+      </property>
+      <field name="parent_instance" readable="0" private="1">
+        <type name="GestureAction" c:type="ClutterGestureAction"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ZoomActionPrivate" c:type="ClutterZoomActionPrivate*"/>
+      </field>
+      <glib:signal name="zoom" when="last" version="1.12">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-zoom-action.c"
+             line="373">The ::zoom signal is emitted for each series of touch events that
+change the distance and focal point between the touch points.
+
+The default handler of the signal will call
+clutter_actor_set_scale() on @actor using the ratio of the first
+distance between the touch points and the current distance. To
+override the default behaviour, connect to this signal and return
+%FALSE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-zoom-action.c"
+               line="389">%TRUE if the zoom should continue, and %FALSE if
+  the zoom should be cancelled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="376">the #ClutterActor attached to the action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="focal_point" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="377">the focal point of the zoom</doc>
+            <type name="Graphene.Point"/>
+          </parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../clutter/clutter/clutter-zoom-action.c"
+                 line="378">the initial distance between the 2 touch points</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ZoomActionClass"
+            c:type="ClutterZoomActionClass"
+            glib:is-gtype-struct-for="ZoomAction"
+            version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-zoom-action.h"
+           line="65">The #ClutterZoomActionClass structure contains
+only private data</doc>
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="91"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GestureActionClass" c:type="ClutterGestureActionClass"/>
+      </field>
+      <field name="zoom">
+        <callback name="zoom">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="80"/>
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="ZoomAction" c:type="ClutterZoomAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="focal_point" transfer-ownership="none">
+              <type name="Graphene.Point" c:type="graphene_point_t*"/>
+            </parameter>
+            <parameter name="factor" transfer-ownership="none">
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_zoom_action1" introspectable="0">
+        <callback name="_clutter_zoom_action1">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="86"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_zoom_action2" introspectable="0">
+        <callback name="_clutter_zoom_action2">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="87"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_zoom_action3" introspectable="0">
+        <callback name="_clutter_zoom_action3">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="88"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_zoom_action4" introspectable="0">
+        <callback name="_clutter_zoom_action4">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="89"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_zoom_action5" introspectable="0">
+        <callback name="_clutter_zoom_action5">
+          <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                           line="90"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ZoomActionPrivate"
+            c:type="ClutterZoomActionPrivate"
+            disguised="1">
+      <source-position filename="../clutter/clutter/clutter-zoom-action.h"
+                       line="46"/>
+    </record>
+    <enumeration name="ZoomAxis"
+                 version="1.12"
+                 glib:type-name="ClutterZoomAxis"
+                 glib:get-type="clutter_zoom_axis_get_type"
+                 c:type="ClutterZoomAxis">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-enums.h"
+           line="1484">The axis of the constraint that should be applied by the
+zooming action.</doc>
+      <member name="x_axis"
+              value="0"
+              c:identifier="CLUTTER_ZOOM_X_AXIS"
+              glib:nick="x-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1486">Scale only on the X axis</doc>
+      </member>
+      <member name="y_axis"
+              value="1"
+              c:identifier="CLUTTER_ZOOM_Y_AXIS"
+              glib:nick="y-axis">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1487">Scale only on the Y axis</doc>
+      </member>
+      <member name="both"
+              value="2"
+              c:identifier="CLUTTER_ZOOM_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-enums.h"
+             line="1488">Scale on both axis</doc>
+      </member>
+    </enumeration>
+    <function name="actor_box_alloc"
+              c:identifier="clutter_actor_box_alloc"
+              moved-to="ActorBox.alloc"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor-box.c"
+           line="44">Allocates a new #ClutterActorBox.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="200"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-actor-box.c"
+             line="49">the newly allocated #ClutterActorBox.
+  Use clutter_actor_box_free() to free its resources</doc>
+        <type name="ActorBox" c:type="ClutterActorBox*"/>
+      </return-value>
+    </function>
+    <function name="add_debug_flags"
+              c:identifier="clutter_add_debug_flags"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2338">Adds the debug flags passed to the list of debug flags.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="190"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="debug_flags" transfer-ownership="none">
+          <type name="DebugFlag" c:type="ClutterDebugFlag"/>
+        </parameter>
+        <parameter name="draw_flags" transfer-ownership="none">
+          <type name="DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
+        </parameter>
+        <parameter name="pick_flags" transfer-ownership="none">
+          <type name="PickDebugFlag" c:type="ClutterPickDebugFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base_init" c:identifier="clutter_base_init">
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="122"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="cairo_clear"
+              c:identifier="clutter_cairo_clear"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-cairo.c"
+           line="73">Utility function to clear a Cairo context.</doc>
+      <source-position filename="../clutter/clutter/clutter-cairo.h"
+                       line="54"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cr" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-cairo.c"
+               line="75">a Cairo context</doc>
+          <type name="cairo.Context" c:type="cairo_t*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cairo_set_source_color"
+              c:identifier="clutter_cairo_set_source_color"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-cairo.c"
+           line="35">Utility function for setting the source color of @cr using
+a #ClutterColor. This function is the equivalent of:
+
+|[
+  cairo_set_source_rgba (cr,
+                         color-&gt;red / 255.0,
+                         color-&gt;green / 255.0,
+                         color-&gt;blue / 255.0,
+                         color-&gt;alpha / 255.0);
+]|</doc>
+      <source-position filename="../clutter/clutter/clutter-cairo.h"
+                       line="56"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cr" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-cairo.c"
+               line="37">a Cairo context</doc>
+          <type name="cairo.Context" c:type="cairo_t*"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-cairo.c"
+               line="38">a #ClutterColor</doc>
+          <type name="Color" c:type="const ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="clutter-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-action.c"
+           line="25">#ClutterAction is an abstract base class for event-related actions that
+modify the user interaction of a #ClutterActor, just like
+#ClutterConstraint is an abstract class for modifiers of an actor's
+position or size.
+
+Implementations of #ClutterAction are associated to an actor and can
+provide behavioral changes when dealing with user input - for instance
+drag and drop capabilities, or scrolling, or panning - by using the
+various event-related signals provided by #ClutterActor itself.
+
+#ClutterAction is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-actor">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor.c"
+           line="25">The ClutterActor class is the basic element of the scene graph in Clutter,
+and it encapsulates the position, size, and transformations of a node in
+the graph.
+
+## Actor transformations ## {#clutter-actor-transformations}
+
+Each actor can be transformed using methods like clutter_actor_set_scale()
+or clutter_actor_set_rotation(). The order in which the transformations are
+applied is decided by Clutter and it is the following:
+
+ 1. translation by the origin of the #ClutterActor:allocation property
+ 2. translation by the actor's #ClutterActor:z-position property
+ 3. translation by the actor's #ClutterActor:pivot-point property
+ 4. scaling by the #ClutterActor:scale-x and #ClutterActor:scale-y factors
+ 5. rotation around the #ClutterActor:rotation-angle-x and #ClutterActor:rotation-center-x
+ 6. rotation around the #ClutterActor:rotation-angle-y and #ClutterActor:rotation-center-y
+ 7. rotation around the #ClutterActor:rotation-angle-z and #ClutterActor:rotation-center-z
+ 8. negative translation by the actor's #ClutterActor:pivot-point
+
+## Modifying an actor's geometry ## {#clutter-actor-geometry}
+
+Each actor has a bounding box, called #ClutterActor:allocation
+which is either set by its parent or explicitly through the
+clutter_actor_set_position() and clutter_actor_set_size() methods.
+Each actor also has an implicit preferred size.
+
+An actor’s preferred size can be defined by any subclass by
+overriding the #ClutterActorClass.get_preferred_width() and the
+#ClutterActorClass.get_preferred_height() virtual functions, or it can
+be explicitly set by using clutter_actor_set_width() and
+clutter_actor_set_height().
+
+An actor’s position can be set explicitly by using
+clutter_actor_set_x() and clutter_actor_set_y(); the coordinates are
+relative to the origin of the actor’s parent.
+
+## Managing actor children ## {#clutter-actor-children}
+
+Each actor can have multiple children, by calling
+clutter_actor_add_child() to add a new child actor, and
+clutter_actor_remove_child() to remove an existing child. #ClutterActor
+will hold a reference on each child actor, which will be released when
+the child is removed from its parent, or destroyed using
+clutter_actor_destroy().
+
+|[&lt;!-- language="C" --&gt;
+ ClutterActor *actor = clutter_actor_new ();
+
+ // set the bounding box of the actor
+ clutter_actor_set_position (actor, 0, 0);
+ clutter_actor_set_size (actor, 480, 640);
+
+ // set the background color of the actor
+ clutter_actor_set_background_color (actor, CLUTTER_COLOR_Orange);
+
+ // set the bounding box of the child, relative to the parent
+ ClutterActor *child = clutter_actor_new ();
+ clutter_actor_set_position (child, 20, 20);
+ clutter_actor_set_size (child, 80, 240);
+
+ // set the background color of the child
+ clutter_actor_set_background_color (child, CLUTTER_COLOR_Blue);
+
+ // add the child to the actor
+ clutter_actor_add_child (actor, child);
+]|
+
+Children can be inserted at a given index, or above and below
+another child actor. The order of insertion determines the order of the
+children when iterating over them. Iterating over children is performed
+by using clutter_actor_get_first_child(), clutter_actor_get_previous_sibling(),
+clutter_actor_get_next_sibling(), and clutter_actor_get_last_child(). It is
+also possible to retrieve a list of children by using
+clutter_actor_get_children(), as well as retrieving a specific child at a
+given index by using clutter_actor_get_child_at_index().
+
+If you need to track additions of children to a #ClutterActor, use
+the #ClutterContainer::actor-added signal; similarly, to track removals
+of children from a ClutterActor, use the #ClutterContainer::actor-removed
+signal.
+
+See [basic-actor.c](https://git.gnome.org/browse/clutter/tree/examples/basic-actor.c?h=clutter-1.18).
+
+## Painting an actor ## {#clutter-actor-painting}
+
+There are three ways to paint an actor:
+
+ - set a delegate #ClutterContent as the value for the #ClutterActor:content property of the actor
+ - subclass #ClutterActor and override the #ClutterActorClass.paint_node() virtual function
+ - subclass #ClutterActor and override the #ClutterActorClass.paint() virtual function.
+
+A #ClutterContent is a delegate object that takes over the painting
+operations of one, or more actors. The #ClutterContent painting will
+be performed on top of the #ClutterActor:background-color of the actor,
+and before calling the actor's own implementation of the
+#ClutterActorClass.paint_node() virtual function.
+
+|[&lt;!-- language="C" --&gt;
+ClutterActor *actor = clutter_actor_new ();
+
+// set the bounding box
+clutter_actor_set_position (actor, 50, 50);
+clutter_actor_set_size (actor, 100, 100);
+
+// set the content; the image_content variable is set elsewhere
+clutter_actor_set_content (actor, image_content);
+]|
+
+The #ClutterActorClass.paint_node() virtual function is invoked whenever
+an actor needs to be painted. The implementation of the virtual function
+must only paint the contents of the actor itself, and not the contents of
+its children, if the actor has any.
+
+The #ClutterPaintNode passed to the virtual function is the local root of
+the render tree; any node added to it will be rendered at the correct
+position, as defined by the actor's #ClutterActor:allocation.
+
+|[&lt;!-- language="C" --&gt;
+static void
+my_actor_paint_node (ClutterActor     *actor,
+                     ClutterPaintNode *root)
+{
+  ClutterPaintNode *node;
+  ClutterActorBox box;
+
+  // where the content of the actor should be painted
+  clutter_actor_get_allocation_box (actor, &amp;box);
+
+  // the cogl_texture variable is set elsewhere
+  node = clutter_texture_node_new (cogl_texture, CLUTTER_COLOR_White,
+                                   CLUTTER_SCALING_FILTER_TRILINEAR,
+                                   CLUTTER_SCALING_FILTER_LINEAR);
+
+  // paint the content of the node using the allocation
+  clutter_paint_node_add_rectangle (node, &amp;box);
+
+  // add the node, and transfer ownership
+  clutter_paint_node_add_child (root, node);
+  clutter_paint_node_unref (node);
+}
+
+The #ClutterActorClass.paint() virtual function is invoked when the
+#ClutterActor::paint signal is emitted, and after the other signal
+handlers have been invoked. Overriding the paint virtual function
+gives total control to the paint sequence of the actor itself,
+including the children of the actor, if any.
+
+It is strongly discouraged to override the #ClutterActorClass.paint()
+virtual function, as well as connecting to the #ClutterActor::paint
+signal. These hooks into the paint sequence are considered legacy, and
+will be removed when the Clutter API changes.
+
+## Handling events on an actor ## {#clutter-actor-event-handling}
+
+A #ClutterActor can receive and handle input device events, for
+instance pointer events and key events, as long as its
+#ClutterActor:reactive property is set to %TRUE.
+
+Once an actor has been determined to be the source of an event,
+Clutter will traverse the scene graph from the top-level actor towards the
+event source, emitting the #ClutterActor::captured-event signal on each
+ancestor until it reaches the source; this phase is also called
+the "capture" phase. If the event propagation was not stopped, the graph
+is walked backwards, from the source actor to the top-level, and the
+#ClutterActor::event signal is emitted, alongside eventual event-specific
+signals like #ClutterActor::button-press-event or #ClutterActor::motion-event;
+this phase is also called the "bubble" phase.
+
+At any point of the signal emission, signal handlers can stop the propagation
+through the scene graph by returning %CLUTTER_EVENT_STOP; otherwise, they can
+continue the propagation by returning %CLUTTER_EVENT_PROPAGATE.
+
+## Animation ## {#clutter-actor-animation}
+
+Animation is a core concept of modern user interfaces; Clutter provides a
+complete and powerful animation framework that automatically tweens the
+actor's state without requiring direct, frame by frame manipulation from
+your application code. You have two models at your disposal:
+
+ - an implicit animation model
+ - an explicit animation model
+
+The implicit animation model of Clutter assumes that all the
+changes in an actor state should be gradual and asynchronous; Clutter
+will automatically transition an actor's property change between the
+current state and the desired one without manual intervention, if the
+property is defined to be animatable in its documentation.
+
+By default, in the 1.0 API series, the transition happens with a duration
+of zero milliseconds, and the implicit animation is an opt in feature to
+retain backwards compatibility.
+
+Implicit animations depend on the current easing state; in order to use
+the default easing state for an actor you should call the
+clutter_actor_save_easing_state() function:
+
+|[&lt;!-- language="C" --&gt;
+// assume that the actor is currently positioned at (100, 100)
+
+// store the current easing state and reset the new easing state to
+// its default values
+clutter_actor_save_easing_state (actor);
+
+// change the actor's position
+clutter_actor_set_position (actor, 500, 500);
+
+// restore the previously saved easing state
+clutter_actor_restore_easing_state (actor);
+]|
+
+The example above will trigger an implicit animation of the
+actor between its current position to a new position.
+
+Implicit animations use a default duration of 250 milliseconds,
+and a default easing mode of %CLUTTER_EASE_OUT_CUBIC, unless you call
+clutter_actor_set_easing_mode() and clutter_actor_set_easing_duration()
+after changing the easing state of the actor.
+
+It is possible to animate multiple properties of an actor
+at the same time, and you can animate multiple actors at the same
+time as well, for instance:
+
+|[&lt;!-- language="C" --&gt;
+clutter_actor_save_easing_state (actor);
+
+// animate the actor's opacity and depth
+clutter_actor_set_opacity (actor, 0);
+clutter_actor_set_z_position (actor, -100);
+
+clutter_actor_restore_easing_state (actor);
+
+clutter_actor_save_easing_state (another_actor);
+
+// animate another actor's opacity
+clutter_actor_set_opacity (another_actor, 255);
+clutter_actor_set_z_position (another_actor, 100);
+
+clutter_actor_restore_easing_state (another_actor);
+]|
+
+Changing the easing state will affect all the following property
+transitions, but will not affect existing transitions.
+
+It is important to note that if you modify the state on an
+animatable property while a transition is in flight, the transition's
+final value will be updated, as well as its duration and progress
+mode by using the current easing state; for instance, in the following
+example:
+
+|[&lt;!-- language="C" --&gt;
+clutter_actor_save_easing_state (actor);
+clutter_actor_set_easing_duration (actor, 1000);
+clutter_actor_set_x (actor, 200);
+clutter_actor_restore_easing_state (actor);
+
+clutter_actor_save_easing_state (actor);
+clutter_actor_set_easing_duration (actor, 500);
+clutter_actor_set_x (actor, 100);
+clutter_actor_restore_easing_state (actor);
+]|
+
+the first call to clutter_actor_set_x() will begin a transition
+of the #ClutterActor:x property from the current value to the value of
+200 over a duration of one second; the second call to clutter_actor_set_x()
+will change the transition's final value to 100 and the duration to 500
+milliseconds.
+
+It is possible to receive a notification of the completion of an
+implicit transition by using the #ClutterActor::transition-stopped
+signal, decorated with the name of the property. In case you want to
+know when all the currently in flight transitions are complete, use
+the #ClutterActor::transitions-completed signal instead.
+
+It is possible to retrieve the #ClutterTransition used by the
+animatable properties by using clutter_actor_get_transition() and using
+the property name as the transition name.
+
+The explicit animation model supported by Clutter requires that
+you create a #ClutterTransition object, and optionally set the initial
+and final values. The transition will not start unless you add it to the
+#ClutterActor.
+
+|[&lt;!-- language="C" --&gt;
+ClutterTransition *transition;
+
+transition = clutter_property_transition_new_for_actor (actor, "opacity");
+clutter_timeline_set_duration (CLUTTER_TIMELINE (transition), 3000);
+clutter_timeline_set_repeat_count (CLUTTER_TIMELINE (transition), 2);
+clutter_timeline_set_auto_reverse (CLUTTER_TIMELINE (transition), TRUE);
+clutter_transition_set_from (transition, G_TYPE_UINT, 255);
+clutter_transition_set_to (transition, G_TYPE_UINT, 0);
+
+clutter_actor_add_transition (actor, "animate-opacity", transition);
+]|
+
+The example above will animate the #ClutterActor:opacity property
+of an actor between fully opaque and fully transparent, and back, over
+a span of 3 seconds. The animation does not begin until it is added to
+the actor.
+
+The explicit animation API applies to all #GObject properties,
+as well as the custom properties defined through the #ClutterAnimatable
+interface, regardless of whether they are defined as implicitly
+animatable or not.
+
+The explicit animation API should also be used when using custom
+animatable properties for #ClutterAction, #ClutterConstraint, and
+#ClutterEffect instances associated to an actor; see the section on
+custom animatable properties below for an example.
+
+Finally, explicit animations are useful for creating animations
+that run continuously, for instance:
+
+|[&lt;!-- language="C" --&gt;
+// this animation will pulse the actor's opacity continuously
+ClutterTransition *transition;
+ClutterInterval *interval;
+
+transition = clutter_property_transition_new_for_actor (actor, "opacity");
+
+// we want to animate the opacity between 0 and 255
+clutter_transition_set_from (transition, G_TYPE_UINT, 0);
+clutter_transition_set_to (transition, G_TYPE_UINT, 255);
+
+// over a one second duration, running an infinite amount of times
+clutter_timeline_set_duration (CLUTTER_TIMELINE (transition), 1000);
+clutter_timeline_set_repeat_count (CLUTTER_TIMELINE (transition), -1);
+
+// we want to fade in and out, so we need to auto-reverse the transition
+clutter_timeline_set_auto_reverse (CLUTTER_TIMELINE (transition), TRUE);
+
+// and we want to use an easing function that eases both in and out
+clutter_timeline_set_progress_mode (CLUTTER_TIMELINE (transition),
+                                    CLUTTER_EASE_IN_OUT_CUBIC);
+
+// add the transition to the desired actor to start it
+clutter_actor_add_transition (actor, "opacityAnimation", transition);
+]|
+
+## Implementing an actor ## {#clutter-actor-implementing}
+
+Careful consideration should be given when deciding to implement
+a #ClutterActor sub-class. It is generally recommended to implement a
+sub-class of #ClutterActor only for actors that should be used as leaf
+nodes of a scene graph.
+
+If your actor should be painted in a custom way, you should
+override the #ClutterActor::paint signal class handler. You can either
+opt to chain up to the parent class implementation or decide to fully
+override the default paint implementation; Clutter will set up the
+transformations and clip regions prior to emitting the #ClutterActor::paint
+signal.
+
+By overriding the #ClutterActorClass.get_preferred_width() and
+#ClutterActorClass.get_preferred_height() virtual functions it is
+possible to change or provide the preferred size of an actor; similarly,
+by overriding the #ClutterActorClass.allocate() virtual function it is
+possible to control the layout of the children of an actor. Make sure to
+always chain up to the parent implementation of the
+#ClutterActorClass.allocate() virtual function.
+
+In general, it is strongly encouraged to use delegation and composition
+instead of direct subclassing.
+
+## ClutterActor custom properties for ClutterScript ## {#clutter-actor-custom-script}
+
+#ClutterActor defines a custom "rotation" property which allows a short-hand
+description of the rotations to be applied to an actor.
+
+The syntax of the "rotation" property is the following:
+
+|[
+"rotation" : [ { "&lt;axis&gt;" : [ &lt;angle&gt;, [ &lt;center-point&gt; ] ] } ]
+]|
+
+where:
+
+ - axis is the name of an enumeration value of type #ClutterRotateAxis
+ - angle is a floating point value representing the rotation angle on the given axis in degrees
+ - center-point is an optional array, and if present it must contain the center of rotation as described by 
two coordinates:
+   - Y and Z for "x-axis"
+   - X and Z for "y-axis"
+   - X and Y for "z-axis".
+
+#ClutterActor also defines a scriptable "margin" property which follows the CSS "margin" shorthand.
+
+|[
+  // 4 values
+  "margin" : [ top, right, bottom, left ]
+  // 3 values
+  "margin" : [ top, left/right, bottom ]
+  // 2 values
+  "margin" : [ top/bottom, left/right ]
+  // 1 value
+  "margin" : [ top/right/bottom/left ]
+]|
+
+#ClutterActor will also parse every positional and dimensional
+property defined as a string through clutter_units_from_string(); you
+should read the documentation for the #ClutterUnits parser format for
+the valid units and syntax.
+
+## Custom animatable properties
+
+#ClutterActor allows accessing properties of #ClutterAction,
+#ClutterEffect, and #ClutterConstraint instances associated to an actor
+instance for animation purposes, as well as its #ClutterLayoutManager.
+
+In order to access a specific #ClutterAction or a #ClutterConstraint
+property it is necessary to set the #ClutterActorMeta:name property on the
+given action or constraint.
+
+The property can be accessed using the following syntax:
+
+|[
+  @&lt;section&gt;.&lt;meta-name&gt;.&lt;property-name&gt;
+]|
+
+ - the initial `@` is mandatory
+ - the `section` fragment can be one between "actions", "constraints", "content",
+   and "effects"
+ - the `meta-name` fragment is the name of the action, effect, or constraint, as
+   specified by the #ClutterActorMeta:name property of #ClutterActorMeta
+ - the `property-name` fragment is the name of the action, effect, or constraint
+   property to be animated.
+
+The example below animates a #ClutterBindConstraint applied to an actor
+using an explicit transition. The `rect` actor has a binding constraint
+on the `origin` actor, and in its initial state is overlapping the actor
+to which is bound to.
+
+As the actor has only one #ClutterLayoutManager, the syntax for accessing its
+properties is simpler:
+
+|[
+  @layout.&lt;property-name&gt;
+]|
+
+|[&lt;!-- language="C" --&gt;
+constraint = clutter_bind_constraint_new (origin, CLUTTER_BIND_X, 0.0);
+clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), "bind-x");
+clutter_actor_add_constraint (rect, constraint);
+
+constraint = clutter_bind_constraint_new (origin, CLUTTER_BIND_Y, 0.0);
+clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), "bind-y");
+clutter_actor_add_constraint (rect, constraint);
+
+clutter_actor_set_reactive (origin, TRUE);
+
+g_signal_connect (origin, "button-press-event",
+                  G_CALLBACK (on_button_press),
+                  rect);
+]|
+
+On button press, the rectangle "slides" from behind the actor to
+which is bound to, using the #ClutterBindConstraint:offset property to
+achieve the effect:
+
+|[&lt;!-- language="C" --&gt;
+gboolean
+on_button_press (ClutterActor *origin,
+                 ClutterEvent *event,
+                 ClutterActor *rect)
+{
+  ClutterTransition *transition;
+
+  // the offset that we want to apply; this will make the actor
+  // slide in from behind the origin and rest at the right of
+  // the origin, plus a padding value
+  float new_offset = clutter_actor_get_width (origin) + h_padding;
+
+  // the property we wish to animate; the "@constraints" section
+  // tells Clutter to check inside the constraints associated
+  // with the actor; the "bind-x" section is the name of the
+  // constraint; and the "offset" is the name of the property
+  // on the constraint
+  const char *prop = "@constraints.bind-x.offset";
+
+  // create a new transition for the given property
+  transition = clutter_property_transition_new_for_actor (rect, prop);
+
+  // set the easing mode and duration
+  clutter_timeline_set_progress_mode (CLUTTER_TIMELINE (transition),
+                                      CLUTTER_EASE_OUT_CUBIC);
+  clutter_timeline_set_duration (CLUTTER_TIMELINE (transition), 500);
+
+  // create the interval with the initial and final values
+  clutter_transition_set_from (transition, G_TYPE_FLOAT, 0.f);
+  clutter_transition_set_to (transition, G_TYPE_FLOAT, new_offset);
+
+  // add the transition to the actor; this causes the animation
+  // to start. the name "offsetAnimation" can be used to retrieve
+  // the transition later
+  clutter_actor_add_transition (rect, "offsetAnimation", transition);
+
+  // we handled the event
+  return CLUTTER_EVENT_STOP;
+}
+]|</doc>
+    </docsection>
+    <docsection name="clutter-actor-meta">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-actor-meta.c"
+           line="25">#ClutterActorMeta is an abstract class providing a common API for
+modifiers of #ClutterActor behaviour, appearance or layout.
+
+A #ClutterActorMeta can only be owned by a single #ClutterActor at
+any time.
+
+Every sub-class of #ClutterActorMeta should check if the
+#ClutterActorMeta:enabled property is set to %TRUE before applying
+any kind of modification.
+
+#ClutterActorMeta is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-align-constraint">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-align-constraint.c"
+           line="25">#ClutterAlignConstraint is a #ClutterConstraint that aligns the position
+of the #ClutterActor to which it is applied to the size of another
+#ClutterActor using an alignment factor
+
+#ClutterAlignConstraint is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-animatable">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-animatable.c"
+           line="25">#ClutterAnimatable is an interface that allows a #GObject class
+to control how an actor will animate a property.
+
+Each #ClutterAnimatable should implement the
+#ClutterAnimatableInterface.interpolate_property() virtual function of the
+interface to compute the animation state between two values of an interval
+depending on a progress factor, expressed as a floating point value.
+
+#ClutterAnimatable is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-backend">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-backend.c"
+           line="27">Clutter can be compiled against different backends. Each backend
+has to implement a set of functions, in order to be used by Clutter.
+
+#ClutterBackend is the base class abstracting the various implementation;
+it provides a basic API to query the backend for generic information
+and settings.
+
+#ClutterBackend is available since Clutter 0.4</doc>
+    </docsection>
+    <docsection name="clutter-bin-layout">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-bin-layout.c"
+           line="25">#ClutterBinLayout is a layout manager which implements the following
+policy:
+
+  - the preferred size is the maximum preferred size
+  between all the children of the container using the
+  layout;
+  - each child is allocated in "layers", on on top
+  of the other;
+  - for each layer there are horizontal and vertical
+  alignment policies.
+
+The [bin-layout example](https://git.gnome.org/browse/clutter/tree/examples/bin-layout.c?h=clutter-1.18)
+shows how to pack actors inside a #ClutterBinLayout.
+
+#ClutterBinLayout is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-bind-constraint">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-bind-constraint.c"
+           line="25">#ClutterBindConstraint is a #ClutterConstraint that binds the
+position or the size of the #ClutterActor to which it is applied
+to the the position or the size of another #ClutterActor, or
+"source".
+
+An offset can be applied to the constraint, to avoid overlapping. The offset
+can also be animated. For instance, the following code will set up three
+actors to be bound to the same origin:
+
+|[&lt;!-- language="C" --&gt;
+// source
+rect[0] = clutter_actor_new ();
+clutter_actor_set_background_color (rect[0], &amp;red_color);
+clutter_actor_set_position (rect[0], x_pos, y_pos);
+clutter_actor_set_size (rect[0], 100, 100);
+
+// second rectangle
+rect[1] = clutter_actor_new ();
+clutter_actor_set_background_color (rect[1], &amp;green_color);
+clutter_actor_set_size (rect[1], 100, 100);
+clutter_actor_set_opacity (rect[1], 0);
+
+constraint = clutter_bind_constraint_new (rect[0], CLUTTER_BIND_X, 0.0);
+clutter_actor_add_constraint_with_name (rect[1], "green-x", constraint);
+constraint = clutter_bind_constraint_new (rect[0], CLUTTER_BIND_Y, 0.0);
+clutter_actor_add_constraint_with_name (rect[1], "green-y", constraint);
+
+// third rectangle
+rect[2] = clutter_actor_new ();
+clutter_actor_set_background_color (rect[2], &amp;blue_color);
+clutter_actor_set_size (rect[2], 100, 100);
+clutter_actor_set_opacity (rect[2], 0);
+
+constraint = clutter_bind_constraint_new (rect[0], CLUTTER_BIND_X, 0.0);
+clutter_actor_add_constraint_with_name (rect[2], "blue-x", constraint);
+constraint = clutter_bind_constraint_new (rect[0], CLUTTER_BIND_Y, 0.0);
+clutter_actor_add_constraint_with_name (rect[2], "blue-y", constraint);
+]|
+
+The following code animates the second and third rectangles to "expand"
+them horizontally from underneath the first rectangle:
+
+|[&lt;!-- language="C" --&gt;
+clutter_actor_animate (rect[1], CLUTTER_EASE_OUT_CUBIC, 250,
+                       "@constraints.green-x.offset", 100.0,
+                       "opacity", 255,
+                       NULL);
+clutter_actor_animate (rect[2], CLUTTER_EASE_OUT_CUBIC, 250,
+                       "@constraints.blue-x.offset", 200.0,
+                       "opacity", 255,
+                       NULL);
+]|
+
+#ClutterBindConstraint is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-binding-pool">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-binding-pool.c"
+           line="24">#ClutterBindingPool is a data structure holding a set of key bindings.
+Each key binding associates a key symbol (eventually with modifiers)
+to an action. A callback function is associated to each action.
+
+For a given key symbol and modifier mask combination there can be only one
+action; for each action there can be only one callback. There can be
+multiple actions with the same name, and the same callback can be used
+to handle multiple key bindings.
+
+Actors requiring key bindings should create a new #ClutterBindingPool
+inside their class initialization function and then install actions
+like this:
+
+|[&lt;!-- language="C" --&gt;
+static void
+foo_class_init (FooClass *klass)
+{
+  ClutterBindingPool *binding_pool;
+
+  binding_pool = clutter_binding_pool_get_for_class (klass);
+
+  clutter_binding_pool_install_action (binding_pool, "move-up",
+                                       CLUTTER_Up, 0,
+                                       G_CALLBACK (foo_action_move_up),
+                                       NULL, NULL);
+  clutter_binding_pool_install_action (binding_pool, "move-up",
+                                       CLUTTER_KP_Up, 0,
+                                       G_CALLBACK (foo_action_move_up),
+                                       NULL, NULL);
+}
+]|
+
+The callback has a signature of:
+
+|[&lt;!-- language="C" --&gt;
+   gboolean (* callback) (GObject             *instance,
+                          const gchar         *action_name,
+                          guint                key_val,
+                          ClutterModifierType  modifiers,
+                          gpointer             user_data);
+]|
+
+The actor should then override the #ClutterActor::key-press-event and
+use clutter_binding_pool_activate() to match a #ClutterKeyEvent structure
+to one of the actions:
+
+|[&lt;!-- language="C" --&gt;
+  ClutterBindingPool *pool;
+
+  // retrieve the binding pool for the type of the actor
+  pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (actor));
+
+  // activate any callback matching the key symbol and modifiers
+  // mask of the key event. the returned value can be directly
+  // used to signal that the actor has handled the event.
+  return clutter_binding_pool_activate (pool,
+                                        key_event-&gt;keyval,
+                                        key_event-&gt;modifier_state,
+                                        G_OBJECT (actor));
+]|
+
+The clutter_binding_pool_activate() function will return %FALSE if
+no action for the given key binding was found, if the action was
+blocked (using clutter_binding_pool_block_action()) or if the
+key binding handler returned %FALSE.
+
+#ClutterBindingPool is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-blur-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-blur-effect.c"
+           line="25">#ClutterBlurEffect is a sub-class of #ClutterEffect that allows blurring a
+actor and its contents.
+
+#ClutterBlurEffect is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-box-layout">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-box-layout.c"
+           line="28">The #ClutterBoxLayout is a #ClutterLayoutManager implementing the
+following layout policy:
+
+ - all children are arranged on a single line
+ - the axis used is controlled by the #ClutterBoxLayout:orientation property
+ - the order of the packing is determined by the #ClutterBoxLayout:pack-start boolean property
+ - each child will be allocated to its natural size or, if #ClutterActor:x-expand or
+ #ClutterActor:y-expand are set, the available size
+ - honours the #ClutterActor's #ClutterActor:x-align and #ClutterActor:y-align properties
+ to fill the available size
+ - if the #ClutterBoxLayout:homogeneous boolean property is set, then all widgets will
+ get the same size, ignoring expand settings and the preferred sizes
+
+It is possible to control the spacing between children of a
+#ClutterBoxLayout by using clutter_box_layout_set_spacing().
+
+#ClutterBoxLayout is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-brightness-contrast-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-brightness-contrast-effect.c"
+           line="25">#ClutterBrightnessContrastEffect is a sub-class of #ClutterEffect that
+changes the overall brightness of a #ClutterActor.
+
+#ClutterBrightnessContrastEffect is available since Clutter 1.10</doc>
+    </docsection>
+    <docsection name="clutter-cairo">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-cairo.c"
+           line="22">Clutter provides some utility functions for using Cairo.</doc>
+    </docsection>
+    <docsection name="clutter-canvas">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-canvas.c"
+           line="25">The #ClutterCanvas class is a #ClutterContent implementation that allows
+drawing using the Cairo API on a 2D surface.
+
+In order to draw on a #ClutterCanvas, you should connect a handler to the
+#ClutterCanvas::draw signal; the signal will receive a #cairo_t context
+that can be used to draw. #ClutterCanvas will emit the #ClutterCanvas::draw
+signal when invalidated using clutter_content_invalidate().
+
+See [canvas.c](https://git.gnome.org/browse/clutter/tree/examples/canvas.c?h=clutter-1.18)
+for an example of how to use #ClutterCanvas.
+
+#ClutterCanvas is available since Clutter 1.10.</doc>
+    </docsection>
+    <docsection name="clutter-child-meta">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-child-meta.c"
+           line="28">#ClutterChildMeta is a wrapper object created by #ClutterContainer
+implementations in order to store child-specific data and properties.
+
+A #ClutterChildMeta wraps a #ClutterActor inside a #ClutterContainer.
+
+#ClutterChildMeta is available since Clutter 0.8</doc>
+    </docsection>
+    <docsection name="clutter-click-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-click-action.c"
+           line="25">#ClutterClickAction is a sub-class of #ClutterAction that implements
+the logic for clickable actors, by using the low level events of
+#ClutterActor, such as #ClutterActor::button-press-event and
+#ClutterActor::button-release-event, to synthesize the high level
+#ClutterClickAction::clicked signal.
+
+To use #ClutterClickAction you just need to apply it to a #ClutterActor
+using clutter_actor_add_action() and connect to the
+#ClutterClickAction::clicked signal:
+
+|[
+  ClutterAction *action = clutter_click_action_new ();
+
+  clutter_actor_add_action (actor, action);
+
+  g_signal_connect (action, "clicked", G_CALLBACK (on_clicked), NULL);
+]|
+
+#ClutterClickAction also supports long press gestures: a long press is
+activated if the pointer remains pressed within a certain threshold (as
+defined by the #ClutterClickAction:long-press-threshold property) for a
+minimum amount of time (as the defined by the
+#ClutterClickAction:long-press-duration property).
+The #ClutterClickAction::long-press signal is emitted multiple times,
+using different #ClutterLongPressState values; to handle long presses
+you should connect to the #ClutterClickAction::long-press signal and
+handle the different states:
+
+|[
+  static gboolean
+  on_long_press (ClutterClickAction    *action,
+                 ClutterActor          *actor,
+                 ClutterLongPressState  state)
+  {
+    switch (state)
+      {
+      case CLUTTER_LONG_PRESS_QUERY:
+        /&amp;ast; return TRUE if the actor should support long press
+         &amp;ast; gestures, and FALSE otherwise; this state will be
+         &amp;ast; emitted on button presses
+         &amp;ast;/
+        return TRUE;
+
+      case CLUTTER_LONG_PRESS_ACTIVATE:
+        /&amp;ast; this state is emitted if the minimum duration has
+         &amp;ast; been reached without the gesture being cancelled.
+         &amp;ast; the return value is not used
+         &amp;ast;/
+        return TRUE;
+
+      case CLUTTER_LONG_PRESS_CANCEL:
+        /&amp;ast; this state is emitted if the long press was cancelled;
+         &amp;ast; for instance, the pointer went outside the actor or the
+         &amp;ast; allowed threshold, or the button was released before
+         &amp;ast; the minimum duration was reached. the return value is
+         &amp;ast; not used
+         &amp;ast;/
+        return FALSE;
+      }
+  }
+]|
+
+#ClutterClickAction is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-clone">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-clone.c"
+           line="24">#ClutterClone is a #ClutterActor which draws with the paint
+function of another actor, scaled to fit its own allocation.
+
+#ClutterClone can be used to efficiently clone any other actor.
+
+Unlike clutter_texture_new_from_actor(), #ClutterClone does not require
+the presence of support for FBOs in the underlying GL or GLES
+implementation.
+
+#ClutterClone is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-color">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="24">#ClutterColor is a simple type for representing colors in Clutter.
+
+A #ClutterColor is expressed as a 4-tuple of values ranging from
+zero to 255, one for each color channel plus one for the alpha.
+
+The alpha channel is fully opaque at 255 and fully transparent at 0.</doc>
+    </docsection>
+    <docsection name="clutter-colorize-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-colorize-effect.c"
+           line="25">#ClutterColorizeEffect is a sub-class of #ClutterEffect that
+colorizes an actor with the given tint.
+
+#ClutterColorizeEffect is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-constraint">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-constraint.c"
+           line="25">#ClutterConstraint is a base abstract class for modifiers of a #ClutterActor
+position or size.
+
+A #ClutterConstraint sub-class should contain the logic for modifying
+the position or size of the #ClutterActor to which it is applied, by
+updating the actor's allocation. Each #ClutterConstraint can change the
+allocation of the actor to which they are applied by overriding the
+#ClutterConstraintClass.update_allocation() virtual function.
+
+#ClutterConstraint is available since Clutter 1.4
+
+## Using Constraints
+
+Constraints can be used with fixed layout managers, like
+#ClutterFixedLayout, or with actors implicitly using a fixed layout
+manager, like #ClutterGroup and #ClutterStage.
+
+Constraints provide a way to build user interfaces by using
+relations between #ClutterActors, without explicit fixed
+positioning and sizing, similarly to how fluid layout managers like
+#ClutterBoxLayout lay out their children.
+
+Constraints are attached to a #ClutterActor, and are available
+for inspection using clutter_actor_get_constraints().
+
+Clutter provides different implementation of the #ClutterConstraint
+abstract class, for instance:
+
+ - #ClutterAlignConstraint, a constraint that can be used to align
+ an actor to another one on either the horizontal or the vertical
+ axis, using a normalized value between 0 and 1.
+ - #ClutterBindConstraint, a constraint binds the X, Y, width or height
+ of an actor to the corresponding position or size of a source actor,
+ with or without an offset.
+ - #ClutterSnapConstraint, a constraint that "snaps" together the edges
+ of two #ClutterActors; if an actor uses two constraints on both its
+ horizontal or vertical edges then it can also expand to fit the empty
+ space.
+
+The [constraints example](https://git.gnome.org/browse/clutter/tree/examples/constraints.c?h=clutter-1.18)
+uses various types of #ClutterConstraints to lay out three actors on a
+resizable stage. Only the central actor has an explicit size, and no
+actor has an explicit position.
+
+ - The #ClutterActor with #ClutterActor:name `layerA` is explicitly
+ sized to 100 pixels by 25 pixels, and it's added to the #ClutterStage
+ - two #ClutterAlignConstraints are used to anchor `layerA` to the
+ center of the stage, by using 0.5 as the alignment #ClutterAlignConstraint:factor on
+ both the X and Y axis
+ - the #ClutterActor with #ClutterActor:name `layerB` is added to the
+ #ClutterStage with no explicit size
+ - the #ClutterActor:x and #ClutterActor:width of `layerB` are bound
+ to the same properties of `layerA` using two #ClutterBindConstraint
+ objects, thus keeping `layerB` aligned to `layerA`
+ - the top edge of `layerB` is snapped together with the bottom edge
+ of `layerA`; the bottom edge of `layerB` is also snapped together with
+ the bottom edge of the #ClutterStage; an offset is  given to the two
+ #ClutterSnapConstraintss to allow for some padding; since `layerB` is
+ snapped between two different #ClutterActors, its height is stretched
+ to match the gap
+ - the #ClutterActor with #ClutterActor:name `layerC` mirrors `layerB`,
+ snapping the top edge of the #ClutterStage to the top edge of `layerC`
+ and the top edge of `layerA` to the bottom edge of `layerC`
+
+You can try resizing interactively the #ClutterStage and verify
+that the three #ClutterActors maintain the same position and
+size relative to each other, and to the #ClutterStage.
+
+It is important to note that Clutter does not avoid loops or
+competing constraints; if two or more #ClutterConstraints
+are operating on the same positional or dimensional attributes of an
+actor, or if the constraints on two different actors depend on each
+other, then the behavior is undefined.
+
+## Implementing a ClutterConstraint
+
+Creating a sub-class of #ClutterConstraint requires the
+implementation of the #ClutterConstraintClass.update_allocation()
+virtual function.
+
+The `update_allocation()` virtual function is called during the
+allocation sequence of a #ClutterActor, and allows any #ClutterConstraint
+attached to that actor to modify the allocation before it is passed to
+the actor's #ClutterActorClass.allocate() implementation.
+
+The #ClutterActorBox passed to the `update_allocation()` implementation
+contains the original allocation of the #ClutterActor, plus the eventual
+modifications applied by the other #ClutterConstraints, in the same order
+the constraints have been applied to the actor.
+
+It is not necessary for a #ClutterConstraint sub-class to chain
+up to the parent's implementation.
+
+If a #ClutterConstraint is parametrized - i.e. if it contains
+properties that affect the way the constraint is implemented - it should
+call clutter_actor_queue_relayout() on the actor to which it is attached
+to whenever any parameter is changed. The actor to which it is attached
+can be recovered at any point using clutter_actor_meta_get_actor().</doc>
+    </docsection>
+    <docsection name="clutter-container">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-container.c"
+           line="65">#ClutterContainer is an interface implemented by #ClutterActor, and
+it provides some common API for notifying when a child actor is added
+or removed, as well as the infrastructure for accessing child properties
+through #ClutterChildMeta.
+
+Until Clutter 1.10, the #ClutterContainer interface was also the public
+API for implementing container actors; this part of the interface has
+been deprecated: #ClutterContainer has a default implementation which
+defers to #ClutterActor the child addition and removal, as well as the
+iteration. See the documentation of #ClutterContainerIface for the list
+of virtual functions that should be overridden.</doc>
+    </docsection>
+    <docsection name="clutter-content">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-content.c"
+           line="25">#ClutterContent is an interface to implement types responsible for
+painting the content of a #ClutterActor.
+
+Multiple actors can use the same #ClutterContent instance, in order
+to share the resources associated with painting the same content.
+
+#ClutterContent is available since Clutter 1.10.</doc>
+    </docsection>
+    <docsection name="clutter-deform-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-deform-effect.c"
+           line="28">#ClutterDeformEffect is an abstract class providing all the plumbing
+for creating effects that result in the deformation of an actor's
+geometry.
+
+#ClutterDeformEffect uses offscreen buffers to render the contents of
+a #ClutterActor and then the Cogl vertex buffers API to submit the
+geometry to the GPU.
+
+#ClutterDeformEffect is available since Clutter 1.4
+
+## Implementing ClutterDeformEffect
+
+Sub-classes of #ClutterDeformEffect should override the
+#ClutterDeformEffectClass.deform_vertex() virtual function; this function
+is called on every vertex that needs to be deformed by the effect.
+Each passed vertex is an in-out parameter that initially contains the
+position of the vertex and should be modified according to a specific
+deformation algorithm.</doc>
+    </docsection>
+    <docsection name="clutter-desaturate-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-desaturate-effect.c"
+           line="25">#ClutterDesaturateEffect is a sub-class of #ClutterEffect that
+desaturates the color of an actor and its contents. The strength
+of the desaturation effect is controllable and animatable through
+the #ClutterDesaturateEffect:factor property.
+
+#ClutterDesaturateEffect is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-effect.c"
+           line="25">The #ClutterEffect class provides a default type and API for creating
+effects for generic actors.
+
+Effects are a #ClutterActorMeta sub-class that modify the way an actor
+is painted in a way that is not part of the actor's implementation.
+
+Effects should be the preferred way to affect the paint sequence of an
+actor without sub-classing the actor itself and overriding the
+#ClutterActorClass.paint()_ virtual function.
+
+## Implementing a ClutterEffect
+
+Creating a sub-class of #ClutterEffect requires overriding the
+#ClutterEffectClass.paint() method. The implementation of the function should look
+something like this:
+
+|[
+void effect_paint (ClutterEffect *effect, ClutterEffectPaintFlags flags)
+{
+  // Set up initialisation of the paint such as binding a
+  // CoglOffscreen or other operations
+
+  // Chain to the next item in the paint sequence. This will either call
+  // ‘paint’ on the next effect or just paint the actor if this is
+  // the last effect.
+  ClutterActor *actor =
+    clutter_actor_meta_get_actor (CLUTTER_ACTOR_META (effect));
+
+  clutter_actor_continue_paint (actor);
+
+  // perform any cleanup of state, such as popping the CoglOffscreen
+}
+]|
+
+The effect can optionally avoid calling clutter_actor_continue_paint() to skip any
+further stages of the paint sequence. This is useful for example if the effect
+contains a cached image of the actor. In that case it can optimise painting by
+avoiding the actor paint and instead painting the cached image.
+
+The %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag is useful in this case. Clutter will set
+this flag when a redraw has been queued on the actor since it was last painted. The
+effect can use this information to decide if the cached image is still valid.
+
+## A simple ClutterEffect implementation
+
+The example below creates two rectangles: one will be painted "behind" the actor,
+while another will be painted "on top" of the actor.
+
+The #ClutterActorMetaClass.set_actor() implementation will create the two materials
+used for the two different rectangles; the #ClutterEffectClass.paint() implementation
+will paint the first material using cogl_rectangle(), before continuing and then it
+will paint paint the second material after.
+
+ |[
+ typedef struct {
+   ClutterEffect parent_instance;
+
+   CoglHandle rect_1;
+   CoglHandle rect_2;
+ } MyEffect;
+
+ typedef struct _ClutterEffectClass MyEffectClass;
+
+ G_DEFINE_TYPE (MyEffect, my_effect, CLUTTER_TYPE_EFFECT);
+
+ static void
+ my_effect_set_actor (ClutterActorMeta *meta,
+                      ClutterActor     *actor)
+ {
+   MyEffect *self = MY_EFFECT (meta);
+
+   // Clear the previous state //
+   if (self-&gt;rect_1)
+     {
+       cogl_object_unref (self-&gt;rect_1);
+       self-&gt;rect_1 = NULL;
+     }
+
+   if (self-&gt;rect_2)
+     {
+       cogl_object_unref (self-&gt;rect_2);
+       self-&gt;rect_2 = NULL;
+     }
+
+   // Maintain a pointer to the actor
+   self-&gt;actor = actor;
+
+   // If we've been detached by the actor then we should just bail out here
+   if (self-&gt;actor == NULL)
+     return;
+
+   // Create a red material
+   self-&gt;rect_1 = cogl_material_new ();
+   cogl_material_set_color4f (self-&gt;rect_1, 1.0, 0.0, 0.0, 1.0);
+
+   // Create a green material
+   self-&gt;rect_2 = cogl_material_new ();
+   cogl_material_set_color4f (self-&gt;rect_2, 0.0, 1.0, 0.0, 1.0);
+ }
+
+ static gboolean
+ my_effect_paint (ClutterEffect *effect)
+ {
+   MyEffect *self = MY_EFFECT (effect);
+   gfloat width, height;
+
+   clutter_actor_get_size (self-&gt;actor, &amp;width, &amp;height);
+
+   // Paint the first rectangle in the upper left quadrant
+   cogl_set_source (self-&gt;rect_1);
+   cogl_rectangle (0, 0, width / 2, height / 2);
+
+   // Continue to the rest of the paint sequence
+   clutter_actor_continue_paint (self-&gt;actor);
+
+   // Paint the second rectangle in the lower right quadrant
+   cogl_set_source (self-&gt;rect_2);
+   cogl_rectangle (width / 2, height / 2, width, height);
+ }
+
+ static void
+ my_effect_class_init (MyEffectClass *klass)
+ {
+   ClutterActorMetaClas *meta_class = CLUTTER_ACTOR_META_CLASS (klass);
+
+   meta_class-&gt;set_actor = my_effect_set_actor;
+
+   klass-&gt;paint = my_effect_paint;
+ }
+]|
+
+#ClutterEffect is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-event">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="36">Windowing events handled by Clutter.
+
+The events usually come from the windowing backend, but can also
+be synthesized by Clutter itself or by the application code.</doc>
+    </docsection>
+    <docsection name="clutter-feature">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-feature.c"
+           line="26">Parts of Clutter depend on the underlying platform, including the
+capabilities of the backend used and the OpenGL features exposed through the
+Clutter and COGL API.
+
+It is possible to ask whether Clutter has support for specific features at
+run-time.</doc>
+    </docsection>
+    <docsection name="clutter-fixed-layout">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-fixed-layout.c"
+           line="27">#ClutterFixedLayout is a layout manager implementing the same
+layout policies as #ClutterGroup.
+
+#ClutterFixedLayout is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-flow-layout">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-flow-layout.c"
+           line="25">#ClutterFlowLayout is a layout manager which implements the following
+policy:
+
+  - the preferred natural size depends on the value
+  of the #ClutterFlowLayout:orientation property; the layout will try
+  to maintain all its children on a single row or
+  column;
+  - if either the width or the height allocated are
+  smaller than the preferred ones, the layout will wrap; in this case,
+  the preferred height or width, respectively, will take into account
+  the amount of columns and rows;
+  - each line (either column or row) in reflowing will
+  have the size of the biggest cell on that line; if the
+  #ClutterFlowLayout:homogeneous property is set to %FALSE the actor
+  will be allocated within that area, and if set to %TRUE instead the
+  actor will be given exactly that area;
+  - the size of the columns or rows can be controlled
+  for both minimum and maximum; the spacing can also be controlled
+  in both columns and rows.
+
+The [flow-layout example](https://git.gnome.org/browse/clutter/tree/examples/flow-layout.c?h=clutter-1.18)
+shows how to use the #ClutterFlowLayout.
+
+#ClutterFlowLayout is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-geometric-types">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="24">Clutter defines a set of geometric data structures that are commonly used
+across the whole API.</doc>
+    </docsection>
+    <docsection name="clutter-gesture-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-gesture-action.c"
+           line="27">#ClutterGestureAction is a sub-class of #ClutterAction that implements
+the logic for recognizing gesture gestures. It listens for low level events
+such as #ClutterButtonEvent and #ClutterMotionEvent on the stage to raise
+the #ClutterGestureAction::gesture-begin, #ClutterGestureAction::gesture-progress,
+and #ClutterGestureAction::gesture-end signals.
+
+To use #ClutterGestureAction you just need to apply it to a #ClutterActor
+using clutter_actor_add_action() and connect to the signals:
+
+|[&lt;!-- language="C" --&gt;
+  ClutterAction *action = clutter_gesture_action_new ();
+
+  clutter_actor_add_action (actor, action);
+
+  g_signal_connect (action, "gesture-begin", G_CALLBACK (on_gesture_begin), NULL);
+  g_signal_connect (action, "gesture-progress", G_CALLBACK (on_gesture_progress), NULL);
+  g_signal_connect (action, "gesture-end", G_CALLBACK (on_gesture_end), NULL);
+]|
+
+## Creating Gesture actions
+
+A #ClutterGestureAction provides four separate states that can be
+used to recognize or ignore gestures when writing a new action class:
+
+ - Prepare -&gt; Cancel
+ - Prepare -&gt; Begin -&gt; Cancel
+ - Prepare -&gt; Begin -&gt; End
+ - Prepare -&gt; Begin -&gt; Progress -&gt; Cancel
+ - Prepare -&gt; Begin -&gt; Progress -&gt; End
+
+Each #ClutterGestureAction starts in the "prepare" state, and calls
+the #ClutterGestureActionClass.gesture_prepare() virtual function; this
+state can be used to reset the internal state of a #ClutterGestureAction
+subclass, but it can also immediately cancel a gesture without going
+through the rest of the states.
+
+The "begin" state follows the "prepare" state, and calls the
+#ClutterGestureActionClass.gesture_begin() virtual function. This state
+signals the start of a gesture recognizing process. From the "begin" state
+the gesture recognition process can successfully end, by going to the
+"end" state; it can continue in the "progress" state, in case of a
+continuous gesture; or it can be terminated, by moving to the "cancel"
+state.
+
+In case of continuous gestures, the #ClutterGestureAction will use
+the "progress" state, calling the #ClutterGestureActionClass.gesture_progress()
+virtual function; the "progress" state will continue until the end of the
+gesture, in which case the "end" state will be reached, or until the
+gesture is cancelled, in which case the "cancel" gesture will be used
+instead.</doc>
+    </docsection>
+    <docsection name="clutter-grid-layout">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-grid-layout.c"
+           line="43">#ClutterGridLayout is a layout manager which arranges its child widgets in
+rows and columns. It is a very similar to #ClutterBoxLayout, but it
+consistently uses #ClutterActor's alignment and expansion flags instead of
+custom child properties.
+
+Children are added using clutter_grid_layout_attach(). They can span
+multiple rows or columns. It is also possible to add a child next to an
+existing child, using clutter_grid_layout_attach_next_to(). The behaviour of
+#ClutterGridLayout when several children occupy the same grid cell is undefined.
+
+#ClutterGridLayout can be used like a #ClutterBoxLayout by just using
+clutter_actor_add_child(), which will place children next to each other in
+the direction determined by the #ClutterGridLayout:orientation property.</doc>
+    </docsection>
+    <docsection name="clutter-image">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-image.c"
+           line="25">#ClutterImage is a #ClutterContent implementation that displays
+image data inside a #ClutterActor.
+
+See [image.c](https://git.gnome.org/browse/clutter/tree/examples/image-content.c?h=clutter-1.18)
+for an example of how to use #ClutterImage.
+
+#ClutterImage is available since Clutter 1.10.</doc>
+    </docsection>
+    <docsection name="clutter-input-device">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-input-device.c"
+           line="24">#ClutterInputDevice represents an input device known to Clutter.
+
+The #ClutterInputDevice class holds the state of the device, but
+its contents are usually defined by the Clutter backend in use.</doc>
+    </docsection>
+    <docsection name="clutter-interval">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-interval.c"
+           line="25">#ClutterInterval is a simple object that can hold two values
+defining an interval. #ClutterInterval can hold any value that
+can be enclosed inside a #GValue.
+
+Once a #ClutterInterval for a specific #GType has been instantiated
+the #ClutterInterval:value-type property cannot be changed anymore.
+
+#ClutterInterval starts with a floating reference; this means that
+any object taking a reference on a #ClutterInterval instance should
+also take ownership of the interval by using g_object_ref_sink().
+
+#ClutterInterval can be subclassed to override the validation
+and value computation.
+
+#ClutterInterval is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-keyframe-transition">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-keyframe-transition.c"
+           line="24">#ClutterKeyframeTransition allows animating a property by defining
+"key frames": values at a normalized position on the transition
+duration.
+
+The #ClutterKeyframeTransition interpolates the value of the property
+to which it's bound across these key values.
+
+Setting up a #ClutterKeyframeTransition means providing the times,
+values, and easing modes between these key frames, for instance:
+
+|[
+  ClutterTransition *keyframe;
+
+  keyframe = clutter_keyframe_transition_new ("opacity");
+  clutter_transition_set_from (keyframe, G_TYPE_UINT, 255);
+  clutter_transition_set_to (keyframe, G_TYPE_UINT, 0);
+  clutter_keyframe_transition_set (CLUTTER_KEYFRAME_TRANSITION (keyframe),
+                                   G_TYPE_UINT,
+                                   1, /&amp;ast; number of key frames &amp;ast;/
+                                   0.5, 128, CLUTTER_EASE_IN_OUT_CUBIC);
+]|
+
+The example above sets up a keyframe transition for the #ClutterActor:opacity
+property of a #ClutterActor; the transition starts and sets the value of the
+property to fully transparent; between the start of the transition and its mid
+point, it will animate the property to half opacity, using an easy in/easy out
+progress. Once the transition reaches the mid point, it will linearly fade the
+actor out until it reaches the end of the transition.
+
+The #ClutterKeyframeTransition will add an implicit key frame between the last
+and the 1.0 value, to interpolate to the final value of the transition's
+interval.
+
+#ClutterKeyframeTransition is available since Clutter 1.12.</doc>
+    </docsection>
+    <docsection name="clutter-layout-manager">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-manager.c"
+           line="25">#ClutterLayoutManager is a base abstract class for layout managers. A
+layout manager implements the layouting policy for a composite or a
+container actor: it controls the preferred size of the actor to which
+it has been paired, and it controls the allocation of its children.
+
+Any composite or container #ClutterActor subclass can delegate the
+layouting of its children to a #ClutterLayoutManager.
+
+Clutter provides some simple #ClutterLayoutManager sub-classes, like
+#ClutterFlowLayout and #ClutterBinLayout.
+
+## Implementing a ClutterLayoutManager
+The implementation of a layout manager does not differ from  the
+implementation of the size requisition and allocation bits of
+#ClutterActor, so you should read the relative documentation
+for subclassing #ClutterActor.
+
+The layout manager implementation can hold a back pointer to the
+#ClutterContainer by implementing the #ClutterLayoutManagerClass.set_container()
+virtual function. The layout manager should not hold a real reference (i.e.
+call g_object_ref()) on the container actor, to avoid reference cycles.
+
+If a layout manager has properties affecting the layout policies then it should
+emit the #ClutterLayoutManager::layout-changed signal on itself by using the
+clutter_layout_manager_layout_changed() function whenever one of these properties
+changes.
+
+## Layout Properties
+
+If a layout manager has layout properties, that is properties that
+should exist only as the result of the presence of a specific (layout
+manager, container actor, child actor) combination, and it wishes to store
+those properties inside a #ClutterLayoutMeta, then it should override the
+#ClutterLayoutManagerClass.get_child_meta_type() virtual function to return
+the #GType of the #ClutterLayoutMeta sub-class used to store the layout
+properties; optionally, the #ClutterLayoutManager sub-class might also
+override the #ClutterLayoutManagerClass.create_child_meta() virtual function
+to control how the #ClutterLayoutMeta instance is created, otherwise the
+default implementation will be equivalent to:
+
+|[
+ ClutterLayoutManagerClass *klass;
+ GType meta_type;
+
+ klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager);
+ meta_type = klass-&gt;get_child_meta_type (manager);
+
+ return g_object_new (meta_type,
+                      "manager", manager,
+                      "container", container,
+                      "actor", actor,
+                      NULL);
+]|
+
+Where `manager` is the  #ClutterLayoutManager, `container` is the
+#ClutterContainer using the #ClutterLayoutManager, and `actor` is
+the #ClutterActor child of the #ClutterContainer.
+
+## Using ClutterLayoutManager with ClutterScript
+
+#ClutterLayoutManager instances can be created in the same way
+as other objects in #ClutterScript; properties can be set using the
+common syntax.
+
+Layout properties can be set on children of a container with
+a #ClutterLayoutManager using the `layout::` modifier on the property
+name, for instance:
+
+|[
+{
+  "type" : "ClutterActor",
+  "layout-manager" : { "type" : "ClutterGridLayout" },
+  "children" : [
+    {
+      "type" : "ClutterText",
+      "text" : "Some text",
+
+      "layout::row" : 0,
+      "layout::column" : 0,
+      "layout::x-align" : "left",
+      "layout::y-align" : "center",
+      "layout::x-expand" : true,
+      "layout::y-expand" : true
+    },
+    {
+      "type" : "ClutterText",
+      "text" : "Some more text",
+
+      "layout::row" : 0,
+      "layout::column" : 1,
+      "layout::x-align" : "right",
+      "layout::y-align" : "center",
+      "layout::x-expand" : true,
+      "layout::y-expand" : true
+    }
+  ]
+}
+]|
+
+#ClutterLayoutManager is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-layout-meta">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-layout-meta.c"
+           line="25">#ClutterLayoutMeta is a wrapper object created by #ClutterLayoutManager
+implementations in order to store child-specific data and properties.
+
+A #ClutterLayoutMeta wraps a #ClutterActor inside a #ClutterContainer
+using a #ClutterLayoutManager.
+
+#ClutterLayoutMeta is available since Clutter 1.2</doc>
+    </docsection>
+    <docsection name="clutter-main">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="24">Functions to retrieve various global Clutter resources and other utility
+functions for mainloops, events and threads
+
+## The Clutter Threading Model
+
+Clutter is *thread-aware*: all operations performed by Clutter are assumed
+to be under the Big Clutter Lock, which is created when the threading is
+initialized through clutter_init(), and entered when calling user-related
+code during event handling and actor drawing.
+
+The only safe and portable way to use the Clutter API in a multi-threaded
+environment is to only access the Clutter API from a thread that did called
+clutter_init() and clutter_main().
+
+The common pattern for using threads with Clutter is to use worker threads
+to perform blocking operations and then install idle or timeout sources with
+the result when the thread finishes, and update the UI from those callbacks.
+
+For a working example of how to use a worker thread to update the UI, see
+[threads.c](https://git.gnome.org/browse/clutter/tree/examples/threads.c?h=clutter-1.18)</doc>
+    </docsection>
+    <docsection name="clutter-offscreen-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-offscreen-effect.c"
+           line="26">#ClutterOffscreenEffect is an abstract class that can be used by
+#ClutterEffect sub-classes requiring access to an offscreen buffer.
+
+Some effects, like the fragment shader based effects, can only use GL
+textures, and in order to apply those effects to any kind of actor they
+require that all drawing operations are applied to an offscreen framebuffer
+that gets redirected to a texture.
+
+#ClutterOffscreenEffect provides all the heavy-lifting for creating the
+offscreen framebuffer, the redirection and the final paint of the texture on
+the desired stage.
+
+#ClutterOffscreenEffect is available since Clutter 1.4
+
+## Implementing a ClutterOffscreenEffect
+
+Creating a sub-class of #ClutterOffscreenEffect requires, in case
+of overriding the #ClutterEffect virtual functions, to chain up to the
+#ClutterOffscreenEffect's implementation.
+
+On top of the #ClutterEffect's virtual functions,
+#ClutterOffscreenEffect also provides a #ClutterOffscreenEffectClass.paint_target()
+function, which encapsulates the effective painting of the texture that
+contains the result of the offscreen redirection.
+
+The size of the target material is defined to be as big as the
+transformed size of the #ClutterActor using the offscreen effect.
+Sub-classes of #ClutterOffscreenEffect can change the texture creation
+code to provide bigger textures by overriding the
+#ClutterOffscreenEffectClass.create_texture() virtual function; no chain up
+to the #ClutterOffscreenEffect implementation is required in this
+case.</doc>
+    </docsection>
+    <docsection name="clutter-page-turn-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-page-turn-effect.c"
+           line="28">A simple page turning effect
+
+#ClutterPageTurnEffect is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-paint-node">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="25">#ClutterPaintNode is an element in the render graph.
+
+The render graph contains all the elements that need to be painted by
+Clutter when submitting a frame to the graphics system.
+
+The render graph is distinct from the scene graph: the scene graph is
+composed by actors, which can be visible or invisible; the scene graph
+elements also respond to events. The render graph, instead, is only
+composed by nodes that will be painted.
+
+Each #ClutterActor can submit multiple #ClutterPaintNode&lt;!-- --&gt;s to
+the render graph.</doc>
+    </docsection>
+    <docsection name="clutter-paint-nodes">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-nodes.c"
+           line="25">Clutter provides a set of predefined #ClutterPaintNode implementations
+that cover all the state changes available.</doc>
+    </docsection>
+    <docsection name="clutter-pan-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-pan-action.c"
+           line="33">#ClutterPanAction is a sub-class of #ClutterGestureAction that implements
+the logic for recognizing pan gestures.
+
+The simplest usage of #ClutterPanAction consists in adding it to
+a #ClutterActor with a child and setting it as reactive; for instance,
+the following code:
+
+|[
+  clutter_actor_add_action (actor, clutter_pan_action_new ());
+  clutter_actor_set_reactive (actor, TRUE);
+]|
+
+will automatically result in the actor children to be moved
+when dragging.</doc>
+    </docsection>
+    <docsection name="clutter-path">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path.c"
+           line="24">A #ClutterPath contains a description of a path consisting of
+straight lines and bezier curves.
+
+The path consists of a series of nodes. Each node is one of the
+following four types:
+
+ - %CLUTTER_PATH_MOVE_TO, changes the position of the path to the
+ given pair of coordinates. This is usually used as the first node
+ of a path to mark the start position. If it is used in the middle
+ of a path then the path will be disjoint and the actor will appear
+ to jump to the new position when animated.
+ - %CLUTTER_PATH_LINE_TO, creates a straight line from the previous
+ point to the given point.
+ - %CLUTTER_PATH_CURVE_TO, creates a bezier curve. The end of the
+ last node is used as the first control point and the three
+ subsequent coordinates given in the node as used as the other three.
+ -%CLUTTER_PATH_CLOSE, creates a straight line from the last node to
+ the last %CLUTTER_PATH_MOVE_TO node. This can be used to close a
+ path so that it will appear as a loop when animated.
+
+The first three types have the corresponding relative versions
+%CLUTTER_PATH_REL_MOVE_TO, %CLUTTER_PATH_REL_LINE_TO and
+%CLUTTER_PATH_REL_CURVE_TO. These are exactly the same except the
+coordinates are given relative to the previous node instead of as
+direct screen positions.
+
+You can build a path using the node adding functions such as
+clutter_path_add_line_to(). Alternatively the path can be described
+in a string using a subset of the SVG path syntax. See
+clutter_path_add_string() for details.
+
+#ClutterPath is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-path-constraint">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-path-constraint.c"
+           line="25">#ClutterPathConstraint is a simple constraint that modifies the allocation
+of the #ClutterActor to which it has been applied using a #ClutterPath.
+
+By setting the #ClutterPathConstraint:offset property it is possible to
+control how far along the path the #ClutterActor should be.
+
+ClutterPathConstraint is available since Clutter 1.6.</doc>
+    </docsection>
+    <docsection name="clutter-property-transition">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-property-transition.c"
+           line="22">#ClutterPropertyTransition is a specialized #ClutterTransition that
+can be used to tween a property of a #ClutterAnimatable instance.
+
+#ClutterPropertyTransition is available since Clutter 1.10</doc>
+    </docsection>
+    <docsection name="clutter-rotate-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-rotate-action.c"
+           line="25">#ClutterRotateAction is a sub-class of #ClutterGestureAction that implements
+the logic for recognizing rotate gestures using two touch points.</doc>
+    </docsection>
+    <docsection name="clutter-script">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.c"
+           line="26">#ClutterScript is an object used for loading and building parts or a
+complete scenegraph from external definition data in forms of string
+buffers or files.
+
+The UI definition format is JSON, the JavaScript Object Notation as
+described by RFC 4627. #ClutterScript can load a JSON data stream,
+parse it and build all the objects defined into it. Each object must
+have an "id" and a "type" properties defining the name to be used
+to retrieve it from #ClutterScript with clutter_script_get_object(),
+and the class type to be instantiated. Every other attribute will
+be mapped to the class properties.
+
+A #ClutterScript holds a reference on every object it creates from
+the definition data, except for the stage. Every non-actor object
+will be finalized when the #ClutterScript instance holding it will
+be finalized, so they need to be referenced using g_object_ref() in
+order for them to survive.
+
+A simple object might be defined as:
+
+&lt;informalexample&gt;&lt;programlisting&gt;&lt;![CDATA[
+{
+  "id"     : "red-button",
+  "type"   : "ClutterActor",
+  "width"  : 100,
+  "height" : 100,
+  "background-color" : "&amp;num;ff0000ff"
+}
+]]&gt;&lt;/programlisting&gt;&lt;/informalexample&gt;
+
+This will produce a red #ClutterActor, 100x100 pixels wide, and
+with a ClutterScript id of "red-button"; it can be retrieved by calling:
+
+|[
+ClutterActor *red_button;
+
+red_button = CLUTTER_ACTOR (clutter_script_get_object (script, "red-button"));
+]|
+
+and then manipulated with the Clutter API. For every object created
+using ClutterScript it is possible to check the id by calling
+clutter_get_script_id().
+
+Packing can be represented using the "children" member, and passing an
+array of objects or ids of objects already defined (but not packed: the
+packing rules of Clutter still apply, and an actor cannot be packed
+in multiple containers without unparenting it in between).
+
+Signal handlers can be defined inside a Clutter UI definition file and
+then autoconnected to their respective signals using the
+clutter_script_connect_signals() function:
+
+&lt;informalexample&gt;&lt;programlisting&gt;&lt;![CDATA[
+  ...
+  "signals" : [
+    { "name" : "button-press-event", "handler" : "on_button_press" },
+    {
+      "name" : "foo-signal",
+      "handler" : "after_foo",
+      "after" : true
+    },
+  ],
+  ...
+]]&gt;&lt;/programlisting&gt;&lt;/informalexample&gt;
+
+Signal handler definitions must have a "name" and a "handler" members;
+they can also have the "after" and "swapped" boolean members (for the
+signal connection flags %G_CONNECT_AFTER and %G_CONNECT_SWAPPED
+respectively) and the "object" string member for calling
+g_signal_connect_object() instead of g_signal_connect().
+
+Clutter reserves the following names, so classes defining properties
+through the usual GObject registration process should avoid using these
+names to avoid collisions:
+
+&lt;programlisting&gt;&lt;![CDATA[
+  "id"         := the unique name of a ClutterScript object
+  "type"       := the class literal name, also used to infer the type
+                  function
+  "type_func"  := the GType function name, for non-standard classes
+  "children"   := an array of names or objects to add as children
+  "signals"    := an array of signal definitions to connect to an object
+  "is-default" := a boolean flag used when defining the #ClutterStage;
+                  if set to "true" the default stage will be used instead
+                  of creating a new #ClutterStage instance
+]]&gt;&lt;/programlisting&gt;
+
+#ClutterScript is available since Clutter 0.6</doc>
+    </docsection>
+    <docsection name="clutter-scriptable">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scriptable.c"
+           line="27">The #ClutterScriptableIface interface exposes the UI definition parsing
+process to external classes. By implementing this interface, a class can
+override the UI definition parsing and transform complex data types into
+GObject properties, or allow custom properties.
+
+#ClutterScriptable is available since Clutter 0.6</doc>
+    </docsection>
+    <docsection name="clutter-scroll-actor">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-scroll-actor.c"
+           line="22">#ClutterScrollActor is an actor that can be used to display a portion
+of the contents of its children.
+
+The extent of the area of a #ClutterScrollActor is defined by the size
+of its children; the visible region of the children of a #ClutterScrollActor
+is set by using clutter_scroll_actor_scroll_to_point() or by using
+clutter_scroll_actor_scroll_to_rect() to define a point or a rectangle
+acting as the origin, respectively.
+
+#ClutterScrollActor does not provide pointer or keyboard event handling,
+nor does it provide visible scroll handles.
+
+See [scroll-actor.c](https://git.gnome.org/browse/clutter/tree/examples/scroll-actor.c?h=clutter-1.18)
+for an example of how to use #ClutterScrollActor.
+
+#ClutterScrollActor is available since Clutter 1.12.</doc>
+    </docsection>
+    <docsection name="clutter-settings">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-settings.c"
+           line="1">Clutter depends on some settings to perform operations like detecting
+multiple button press events, or font options to render text.
+
+Usually, Clutter will strive to use the platform's settings in order
+to be as much integrated as possible. It is, however, possible to
+change these settings on a per-application basis, by using the
+#ClutterSettings singleton object and setting its properties. It is
+also possible, for toolkit developers, to retrieve the settings from
+the #ClutterSettings properties when implementing new UI elements,
+for instance the default font name.
+
+#ClutterSettings is available since Clutter 1.4</doc>
+    </docsection>
+    <docsection name="clutter-shader-effect">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-effect.c"
+           line="25">#ClutterShaderEffect is a class that implements all the plumbing for
+creating #ClutterEffect&lt;!-- --&gt;s using GLSL shaders.
+
+#ClutterShaderEffect creates an offscreen buffer and then applies the
+GLSL shader (after checking whether the compilation and linking were
+successful) to the buffer before painting it on screen.
+
+#ClutterShaderEffect is available since Clutter 1.4
+
+## Implementing a ClutterShaderEffect
+
+Creating a sub-class of #ClutterShaderEffect requires the
+overriding of the #ClutterOffscreenEffectClass.paint_target() virtual
+function from the #ClutterOffscreenEffect class. It is also convenient
+to implement the #ClutterShaderEffectClass.get_static_shader_source()
+virtual function in case you are planning to create more than one
+instance of the effect.
+
+The #ClutterShaderEffectClass.get_static_shader_source()
+function should return a copy of the shader source to use. This
+function is only called once per subclass of #ClutterShaderEffect
+regardless of how many instances of the effect are created. The
+source for the shader is typically stored in a static const
+string which is returned from this function via
+g_strdup().
+
+The #ClutterOffscreenEffectClass.paint_target() should set the
+shader's uniforms if any. This is done by calling
+clutter_shader_effect_set_uniform_value() or
+clutter_shader_effect_set_uniform(). The sub-class should then
+chain up to the #ClutterShaderEffect implementation.
+
+## Setting uniforms on a ClutterShaderEffect
+
+The example below shows a typical implementation of the
+#ClutterShaderEffectClass.get_static_shader_source() and
+#ClutterOffscreenEffectClass.paint_target() virtual functions
+for a #ClutterShaderEffect subclass.
+
+|[&lt;!-- language="C" --&gt;
+ static gchar *
+ my_effect_get_static_shader_source (ClutterShaderEffect *effect)
+ {
+   // shader_source is set elsewhere
+   return g_strdup (shader_source);
+ }
+
+ static gboolean
+ my_effect_paint_target (ClutterOffscreenEffect *effect)
+ {
+   MyEffect *self = MY_EFFECT (effect);
+   ClutterShaderEffect *shader = CLUTTER_SHADER_EFFECT (effect);
+   ClutterEffectClass *parent_class;
+   gfloat component_r, component_g, component_b;
+
+   // the "tex" uniform is declared in the shader as:
+   //
+   //   uniform int tex;
+   //
+   // and it is passed a constant value of 0
+   clutter_shader_effect_set_uniform (shader, "tex", G_TYPE_INT, 1, 0);
+
+   // the "component" uniform is declared in the shader as:
+   //
+   //   uniform vec3 component;
+   //
+   // and it's defined to contain the normalized components
+   // of a #ClutterColor
+   component_r = self-&gt;color.red   / 255.0f;
+   component_g = self-&gt;color.green / 255.0f;
+   component_b = self-&gt;color.blue  / 255.0f;
+   clutter_shader_effect_set_uniform (shader, "component",
+                                      G_TYPE_FLOAT, 3,
+                                      component_r,
+                                      component_g,
+                                      component_b);
+
+   // chain up to the parent's implementation
+   parent_class = CLUTTER_OFFSCREEN_EFFECT_CLASS (my_effect_parent_class);
+   return parent_class-&gt;paint_target (effect);
+ }
+]|</doc>
+    </docsection>
+    <docsection name="clutter-snap-constraint">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-snap-constraint.c"
+           line="25">#ClutterSnapConstraint is a constraint the snaps the edges of two
+actors together, expanding the actor's allocation if necessary.
+
+An offset can be applied to the constraint, to provide spacing.
+
+#ClutterSnapConstraint is available since Clutter 1.6</doc>
+    </docsection>
+    <docsection name="clutter-stage">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage.c"
+           line="24">#ClutterStage is a top level 'window' on which child actors are placed
+and manipulated.
+
+Backends might provide support for multiple stages. The support for this
+feature can be checked at run-time using the clutter_feature_available()
+function and the %CLUTTER_FEATURE_STAGE_MULTIPLE flag. If the backend used
+supports multiple stages, new #ClutterStage instances can be created
+using clutter_stage_new(). These stages must be managed by the developer
+using clutter_actor_destroy(), which will take care of destroying all the
+actors contained inside them.
+
+#ClutterStage is a proxy actor, wrapping the backend-specific implementation
+(a #StageWindow) of the windowing system. It is possible to subclass
+#ClutterStage, as long as every overridden virtual function chains up to the
+parent class corresponding function.</doc>
+    </docsection>
+    <docsection name="clutter-stage-manager">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage-manager.c"
+           line="24">#ClutterStageManager is a singleton object, owned by Clutter, which
+maintains the list of currently active stages
+
+Every newly-created #ClutterStage will cause the emission of the
+#ClutterStageManager::stage-added signal; once a #ClutterStage has
+been destroyed, the #ClutterStageManager::stage-removed signal will
+be emitted
+
+#ClutterStageManager is available since Clutter 0.8</doc>
+    </docsection>
+    <docsection name="clutter-stage-window">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-stage-window.c"
+           line="9">#ClutterStageWindow is an interface that provides the implementation for the
+#ClutterStage actor, abstracting away the specifics of the windowing system.</doc>
+    </docsection>
+    <docsection name="clutter-swipe-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-swipe-action.c"
+           line="29">#ClutterSwipeAction is a sub-class of #ClutterGestureAction that implements
+the logic for recognizing swipe gestures.</doc>
+    </docsection>
+    <docsection name="clutter-tap-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-tap-action.c"
+           line="34">#ClutterTapAction is a sub-class of #ClutterGestureAction that implements
+the logic for recognizing mouse clicks and touch tap gestures.
+
+The simplest usage of #ClutterTapAction consists in adding it to
+a #ClutterActor, setting it as reactive and connecting a
+callback for the #ClutterTapAction::tap signal, along the lines of the
+following code:
+
+|[
+  clutter_actor_add_action (actor, clutter_tap_action_new ());
+  clutter_actor_set_reactive (actor, TRUE);
+  g_signal_connect (action, "tap", G_CALLBACK (on_tap_callback), NULL);
+]|</doc>
+    </docsection>
+    <docsection name="clutter-text">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text.c"
+           line="25">#ClutterText is an actor that displays custom text using Pango
+as the text rendering engine.
+
+#ClutterText also allows inline editing of the text if the
+actor is set editable using clutter_text_set_editable().
+
+Selection using keyboard or pointers can be enabled using
+clutter_text_set_selectable().
+
+#ClutterText is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-text-buffer">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-text-buffer.c"
+           line="30">The #ClutterTextBuffer class contains the actual text displayed in a
+#ClutterText widget.
+
+A single #ClutterTextBuffer object can be shared by multiple #ClutterText
+widgets which will then share the same text content, but not the cursor
+position, visibility attributes, icon etc.
+
+#ClutterTextBuffer may be derived from. Such a derived class might allow
+text to be stored in an alternate location, such as non-pageable memory,
+useful in the case of important passwords. Or a derived class could
+integrate with an application's concept of undo/redo.</doc>
+    </docsection>
+    <docsection name="clutter-timeline">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-timeline.c"
+           line="24">#ClutterTimeline is a base class for managing time-based event that cause
+Clutter to redraw a stage, such as animations.
+
+Each #ClutterTimeline instance has a duration: once a timeline has been
+started, using clutter_timeline_start(), it will emit a signal that can
+be used to update the state of the actors.
+
+It is important to note that #ClutterTimeline is not a generic API for
+calling closures after an interval; each Timeline is tied into the master
+clock used to drive the frame cycle. If you need to schedule a closure
+after an interval, see clutter_threads_add_timeout() instead.
+
+Users of #ClutterTimeline should connect to the #ClutterTimeline::new-frame
+signal, which is emitted each time a timeline is advanced during the maste
+clock iteration. The #ClutterTimeline::new-frame signal provides the time
+elapsed since the beginning of the timeline, in milliseconds. A normalized
+progress value can be obtained by calling clutter_timeline_get_progress().
+By using clutter_timeline_get_delta() it is possible to obtain the wallclock
+time elapsed since the last emission of the #ClutterTimeline::new-frame
+signal.
+
+Initial state can be set up by using the #ClutterTimeline::started signal,
+while final state can be set up by using the #ClutterTimeline::stopped
+signal. The #ClutterTimeline guarantees the emission of at least a single
+#ClutterTimeline::new-frame signal, as well as the emission of the
+#ClutterTimeline::completed signal every time the #ClutterTimeline reaches
+its #ClutterTimeline:duration.
+
+It is possible to connect to specific points in the timeline progress by
+adding markers using clutter_timeline_add_marker_at_time() and connecting
+to the #ClutterTimeline::marker-reached signal.
+
+Timelines can be made to loop once they reach the end of their duration, by
+using clutter_timeline_set_repeat_count(); a looping timeline will still
+emit the #ClutterTimeline::completed signal once it reaches the end of its
+duration at each repeat. If you want to be notified of the end of the last
+repeat, use the #ClutterTimeline::stopped signal.
+
+Timelines have a #ClutterTimeline:direction: the default direction is
+%CLUTTER_TIMELINE_FORWARD, and goes from 0 to the duration; it is possible
+to change the direction to %CLUTTER_TIMELINE_BACKWARD, and have the timeline
+go from the duration to 0. The direction can be automatically reversed
+when reaching completion by using the #ClutterTimeline:auto-reverse property.
+
+Timelines are used in the Clutter animation framework by classes like
+#ClutterTransition.
+
+## Defining Timelines in ClutterScript
+
+A #ClutterTimeline can be described in #ClutterScript like any
+other object. Additionally, it is possible to define markers directly
+inside the JSON definition by using the `markers` JSON object member,
+such as:
+
+|[
+{
+  "type" : "ClutterTimeline",
+  "duration" : 1000,
+  "markers" : [
+    { "name" : "quarter", "time" : 250 },
+    { "name" : "half-time", "time" : 500 },
+    { "name" : "three-quarters", "time" : 750 }
+  ]
+}
+]|</doc>
+    </docsection>
+    <docsection name="clutter-transition">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition.c"
+           line="24">#ClutterTransition is an abstract subclass of #ClutterTimeline that
+computes the interpolation between two values, stored by a #ClutterInterval.</doc>
+    </docsection>
+    <docsection name="clutter-transition-group">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-transition-group.c"
+           line="24">The #ClutterTransitionGroup allows running multiple #ClutterTransition
+instances concurrently.
+
+The transitions inside a group will run within the boundaries of the
+group; for instance, if a transition has a duration of 10 seconds, and
+the group that contains it has a duration of 5 seconds, only the first
+5 seconds of the transition will be played.
+
+#ClutterTransitionGroup is available since Clutter 1.12</doc>
+    </docsection>
+    <docsection name="clutter-units">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="28">#ClutterUnits is a structure holding a logical distance value along with
+its type, expressed as a value of the #ClutterUnitType enumeration. It is
+possible to use #ClutterUnits to store a position or a size in units
+different than pixels, and convert them whenever needed (for instance
+inside the #ClutterActorClass.allocate() virtual function, or inside the
+#ClutterActorClass.get_preferred_width() and #ClutterActorClass.get_preferred_height()
+virtual functions.
+
+In order to register a #ClutterUnits property, the #ClutterParamSpecUnits
+#GParamSpec sub-class should be used:
+
+|[
+  GParamSpec *pspec;
+
+  pspec = clutter_param_spec_units ("active-width",
+                                    "Width",
+                                    "Width of the active area, in millimeters",
+                                    CLUTTER_UNIT_MM,
+                                    0.0, 12.0,
+                                    12.0,
+                                    G_PARAM_READWRITE);
+  g_object_class_install_property (gobject_class, PROP_WIDTH, pspec);
+]|
+
+A #GValue holding units can be manipulated using clutter_value_set_units()
+and clutter_value_get_units(). #GValue&lt;!-- --&gt;s containing a #ClutterUnits
+value can also be transformed to #GValue&lt;!-- --&gt;s initialized with
+%G_TYPE_INT, %G_TYPE_FLOAT and %G_TYPE_STRING through implicit conversion
+and using g_value_transform().
+
+#ClutterUnits is available since Clutter 1.0</doc>
+    </docsection>
+    <docsection name="clutter-util">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-util.c"
+           line="26">Various miscellaneous utilility functions.</doc>
+    </docsection>
+    <docsection name="clutter-zoom-action">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-zoom-action.c"
+           line="25">#ClutterZoomAction is a sub-class of #ClutterGestureAction that
+implements all the necessary logic for zooming actors using a "pinch"
+gesture between two touch points.
+
+The simplest usage of #ClutterZoomAction consists in adding it to
+a #ClutterActor and setting it as reactive; for instance, the following
+code:
+
+|[
+  clutter_actor_add_action (actor, clutter_zoom_action_new ());
+  clutter_actor_set_reactive (actor, TRUE);
+]|
+
+will automatically result in the actor to be scale according to the
+distance between two touch points.</doc>
+    </docsection>
+    <function name="color_from_hls"
+              c:identifier="clutter_color_from_hls"
+              moved-to="Color.from_hls">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="301">Converts a color expressed in HLS (hue, luminance and saturation)
+values into a #ClutterColor.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="123"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="color"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="303">return location for a #ClutterColor</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+        <parameter name="hue" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="304">hue value, in the 0 .. 360 range</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="luminance" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="305">luminance value, in the 0 .. 1 range</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="saturation" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="306">saturation value, in the 0 .. 1 range</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_from_pixel"
+              c:identifier="clutter_color_from_pixel"
+              moved-to="Color.from_pixel">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="413">Converts @pixel from the packed representation of a four 8 bit channel
+color to a #ClutterColor.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="131"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="color"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="415">return location for a #ClutterColor</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+        <parameter name="pixel" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="416">a 32 bit packed integer containing a color</doc>
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_from_string"
+              c:identifier="clutter_color_from_string"
+              moved-to="Color.from_string"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="611">Parses a string definition of a color, filling the #ClutterColor.red,
+#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields
+of @color.
+
+The @color is not allocated.
+
+The format of @str can be either one of:
+
+  - a standard name (as taken from the X11 rgb.txt file)
+  - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa`
+  - a RGB color in the form: `rgb(r, g, b)`
+  - a RGB color in the form: `rgba(r, g, b, a)`
+  - a HSL color in the form: `hsl(h, s, l)`
+   -a HSL color in the form: `hsla(h, s, l, a)`
+
+where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color
+intensities and the opacity. The 'h', 's' and 'l' are (respectively) the
+hue, saturation and luminance values.
+
+In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either
+integers between 0 and 255, or percentage values in the range between 0%
+and 100%; the percentages require the '%' character. The 'a' value, if
+specified, can only be a floating point value between 0.0 and 1.0.
+
+In the hls() and hlsa() formats, the 'h' value (hue) is an angle between
+0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are
+percentage values in the range between 0% and 100%. The 'a' value, if specified,
+can only be a floating point value between 0.0 and 1.0.
+
+Whitespace inside the definitions is ignored; no leading whitespace
+is allowed.
+
+If the alpha component is not specified then it is assumed to be set to
+be fully opaque.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="114"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="651">%TRUE if parsing succeeded, and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="color"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="613">return location for a #ClutterColor</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+        <parameter name="str" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="614">a string specifying a color</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_get_static"
+              c:identifier="clutter_color_get_static"
+              moved-to="Color.get_static"
+              version="1.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="102">Retrieves a static color for the given @color name
+
+Static colors are created by Clutter and are guaranteed to always be
+available and valid</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="196"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="111">a pointer to a static color; the returned pointer
+  is owned by Clutter and it should never be modified or freed</doc>
+        <type name="Color" c:type="const ClutterColor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="104">the named global color</doc>
+          <type name="StaticColor" c:type="ClutterStaticColor"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="container_class_find_child_property"
+              c:identifier="clutter_container_class_find_child_property"
+              moved-to="Container.class_find_child_property"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-container.c"
+           line="858">Looks up the #GParamSpec for a child property of @klass.</doc>
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="137"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="865">The #GParamSpec for the property or %NULL
+  if no such property exist.</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="klass" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="860">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+        </parameter>
+        <parameter name="property_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="861">a property name.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="container_class_list_child_properties"
+              c:identifier="clutter_container_class_list_child_properties"
+              moved-to="Container.class_list_child_properties"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-container.c"
+           line="897">Returns an array of #GParamSpec for all child properties.</doc>
+      <source-position filename="../clutter/clutter/clutter-container.h"
+                       line="140"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-container.c"
+             line="904">an array
+  of #GParamSpec&lt;!-- --&gt;s which should be freed after use.</doc>
+        <array length="1" zero-terminated="0" c:type="GParamSpec**">
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="klass" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="899">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+        </parameter>
+        <parameter name="n_properties"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-container.c"
+               line="900">return location for length of returned array.</doc>
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="disable_accessibility"
+              c:identifier="clutter_disable_accessibility"
+              version="1.14">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="351">Disable loading the accessibility support. It has the same effect
+as setting the environment variable
+CLUTTER_DISABLE_ACCESSIBILITY. For the same reason, this method
+should be called before clutter_init().</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="147"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="do_event" c:identifier="clutter_do_event" version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="1531">Processes an event.
+
+The @event must be a valid #ClutterEvent and have a #ClutterStage
+associated to it.
+
+This function is only useful when embedding Clutter inside another
+toolkit, and it should never be called by applications.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="140"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1533">a #ClutterEvent.</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_add_filter"
+              c:identifier="clutter_event_add_filter"
+              moved-to="Event.add_filter"
+              version="1.18">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1971">Adds a function which will be called for all events that Clutter
+processes. The function will be called before any signals are
+emitted for the event and it will take precedence over any grabs.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="637"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1982">an identifier for the event filter, to be used
+  with clutter_event_remove_filter().</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="stage"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1973">The #ClutterStage to capture events for</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="3"
+                   destroy="2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1974">The callback function which will be passed all events.</doc>
+          <type name="EventFilterFunc" c:type="ClutterEventFilterFunc"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1975">A #GDestroyNotify</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="1976">A data pointer to pass to the function.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_get"
+              c:identifier="clutter_event_get"
+              moved-to="Event.get"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1514">Pops an event off the event queue. Applications should not need to call
+this.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="630"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1520">A #ClutterEvent or NULL if queue empty</doc>
+        <type name="Event" c:type="ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="event_peek"
+              c:identifier="clutter_event_peek"
+              moved-to="Event.peek"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1538">Returns a pointer to the first event from the event queue but
+does not remove it.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="632"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1544">A #ClutterEvent or NULL if queue empty.</doc>
+        <type name="Event" c:type="ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="event_remove_filter"
+              c:identifier="clutter_event_remove_filter"
+              moved-to="Event.remove_filter"
+              version="1.18">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="2010">Removes an event filter that was previously added with
+clutter_event_add_filter().</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="642"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-event.c"
+               line="2012">The ID of the event filter, as returned from clutter_event_add_filter()</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="events_pending"
+              c:identifier="clutter_events_pending"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1615">Checks if events are pending in the event queue.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="628"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1620">TRUE if there are pending events, FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="feature_available"
+              c:identifier="clutter_feature_available"
+              version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-feature.c"
+           line="105">Checks whether @feature is available.  @feature can be a logical
+OR of #ClutterFeatureFlags.</doc>
+      <source-position filename="../clutter/clutter/clutter-feature.h"
+                       line="36"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-feature.c"
+             line="112">%TRUE if a feature is available</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-feature.c"
+               line="107">a #ClutterFeatureFlags</doc>
+          <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="feature_get_all"
+              c:identifier="clutter_feature_get_all"
+              version="0.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-feature.c"
+           line="128">Returns all the supported features.</doc>
+      <source-position filename="../clutter/clutter/clutter-feature.h"
+                       line="38"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-feature.c"
+             line="133">a logical OR of all the supported features.</doc>
+        <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+      </return-value>
+    </function>
+    <function name="get_accessibility_enabled"
+              c:identifier="clutter_get_accessibility_enabled"
+              version="1.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="334">Returns whether Clutter has accessibility support enabled.  As
+least, a value of TRUE means that there are a proper AtkUtil
+implementation available</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="144"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="341">%TRUE if Clutter has accessibility support enabled</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_current_event"
+              c:identifier="clutter_get_current_event"
+              version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1660">If an event is currently being processed, return that event.
+This function is intended to be used to access event state
+that might not be exposed by higher-level widgets.  For
+example, to get the key modifier state from a Button 'clicked'
+event.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="785"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1669">The current ClutterEvent, or %NULL if none</doc>
+        <type name="Event" c:type="const ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="get_current_event_time"
+              c:identifier="clutter_get_current_event_time"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-event.c"
+           line="1637">Retrieves the timestamp of the last event, if there is an
+event or if the event has a timestamp.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="783"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-event.c"
+             line="1643">the event timestamp, or %CLUTTER_CURRENT_TIME</doc>
+        <type name="guint32" c:type="guint32"/>
+      </return-value>
+    </function>
+    <function name="get_default_backend"
+              c:identifier="clutter_get_default_backend"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-backend.c"
+           line="706">Retrieves the default #ClutterBackend used by Clutter. The
+#ClutterBackend holds backend-specific configuration options.</doc>
+      <source-position filename="../clutter/clutter/clutter-backend.h"
+                       line="62"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-backend.c"
+             line="712">the default backend. You should
+  not ref or unref the returned object. Applications should rarely
+  need to use this.</doc>
+        <type name="Backend" c:type="ClutterBackend*"/>
+      </return-value>
+    </function>
+    <function name="get_default_frame_rate"
+              c:identifier="clutter_get_default_frame_rate"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2027">Retrieves the default frame rate. See clutter_set_default_frame_rate().</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="187"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="2032">the default frame rate</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_default_text_direction"
+              c:identifier="clutter_get_default_text_direction"
+              version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2290">Retrieves the default direction for the text. The text direction is
+determined by the locale and/or by the `CLUTTER_TEXT_DIRECTION`
+environment variable.
+
+The default text direction can be overridden on a per-actor basis by using
+clutter_actor_set_text_direction().</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="184"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="2300">the default text direction</doc>
+        <type name="TextDirection" c:type="ClutterTextDirection"/>
+      </return-value>
+    </function>
+    <function name="get_font_map"
+              c:identifier="clutter_get_font_map"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2046">Retrieves the #PangoFontMap instance used by Clutter.
+You can use the global font map object with the COGL
+Pango API.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="181"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="2053">the #PangoFontMap instance. The returned
+  value is owned by Clutter and it should never be unreferenced.</doc>
+        <type name="Pango.FontMap" c:type="PangoFontMap*"/>
+      </return-value>
+    </function>
+    <function name="get_option_group"
+              c:identifier="clutter_get_option_group"
+              version="0.2"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="961">Returns a #GOptionGroup for the command line arguments recognized
+by Clutter. You should add this group to your #GOptionContext with
+g_option_context_add_group(), if you are using g_option_context_parse()
+to parse your commandline arguments.
+
+Calling g_option_context_parse() with Clutter's #GOptionGroup will result
+in Clutter's initialization. That is, the following code:
+
+|[
+  g_option_context_set_main_group (context, clutter_get_option_group ());
+  res = g_option_context_parse (context, &amp;argc, &amp;argc, NULL);
+]|
+
+is functionally equivalent to:
+
+|[
+  clutter_init (&amp;argc, &amp;argv);
+]|
+
+After g_option_context_parse() on a #GOptionContext containing the
+Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be
+initialized.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="135"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="987">a #GOptionGroup for the commandline arguments
+  recognized by Clutter</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_option_group_without_init"
+              c:identifier="clutter_get_option_group_without_init"
+              version="0.8"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="1017">Returns a #GOptionGroup for the command line arguments recognized
+by Clutter. You should add this group to your #GOptionContext with
+g_option_context_add_group(), if you are using g_option_context_parse()
+to parse your commandline arguments.
+
+Unlike clutter_get_option_group(), calling g_option_context_parse() with
+the #GOptionGroup returned by this function requires a subsequent explicit
+call to clutter_init(); use this function when needing to set foreign
+display connection with clutter_x11_set_display(), or with
+`gtk_clutter_init()`.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="137"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="1031">a #GOptionGroup for the commandline arguments
+  recognized by Clutter</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_script_id"
+              c:identifier="clutter_get_script_id"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-script.c"
+           line="800">Retrieves the Clutter script id, if any.</doc>
+      <source-position filename="../clutter/clutter/clutter-script.h"
+                       line="208"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-script.c"
+             line="806">the script id, or %NULL if @object was not defined inside
+  a UI definition file. The returned string is owned by the object and
+  should never be modified or freed.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-script.c"
+               line="802">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="image_error_quark"
+              c:identifier="clutter_image_error_quark"
+              moved-to="ImageError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="init" c:identifier="clutter_init">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="1186">Initialises everything needed to operate with Clutter and parses some
+standard command line options; @argc and @argv are adjusted accordingly
+so your own code will never see those standard arguments.
+
+It is safe to call this function multiple times.
+
+This function will not abort in case of errors during
+initialization; clutter_init() will print out the error message on
+stderr, and will return an error code. It is up to the application
+code to handle this case. If you need to display the error message
+yourself, you can use clutter_init_with_args(), which takes a #GError
+pointer.
+
+If this function fails, and returns an error code, any subsequent
+Clutter API will have undefined behaviour - including segmentation
+faults and assertion failures. Make sure to handle the returned
+#ClutterInitError enumeration value.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="124"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="1210">a #ClutterInitError value</doc>
+        <type name="InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1188">The number of arguments in @argv</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1189">A pointer to an array
+  of arguments.</doc>
+          <array length="0" zero-terminated="0" c:type="char***">
+            <type name="utf8" c:type="char**"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init_error_quark"
+              c:identifier="clutter_init_error_quark"
+              moved-to="InitError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="init_with_args"
+              c:identifier="clutter_init_with_args"
+              version="0.2"
+              throws="1">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="1057">This function does the same work as clutter_init(). Additionally,
+it allows you to add your own command line options, and it
+automatically generates nicely formatted &lt;option&gt;--help&lt;/option&gt;
+output. Note that your program will be terminated after writing
+out the help output. Also note that, in case of error, the
+error message will be placed inside @error instead of being
+printed on the display.
+
+Just like clutter_init(), if this function returns an error code then
+any subsequent call to any other Clutter API will result in undefined
+behaviour - including segmentation faults.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="127"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="1084">%CLUTTER_INIT_SUCCESS if Clutter has been successfully
+  initialised, or other values or #ClutterInitError in case of
+  error.</doc>
+        <type name="InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1059">a pointer to the number of command line arguments</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1060">a pointer to the array
+  of command line arguments</doc>
+          <array length="0" zero-terminated="0" c:type="char***">
+            <type name="utf8" c:type="char**"/>
+          </array>
+        </parameter>
+        <parameter name="parameter_string"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1062">a string which is displayed in the
+  first line of &lt;option&gt;--help&lt;/option&gt; output, after
+  &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="entries"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1065">a %NULL terminated array of
+  #GOptionEntry&lt;!-- --&gt;s describing the options of your program</doc>
+          <array zero-terminated="0" c:type="GOptionEntry*">
+            <type name="GLib.OptionEntry" c:type="GOptionEntry"/>
+          </array>
+        </parameter>
+        <parameter name="translation_domain"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="1067">a translation domain to use for
+  translating the &lt;option&gt;--help&lt;/option&gt; output for the options in
+  @entries with gettext(), or %NULL</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="keysym_to_unicode"
+              c:identifier="clutter_keysym_to_unicode">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-keysyms-table.c"
+           line="833">Converts @keyval from a Clutter key symbol to the corresponding
+ISO10646 (Unicode) character.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="778"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keysyms-table.c"
+             line="840">a Unicode character, or 0 if there  is no corresponding
+  character.</doc>
+        <type name="guint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-keysyms-table.c"
+               line="835">a key symbol</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_alloc"
+              c:identifier="clutter_matrix_alloc"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="199">Allocates enough memory to hold a #ClutterMatrix.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="439"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="204">the newly allocated #ClutterMatrix</doc>
+        <type name="Matrix" c:type="ClutterMatrix*"/>
+      </return-value>
+    </function>
+    <function name="matrix_free"
+              c:identifier="clutter_matrix_free"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="214">Frees the memory allocated by clutter_matrix_alloc().</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="449"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="216">a #ClutterMatrix</doc>
+          <type name="Matrix" c:type="ClutterMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_get_type" c:identifier="clutter_matrix_get_type">
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="436"/>
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="matrix_init_from_array"
+              c:identifier="clutter_matrix_init_from_array"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="253">Initializes @matrix with the contents of a C array of floating point
+values.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="443"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="262">the initialized #ClutterMatrix</doc>
+        <type name="Matrix" c:type="ClutterMatrix*"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="255">a #ClutterMatrix</doc>
+          <type name="Matrix" c:type="ClutterMatrix*"/>
+        </parameter>
+        <parameter name="values" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="256">a C array of 16 floating point values,
+  representing a 4x4 matrix, with column-major order</doc>
+          <array zero-terminated="0" c:type="const float*" fixed-size="16">
+            <type name="gfloat" c:type="float"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_init_from_matrix"
+              c:identifier="clutter_matrix_init_from_matrix"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="275">Initializes the #ClutterMatrix @a with the contents of the
+#ClutterMatrix @b.</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="446"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="283">the initialized #ClutterMatrix</doc>
+        <type name="Matrix" c:type="ClutterMatrix*"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="277">the #ClutterMatrix to initialize</doc>
+          <type name="Matrix" c:type="ClutterMatrix*"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="278">the #ClutterMatrix to copy</doc>
+          <type name="Matrix" c:type="const ClutterMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_init_identity"
+              c:identifier="clutter_matrix_init_identity"
+              version="1.12">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-base-types.c"
+           line="228">Initializes @matrix with the identity matrix, i.e.:
+
+|[
+  .xx = 1.0, .xy = 0.0, .xz = 0.0, .xw = 0.0
+  .yx = 0.0, .yy = 1.0, .yz = 0.0, .yw = 0.0
+  .zx = 0.0, .zy = 0.0, .zz = 1.0, .zw = 0.0
+  .wx = 0.0, .wy = 0.0, .wz = 0.0, .ww = 1.0
+]|</doc>
+      <source-position filename="../clutter/clutter/clutter-types.h"
+                       line="441"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-base-types.c"
+             line="241">the initialized #ClutterMatrix</doc>
+        <type name="Matrix" c:type="ClutterMatrix*"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-base-types.c"
+               line="230">a #ClutterMatrix</doc>
+          <type name="Matrix" c:type="ClutterMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_color"
+              c:identifier="clutter_param_spec_color"
+              version="0.8"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="1164">Creates a #GParamSpec for properties using #ClutterColor.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="189"/>
+      <return-value>
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="1174">the newly created #GParamSpec</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1166">name of the property</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1167">short name</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1168">description (can be translatable)</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1169">default value</doc>
+          <type name="Color" c:type="const ClutterColor*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1170">flags for the param spec</doc>
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_units"
+              c:identifier="clutter_param_spec_units"
+              version="1.0"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="890">Creates a #GParamSpec for properties using #ClutterUnits.</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="167"/>
+      <return-value>
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="903">the newly created #GParamSpec</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="892">name of the property</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="893">short name</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="894">description (can be translatable)</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="default_type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="895">the default type for the #ClutterUnits</doc>
+          <type name="UnitType" c:type="ClutterUnitType"/>
+        </parameter>
+        <parameter name="minimum" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="896">lower boundary</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="maximum" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="897">higher boundary</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="898">default value</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="899">flags for the param spec</doc>
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_debug_flags"
+              c:identifier="clutter_remove_debug_flags"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2353">Removes the debug flags passed from the list of debug flags.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="195"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="debug_flags" transfer-ownership="none">
+          <type name="DebugFlag" c:type="ClutterDebugFlag"/>
+        </parameter>
+        <parameter name="draw_flags" transfer-ownership="none">
+          <type name="DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
+        </parameter>
+        <parameter name="pick_flags" transfer-ownership="none">
+          <type name="PickDebugFlag" c:type="ClutterPickDebugFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="script_error_quark"
+              c:identifier="clutter_script_error_quark"
+              moved-to="ScriptError.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="set_custom_backend_func"
+              c:identifier="clutter_set_custom_backend_func">
+      <source-position filename="../clutter/clutter/clutter-mutter.h"
+                       line="47"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_idle"
+              c:identifier="clutter_threads_add_idle"
+              shadowed-by="threads_add_idle_full"
+              version="0.4"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="568">Simple wrapper around clutter_threads_add_idle_full() using the
+default priority.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="151"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="576">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="570">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="571">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_idle_full"
+              c:identifier="clutter_threads_add_idle_full"
+              shadows="threads_add_idle"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="461">Adds a function to be called whenever there are no higher priority
+events pending. If the function returns %FALSE it is automatically
+removed from the list of event sources and will not be called again.
+
+This function can be considered a thread-safe variant of g_idle_add_full():
+it will call @function while holding the Clutter lock. It is logically
+equivalent to the following implementation:
+
+|[
+static gboolean
+idle_safe_callback (gpointer data)
+{
+   SafeClosure *closure = data;
+   gboolean res = FALSE;
+
+   // the callback does not need to acquire the Clutter
+    / lock itself, as it is held by the this proxy handler
+    //
+   res = closure-&gt;callback (closure-&gt;data);
+
+   return res;
+}
+static gulong
+add_safe_idle (GSourceFunc callback,
+               gpointer    data)
+{
+  SafeClosure *closure = g_new0 (SafeClosure, 1);
+
+  closure-&gt;callback = callback;
+  closure-&gt;data = data;
+
+  return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
+                          idle_safe_callback,
+                          closure,
+                          g_free)
+}
+]|
+
+This function should be used by threaded applications to make sure
+that @func is emitted under the Clutter threads lock and invoked
+from the same thread that started the Clutter main loop. For instance,
+it can be used to update the UI using the results from a worker
+thread:
+
+|[
+static gboolean
+update_ui (gpointer data)
+{
+  SomeClosure *closure = data;
+
+  // it is safe to call Clutter API from this function because
+   / it is invoked from the same thread that started the main
+   / loop and under the Clutter thread lock
+   //
+  clutter_label_set_text (CLUTTER_LABEL (closure-&gt;label),
+                          closure-&gt;text);
+
+  g_object_unref (closure-&gt;label);
+  g_free (closure);
+
+  return FALSE;
+}
+
+  // within another thread //
+  closure = g_new0 (SomeClosure, 1);
+  // always take a reference on GObject instances //
+  closure-&gt;label = g_object_ref (my_application-&gt;label);
+  closure-&gt;text = g_strdup (processed_text_to_update_the_label);
+
+  clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE,
+                                 update_ui,
+                                 closure,
+                                 NULL);
+]|</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="154"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="544">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="463">the priority of the timeout source. Typically this will be in the
+   range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="2"
+                   destroy="3">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="465">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="466">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="467">functio to call when the idle source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_repaint_func"
+              c:identifier="clutter_threads_add_repaint_func"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2115">Adds a function to be called whenever Clutter is processing a new
+frame.
+
+If the function returns %FALSE it is automatically removed from the
+list of repaint functions and will not be called again.
+
+This function is guaranteed to be called from within the same thread
+that called clutter_main(), and while the Clutter lock is being held;
+the function will be called within the main loop, so it is imperative
+that it does not block, otherwise the frame time budget may be lost.
+
+A repaint function is useful to ensure that an update of the scenegraph
+is performed before the scenegraph is repainted. By default, a repaint
+function added using this function will be invoked prior to the frame
+being processed.
+
+Adding a repaint function does not automatically ensure that a new
+frame will be queued.
+
+When the repaint function is removed (either because it returned %FALSE
+or because clutter_threads_remove_repaint_func() has been called) the
+@notify function will be called, if any is set.
+
+See also: clutter_threads_add_repaint_func_full()</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="169"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="2147">the ID (greater than 0) of the repaint function. You
+  can use the returned integer to remove the repaint function by
+  calling clutter_threads_remove_repaint_func().</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="1"
+                   destroy="2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2117">the function to be called within the paint cycle</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2118">data to be passed to the function, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2119">function to be called when removing the repaint
+   function, or %NULL</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_repaint_func_full"
+              c:identifier="clutter_threads_add_repaint_func_full"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2163">Adds a function to be called whenever Clutter is processing a new
+frame.
+
+If the function returns %FALSE it is automatically removed from the
+list of repaint functions and will not be called again.
+
+This function is guaranteed to be called from within the same thread
+that called clutter_main(), and while the Clutter lock is being held;
+the function will be called within the main loop, so it is imperative
+that it does not block, otherwise the frame time budget may be lost.
+
+A repaint function is useful to ensure that an update of the scenegraph
+is performed before the scenegraph is repainted. The @flags passed to this
+function will determine the section of the frame processing that will
+result in @func being called.
+
+Adding a repaint function does not automatically ensure that a new
+frame will be queued.
+
+When the repaint function is removed (either because it returned %FALSE
+or because clutter_threads_remove_repaint_func() has been called) the
+@notify function will be called, if any is set.</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="173"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="2194">the ID (greater than 0) of the repaint function. You
+  can use the returned integer to remove the repaint function by
+  calling clutter_threads_remove_repaint_func().</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2165">flags for the repaint function</doc>
+          <type name="RepaintFlags" c:type="ClutterRepaintFlags"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="2"
+                   destroy="3">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2166">the function to be called within the paint cycle</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2167">data to be passed to the function, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2168">function to be called when removing the repaint
+   function, or %NULL</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_timeout"
+              c:identifier="clutter_threads_add_timeout"
+              shadowed-by="threads_add_timeout_full"
+              version="0.4"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="640">Simple wrapper around clutter_threads_add_timeout_full().</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="159"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="648">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="642">the time between calls to the function, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="643">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="644">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_timeout_full"
+              c:identifier="clutter_threads_add_timeout_full"
+              shadows="threads_add_timeout"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="591">Sets a function to be called at regular intervals holding the Clutter
+threads lock, with the given priority. The function is called repeatedly
+until it returns %FALSE, at which point the timeout is automatically
+removed and the function will not be called again. The @notify function
+is called when the timeout is removed.
+
+The first call to the function will be at the end of the first @interval.
+
+It is important to note that, due to how the Clutter main loop is
+implemented, the timing will not be accurate and it will not try to
+"keep up" with the interval.
+
+See also clutter_threads_add_idle_full().</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="163"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-main.c"
+             line="614">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="593">the priority of the timeout source. Typically this will be in the
+           range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="interval" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="595">the time between calls to the function, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="3"
+                   destroy="4">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="596">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="597">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="598">function to call when the timeout source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_remove_repaint_func"
+              c:identifier="clutter_threads_remove_repaint_func"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-main.c"
+           line="2073">Removes the repaint function with @handle_id as its id</doc>
+      <source-position filename="../clutter/clutter/clutter-main.h"
+                       line="178"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle_id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-main.c"
+               line="2075">an unsigned integer greater than zero</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unicode_to_keysym"
+              c:identifier="clutter_unicode_to_keysym"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-keysyms-table.c"
+           line="1638">Convert from a ISO10646 character to a key symbol.</doc>
+      <source-position filename="../clutter/clutter/clutter-event.h"
+                       line="780"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-keysyms-table.c"
+             line="1644">the corresponding Clutter key symbol, if one exists.
+  or, if there is no corresponding symbol, wc | 0x01000000</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="wc" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-keysyms-table.c"
+               line="1640">a ISO10646 encoded character</doc>
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_cm"
+              c:identifier="clutter_units_from_cm"
+              moved-to="Units.from_cm"
+              version="1.2">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="168">Stores a value in centimeters inside @units</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="99"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="170">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="cm" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="171">centimeters</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_em"
+              c:identifier="clutter_units_from_em"
+              moved-to="Units.from_em"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="220">Stores a value in em inside @units, using the default font
+name as returned by clutter_backend_get_font_name()</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="89"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="222">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="em" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="223">em</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_em_for_font"
+              c:identifier="clutter_units_from_em_for_font"
+              moved-to="Units.from_em_for_font"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="247">Stores a value in em inside @units using @font_name</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="92"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="249">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="font_name"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="250">the font name and size</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="em" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="251">em</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_mm"
+              c:identifier="clutter_units_from_mm"
+              moved-to="Units.from_mm"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="142">Stores a value in millimiters inside @units</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="96"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="144">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="mm" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="145">millimeters</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_pixels"
+              c:identifier="clutter_units_from_pixels"
+              moved-to="Units.from_pixels"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="275">Stores a value in pixels inside @units</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="86"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="277">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="px" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="278">pixels</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_pt"
+              c:identifier="clutter_units_from_pt"
+              moved-to="Units.from_pt"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="194">Stores a value in typographic points inside @units</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="102"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="196">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="pt" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="197">typographic points</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="units_from_string"
+              c:identifier="clutter_units_from_string"
+              moved-to="Units.from_string"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="430">Parses a value and updates @units with it
+
+A #ClutterUnits expressed in string should match:
+
+|[
+  units: wsp* unit-value wsp* unit-name? wsp*
+  unit-value: number
+  unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm'
+  number: digit+
+          | digit* sep digit+
+  sep: '.' | ','
+  digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
+  wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+
+]|
+
+For instance, these are valid strings:
+
+|[
+  10 px
+  5.1 em
+  24 pt
+  12.6 mm
+  .3 cm
+]|
+
+While these are not:
+
+|[
+  42 cats
+  omg!1!ponies
+]|
+
+If no unit is specified, pixels are assumed.</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="109"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="469">%TRUE if the string was successfully parsed,
+  and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="units"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="432">a #ClutterUnits</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+        <parameter name="str" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="433">the string to convert</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_dup_paint_node"
+              c:identifier="clutter_value_dup_paint_node"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="744">Retrieves a pointer to the #ClutterPaintNode contained inside
+the passed #GValue, and if not %NULL it will increase the
+reference count.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="110"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="752">a pointer
+  to the #ClutterPaintNode, with its reference count increased,
+  or %NULL</doc>
+        <type name="PaintNode" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="746">a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_color"
+              c:identifier="clutter_value_get_color"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="1073">Gets the #ClutterColor contained in @value.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="184"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-color.c"
+             line="1079">the color inside the passed #GValue</doc>
+        <type name="Color" c:type="const ClutterColor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1075">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_paint_node"
+              c:identifier="clutter_value_get_paint_node"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="724">Retrieves a pointer to the #ClutterPaintNode contained inside
+the passed #GValue.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="108"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-paint-node.c"
+             line="731">a pointer to
+  a #ClutterPaintNode, or %NULL</doc>
+        <type name="PaintNode" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="726">a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_float"
+              c:identifier="clutter_value_get_shader_float"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="470">Retrieves the list of floating point values stored inside
+the passed #GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_FLOAT.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="93"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-types.c"
+             line="480">the pointer to a list of
+  floating point values.  The returned value is owned by the
+  #GValue and should never be modified or freed.</doc>
+        <array length="1" zero-terminated="0" c:type="const gfloat*">
+          <type name="gfloat" c:type="gfloat"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="472">a #GValue</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="473">return location for the number of returned floating
+  point values, or %NULL</doc>
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_int"
+              c:identifier="clutter_value_get_shader_int"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="502">Retrieves the list of integer values stored inside the passed
+#GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_INT.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="96"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-types.c"
+             line="512">the pointer to a list of
+  integer values.  The returned value is owned by the #GValue and
+  should never be modified or freed.</doc>
+        <array length="1" zero-terminated="0" c:type="const gint*">
+          <type name="gint" c:type="gint"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="504">a #GValue</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="505">return location for the number of returned integer
+  values, or %NULL</doc>
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_matrix"
+              c:identifier="clutter_value_get_shader_matrix"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="534">Retrieves a matrix of floating point values stored inside
+the passed #GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_MATRIX.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="99"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-shader-types.c"
+             line="544">the pointer to a matrix
+  of floating point values. The returned value is owned by the #GValue and
+  should never be modified or freed.</doc>
+        <array length="1" zero-terminated="0" c:type="const gfloat*">
+          <type name="gfloat" c:type="gfloat"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="536">a #GValue</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="537">return location for the number of returned floating
+  point values, or %NULL</doc>
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_units"
+              c:identifier="clutter_value_get_units"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="764">Gets the #ClutterUnits contained in @value.</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="180"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/clutter-units.c"
+             line="770">the units inside the passed #GValue</doc>
+        <type name="Units" c:type="const ClutterUnits*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="766">a #GValue initialized to %CLUTTER_TYPE_UNITS</doc>
+          <type name="GObject.Value" c:type="const GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_color"
+              c:identifier="clutter_value_set_color"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-color.c"
+           line="1055">Sets @value to @color.</doc>
+      <source-position filename="../clutter/clutter/clutter-color.h"
+                       line="181"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1057">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-color.c"
+               line="1058">the color to set</doc>
+          <type name="Color" c:type="const ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_paint_node"
+              c:identifier="clutter_value_set_paint_node"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="651">Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE.
+
+This function increased the reference count of @node; if you do not wish
+to increase the reference count, use clutter_value_take_paint_node()
+instead. The reference count will be released by g_value_unset().</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="102"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="653">a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="node"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="654">a #ClutterPaintNode, or %NULL</doc>
+          <type name="PaintNode" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_float"
+              c:identifier="clutter_value_set_shader_float"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="380">Sets @floats as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="81"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="382">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="383">number of floating point values in @floats</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="floats" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="384">an array of floating point values</doc>
+          <array length="1" zero-terminated="0" c:type="const gfloat*">
+            <type name="gfloat" c:type="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_int"
+              c:identifier="clutter_value_set_shader_int"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="410">Sets @ints as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_INT.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="85"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="412">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="413">number of integer values in @ints</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="ints" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="414">an array of integer values</doc>
+          <array length="1" zero-terminated="0" c:type="const gint*">
+            <type name="gint" c:type="gint"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_matrix"
+              c:identifier="clutter_value_set_shader_matrix"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-shader-types.c"
+           line="440">Sets @matrix as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX.</doc>
+      <source-position filename="../clutter/clutter/clutter-shader-types.h"
+                       line="89"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="442">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="443">number of floating point values in @floats</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-shader-types.c"
+               line="444">a matrix of floating point values</doc>
+          <array length="1" zero-terminated="0" c:type="const gfloat*">
+            <type name="gfloat" c:type="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_units"
+              c:identifier="clutter_value_set_units"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-units.c"
+           line="746">Sets @value to @units</doc>
+      <source-position filename="../clutter/clutter/clutter-units.h"
+                       line="177"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="748">a #GValue initialized to %CLUTTER_TYPE_UNITS</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="units" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-units.c"
+               line="749">the units to set</doc>
+          <type name="Units" c:type="const ClutterUnits*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_take_paint_node"
+              c:identifier="clutter_value_take_paint_node"
+              version="1.10">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/clutter-paint-node.c"
+           line="687">Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE.
+
+Unlike clutter_value_set_paint_node(), this function will not take a
+reference on the passed @node: instead, it will take ownership of the
+current reference count.</doc>
+      <source-position filename="../clutter/clutter/clutter-paint-node.h"
+                       line="105"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="689">a #GValue, initialized with %CLUTTER_TYPE_PAINT_NODE</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="node"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/clutter-paint-node.c"
+               line="690">a #ClutterPaintNode, or %NULL</doc>
+          <type name="PaintNode" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/ClutterX11-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/ClutterX11-7.gir
new file mode 100644
index 00000000..06dc8b8d
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/ClutterX11-7.gir
@@ -0,0 +1,315 @@
+<?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="Clutter" version="7"/>
+  <include name="Cogl" version="7"/>
+  <include name="CoglPango" version="7"/>
+  <include name="xlib" version="2.0"/>
+  <package name="mutter-clutter-x11-7"/>
+  <namespace name="ClutterX11"
+             version="7"
+             shared-library="libmutter-clutter-7.so.0"
+             c:identifier-prefixes="ClutterX11"
+             c:symbol-prefixes="clutter_x11">
+    <callback name="FilterFunc" c:type="ClutterX11FilterFunc" version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-x11.h"
+           line="75">Filter function for X11 native events.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="87"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-x11.h"
+             line="83">the result of the filtering</doc>
+        <type name="FilterReturn" c:type="ClutterX11FilterReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="xev" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-x11.h"
+               line="77">Native X11 event structure</doc>
+          <type name="xlib.XEvent" c:type="XEvent*"/>
+        </parameter>
+        <parameter name="cev" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-x11.h"
+               line="78">Clutter event structure</doc>
+          <type name="Clutter.Event" c:type="ClutterEvent*"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="2">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-x11.h"
+               line="79">user data passed to the filter function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="FilterReturn"
+                 version="0.6"
+                 glib:type-name="ClutterX11FilterReturn"
+                 glib:get-type="clutter_x11_filter_return_get_type"
+                 c:type="ClutterX11FilterReturn">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-x11.h"
+           line="48">Return values for the #ClutterX11FilterFunc function.</doc>
+      <member name="continue"
+              value="0"
+              c:identifier="CLUTTER_X11_FILTER_CONTINUE"
+              glib:nick="continue">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-x11.h"
+             line="50">The event was not handled, continues the
+  processing</doc>
+      </member>
+      <member name="translate"
+              value="1"
+              c:identifier="CLUTTER_X11_FILTER_TRANSLATE"
+              glib:nick="translate">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-x11.h"
+             line="52">Native event translated into a Clutter
+  event, stops the processing</doc>
+      </member>
+      <member name="remove"
+              value="2"
+              c:identifier="CLUTTER_X11_FILTER_REMOVE"
+              glib:nick="remove">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-x11.h"
+             line="54">Remove the event, stops the processing</doc>
+      </member>
+    </enumeration>
+    <record name="XInputDevice" c:type="ClutterX11XInputDevice" disguised="1">
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="73"/>
+    </record>
+    <function name="add_filter"
+              c:identifier="clutter_x11_add_filter"
+              version="0.6"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="802">Adds an event filter function.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="106"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="804">a filter function</doc>
+          <type name="FilterFunc" c:type="ClutterX11FilterFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="805">user data to be passed to the filter function, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="clutter-x11">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-x11.h"
+           line="26">The X11 backend for Clutter provides some specific API, allowing
+integration with the Xlibs API for embedding and manipulating the
+stage window, or for trapping X errors.
+
+The ClutterX11 API is available since Clutter 0.6</doc>
+    </docsection>
+    <function name="get_default_display"
+              c:identifier="clutter_x11_get_default_display"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="687">Retrieves the pointer to the default display.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="97"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-backend-x11.c"
+             line="692">the default display</doc>
+        <type name="xlib.Display" c:type="Display*"/>
+      </return-value>
+    </function>
+    <function name="get_default_screen"
+              c:identifier="clutter_x11_get_default_screen"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="744">Gets the number of the default X Screen object.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="99"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-backend-x11.c"
+             line="749">the number of the default screen</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="get_root_window"
+              c:identifier="clutter_x11_get_root_window"
+              version="0.6"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="773">Retrieves the root window.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="101"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-backend-x11.c"
+             line="778">the id of the root window</doc>
+        <type name="xlib.Window" c:type="Window"/>
+      </return-value>
+    </function>
+    <function name="get_use_stereo_stage"
+              c:identifier="clutter_x11_get_use_stereo_stage"
+              version="1.22">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="938">Retrieves whether the Clutter X11 backend will create stereo
+stages if possible.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="115"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-backend-x11.c"
+             line="944">%TRUE if stereo stages are used if possible</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="remove_filter"
+              c:identifier="clutter_x11_remove_filter"
+              version="0.6"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="845">Removes the given filter function.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="109"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="847">a filter function</doc>
+          <type name="FilterFunc" c:type="ClutterX11FilterFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="848">user data to be passed to the filter function, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_display"
+              c:identifier="clutter_x11_set_display"
+              version="0.8">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="716">Sets the display connection Clutter should use; must be called
+before clutter_init(), clutter_init_with_args() or other functions
+pertaining Clutter's initialization process.
+
+If you are parsing the command line arguments by retrieving Clutter's
+#GOptionGroup with clutter_get_option_group() and calling
+g_option_context_parse() yourself, you should also call
+clutter_x11_set_display() before g_option_context_parse().</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="103"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="xdpy" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="718">pointer to a X display connection.</doc>
+          <type name="xlib.Display" c:type="Display*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_use_stereo_stage"
+              c:identifier="clutter_x11_set_use_stereo_stage"
+              version="1.22">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="900">Sets whether the backend object for Clutter stages, will,
+if possible, be created with the ability to support stereo drawing
+(drawing separate images for the left and right eyes).
+
+This function must be called before clutter_init() is called.
+During paint callbacks, cogl_framebuffer_is_stereo() can be called
+on the framebuffer retrieved by cogl_get_draw_framebuffer() to
+determine if stereo support was successfully enabled, and
+cogl_framebuffer_set_stereo_mode() to determine which buffers
+will be drawn to.
+
+Note that this function *does not* cause the stage to be drawn
+multiple times with different perspective transformations and thus
+appear in 3D, it simply enables individual ClutterActors to paint
+different images for the left and and right eye.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="113"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="use_stereo" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../clutter/clutter/x11/clutter-backend-x11.c"
+               line="902">%TRUE if the stereo stages should be used if possible.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trap_x_errors"
+              c:identifier="clutter_x11_trap_x_errors"
+              version="0.6">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="656">Traps every X error until clutter_x11_untrap_x_errors() is called.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="92"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="untrap_x_errors"
+              c:identifier="clutter_x11_untrap_x_errors"
+              version="0.4">
+      <doc xml:space="preserve"
+           filename="../clutter/clutter/x11/clutter-backend-x11.c"
+           line="670">Removes the X error trap and returns the current status.</doc>
+      <source-position filename="../clutter/clutter/x11/clutter-x11.h"
+                       line="94"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../clutter/clutter/x11/clutter-backend-x11.c"
+             line="675">the trapped error code, or 0 for success</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/Cogl-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/Cogl-7.gir
new file mode 100644
index 00000000..06e740d2
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/Cogl-7.gir
@@ -0,0 +1,14966 @@
+<?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="GL" version="1.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Graphene" version="1.0"/>
+  <include name="cairo" version="1.0"/>
+  <c:include name="cogl/cogl.h"/>
+  <namespace name="Cogl"
+             version="7"
+             shared-library="libmutter-cogl-7.so.0"
+             c:identifier-prefixes="Cogl"
+             c:symbol-prefixes="cogl">
+    <alias name="Angle" c:type="CoglAngle">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="92">Integer representation of an angle such that 1024 corresponds to
+full circle (i.e., 2 * pi).</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="100"/>
+      <type name="gint32" c:type="int32_t"/>
+    </alias>
+    <alias name="Handle" c:type="CoglHandle">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="76">Type used for storing references to cogl objects, the CoglHandle is
+a fully opaque type without any public data members.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="82"/>
+      <type name="gpointer" c:type="void*"/>
+    </alias>
+    <alias name="PipelineKey" c:type="CoglPipelineKey">
+      <source-position filename="../cogl/cogl/cogl-context.h" line="371"/>
+      <type name="utf8" c:type="const char* const"/>
+    </alias>
+    <alias name="UserDataDestroyCallback" c:type="CoglUserDataDestroyCallback">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="130">When associating private data with a #CoglObject a callback can be
+given which will be called either if the object is destroyed or if
+cogl_object_set_user_data() is called with NULL user_data for the
+same key.</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="142"/>
+      <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+    </alias>
+    <constant name="AFIRST_BIT" value="64" c:type="COGL_AFIRST_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="66"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="A_BIT" value="16" c:type="COGL_A_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="64"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="AttributeType" version="1.0" c:type="CoglAttributeType">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="283">Data types for the components of a vertex attribute.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="304"/>
+      <member name="byte" value="5120" c:identifier="COGL_ATTRIBUTE_TYPE_BYTE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="285">Data is the same size of a byte</doc>
+      </member>
+      <member name="unsigned_byte"
+              value="5121"
+              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="286">Data is the same size of an
+  unsigned byte</doc>
+      </member>
+      <member name="short"
+              value="5122"
+              c:identifier="COGL_ATTRIBUTE_TYPE_SHORT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="288">Data is the same size of a short integer</doc>
+      </member>
+      <member name="unsigned_short"
+              value="5123"
+              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_SHORT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="289">Data is the same size of
+  an unsigned short integer</doc>
+      </member>
+      <member name="float"
+              value="5126"
+              c:identifier="COGL_ATTRIBUTE_TYPE_FLOAT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="291">Data is the same size of a float</doc>
+      </member>
+    </enumeration>
+    <constant name="BGR_BIT" value="32" c:type="COGL_BGR_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="65"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="BUFFER"
+                    c:identifier="COGL_BUFFER"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/deprecated/cogl-type-casts.h"
+                       line="49"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Bitmap"
+           c:symbol-prefix="bitmap"
+           c:type="CoglBitmap"
+           parent="Object"
+           glib:type-name="CoglBitmap"
+           glib:get-type="cogl_bitmap_get_gtype"
+           glib:fundamental="1">
+      <constructor name="new_for_data"
+                   c:identifier="cogl_bitmap_new_for_data"
+                   version="1.10"
+                   introspectable="0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="150">Creates a bitmap using some existing data. The data is not copied
+so the application must keep the buffer alive for the lifetime of
+the #CoglBitmap. This can be used for example with
+cogl_framebuffer_read_pixels_into_bitmap() to read data directly
+into an application buffer with the specified rowstride.</doc>
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="171"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="166">A new #CoglBitmap.</doc>
+          <type name="Bitmap" c:type="CoglBitmap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="152">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="153">The width of the bitmap.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="154">The height of the bitmap.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="155">The format of the pixel data.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="156">The rowstride of the bitmap (the number of bytes from
+  the start of one row of the bitmap to the next).</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="158">A pointer to the data. The bitmap will take ownership of this data.</doc>
+            <type name="guint8" c:type="uint8_t*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_buffer"
+                   c:identifier="cogl_bitmap_new_from_buffer"
+                   version="1.8"
+                   introspectable="0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="88">Wraps some image data that has been uploaded into a #CoglBuffer as
+a #CoglBitmap. The data is not copied in this process.</doc>
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="108"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="102">a #CoglBitmap encapsulating the given @buffer.</doc>
+          <type name="Bitmap" c:type="CoglBitmap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="90">A #CoglBuffer containing image data</doc>
+            <type c:type="CoglBuffer*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="91">The #CoglPixelFormat defining the format of the image data
+         in the given @buffer.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="93">The width of the image data in the given @buffer.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="94">The height of the image data in the given @buffer.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="95">The rowstride in bytes of the image data in the given @buffer.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="96">The offset into the given @buffer to the first pixel that
+         should be considered part of the #CoglBitmap.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_file"
+                   c:identifier="cogl_bitmap_new_from_file"
+                   version="1.0"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="71">Loads an image file from disk. This function can be safely called from
+within a thread.</doc>
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="85"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="79">a #CoglBitmap to the new loaded
+              image data, or %NULL if loading the image failed.</doc>
+          <type name="Bitmap" c:type="CoglBitmap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="73">the file to load.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_size"
+                   c:identifier="cogl_bitmap_new_with_size"
+                   version="1.10"
+                   introspectable="0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="115">Creates a new #CoglBitmap with the given width, height and format.
+The initial contents of the bitmap are undefined.
+
+The data for the bitmap will be stored in a newly created
+#CoglPixelBuffer. You can get a pointer to the pixel buffer using
+cogl_bitmap_get_buffer(). The #CoglBuffer API can then be
+used to fill the bitmap with data.
+
+&lt;note&gt;Cogl will try its best to provide a hardware array you can
+map, write into and effectively do a zero copy upload when creating
+a texture from it with cogl_texture_new_from_bitmap(). For various
+reasons, such arrays are likely to have a stride larger than width
+* bytes_per_pixel. The user must take the stride into account when
+writing into it. The stride can be retrieved with
+cogl_bitmap_get_rowstride().&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="145"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="138">a #CoglPixelBuffer representing the
+              newly created array or %NULL on failure</doc>
+          <type name="Bitmap" c:type="CoglBitmap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="117">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="118">width of the bitmap in pixels</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="119">height of the bitmap in pixels</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="120">the format of the pixels the array will store</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="cogl_bitmap_error_quark">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="302"/>
+        <return-value transfer-ownership="none">
+          <type name="guint32" c:type="uint32_t"/>
+        </return-value>
+      </function>
+      <function name="get_size_from_file"
+                c:identifier="cogl_bitmap_get_size_from_file"
+                version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="238">Parses an image file enough to extract the width and height
+of the bitmap.</doc>
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="252"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="247">%TRUE if the image was successfully parsed</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="240">the file to check</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="241">return location for the bitmap width, or %NULL</doc>
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="242">return location for the bitmap height, or %NULL</doc>
+            <type name="gint" c:type="int*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_buffer"
+              c:identifier="cogl_bitmap_get_buffer"
+              version="1.10"
+              introspectable="0"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="236"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="228">the #CoglPixelBuffer that this
+  buffer uses for storage. Note that if the bitmap was created with
+  cogl_bitmap_new_from_file() then it will not actually be using a
+  pixel buffer and this function will return %NULL.</doc>
+          <type c:type="CoglPixelBuffer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="226">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_format"
+              c:identifier="cogl_bitmap_get_format"
+              version="1.10"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="187"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="182">the #CoglPixelFormat that the data for the bitmap is in.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="180">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_height"
+              c:identifier="cogl_bitmap_get_height"
+              version="1.10"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="209"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="204">the height of the bitmap</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="202">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_rowstride"
+              c:identifier="cogl_bitmap_get_rowstride"
+              version="1.10"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="222"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="215">the rowstride of the bitmap. This is the number of
+  bytes between the address of start of one row to the address of the
+  next row in the image.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="213">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="cogl_bitmap_get_width"
+              version="1.10"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-bitmap.h" line="198"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="193">the width of the bitmap</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-bitmap.h"
+                 line="191">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </class>
+    <enumeration name="BitmapError" version="1.4" c:type="CoglBitmapError">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-bitmap.h"
+           line="279">Error codes that can be thrown when performing bitmap
+operations. Note that gdk_pixbuf_new_from_file() can also throw
+errors directly from the underlying image loading library. For
+example, if GdkPixbuf is used then errors #GdkPixbufError&lt;!-- --&gt;s
+will be used directly.</doc>
+      <source-position filename="../cogl/cogl/cogl-bitmap.h" line="299"/>
+      <member name="failed" value="0" c:identifier="COGL_BITMAP_ERROR_FAILED">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="281">Generic failure code, something went
+  wrong.</doc>
+      </member>
+      <member name="unknown_type"
+              value="1"
+              c:identifier="COGL_BITMAP_ERROR_UNKNOWN_TYPE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="283">Unknown image type.</doc>
+      </member>
+      <member name="corrupt_image"
+              value="2"
+              c:identifier="COGL_BITMAP_ERROR_CORRUPT_IMAGE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="284">An image file was broken somehow.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="BlendStringError"
+                 version="1.0"
+                 c:type="CoglBlendStringError">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="221">Error enumeration for the blend strings parser</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="239"/>
+      <member name="parse_error"
+              value="0"
+              c:identifier="COGL_BLEND_STRING_ERROR_PARSE_ERROR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="223">Generic parse error</doc>
+      </member>
+      <member name="argument_parse_error"
+              value="1"
+              c:identifier="COGL_BLEND_STRING_ERROR_ARGUMENT_PARSE_ERROR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="224">Argument parse error</doc>
+      </member>
+      <member name="invalid_error"
+              value="2"
+              c:identifier="COGL_BLEND_STRING_ERROR_INVALID_ERROR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="225">Internal parser error</doc>
+      </member>
+      <member name="gpu_unsupported_error"
+              value="3"
+              c:identifier="COGL_BLEND_STRING_ERROR_GPU_UNSUPPORTED_ERROR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="226">Blend string not
+  supported by the GPU</doc>
+      </member>
+    </enumeration>
+    <bitfield name="BufferBit" version="1.0" c:type="CoglBufferBit">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="483">Types of auxiliary buffers</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="498"/>
+      <member name="color" value="1" c:identifier="COGL_BUFFER_BIT_COLOR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="485">Selects the primary color buffer</doc>
+      </member>
+      <member name="depth" value="2" c:identifier="COGL_BUFFER_BIT_DEPTH">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="486">Selects the depth buffer</doc>
+      </member>
+      <member name="stencil" value="4" c:identifier="COGL_BUFFER_BIT_STENCIL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="487">Selects the stencil buffer</doc>
+      </member>
+    </bitfield>
+    <bitfield name="BufferTarget" version="0.8" c:type="CoglBufferTarget">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="122">Target flags for FBOs.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="135"/>
+      <member name="window_buffer" value="2" c:identifier="COGL_WINDOW_BUFFER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="124">FIXME</doc>
+      </member>
+      <member name="offscreen_buffer"
+              value="4"
+              c:identifier="COGL_OFFSCREEN_BUFFER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="125">FIXME</doc>
+      </member>
+    </bitfield>
+    <function-macro name="CONTEXT"
+                    c:identifier="COGL_CONTEXT"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-context.h" line="96"/>
+      <parameters>
+        <parameter name="OBJECT">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="Color"
+            c:type="CoglColor"
+            version="1.0"
+            glib:type-name="CoglColor"
+            glib:get-type="cogl_color_get_gtype"
+            c:symbol-prefix="color">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="137">A structure for holding a color definition. The contents of
+the CoglColor structure are private and should never by accessed
+directly.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="164"/>
+      <field name="private_member_red" readable="0" private="1">
+        <type name="guint8" c:type="uint8_t"/>
+      </field>
+      <field name="private_member_green" readable="0" private="1">
+        <type name="guint8" c:type="uint8_t"/>
+      </field>
+      <field name="private_member_blue" readable="0" private="1">
+        <type name="guint8" c:type="uint8_t"/>
+      </field>
+      <field name="private_member_alpha" readable="0" private="1">
+        <type name="guint8" c:type="uint8_t"/>
+      </field>
+      <field name="private_member_padding0" readable="0" private="1">
+        <type name="guint32" c:type="uint32_t"/>
+      </field>
+      <field name="private_member_padding1" readable="0" private="1">
+        <type name="guint32" c:type="uint32_t"/>
+      </field>
+      <field name="private_member_padding2" readable="0" private="1">
+        <type name="guint32" c:type="uint32_t"/>
+      </field>
+      <constructor name="new" c:identifier="cogl_color_new" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="63">Creates a new (empty) color</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="74"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="68">a newly-allocated #CoglColor. Use cogl_color_free()
+  to free the allocated resources</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="cogl_color_copy" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="76">Creates a copy of @color</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="88"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="82">a newly-allocated #CoglColor. Use cogl_color_free()
+  to free the allocate resources</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="78">the color to copy</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="cogl_color_free" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="90">Frees the resources allocated by cogl_color_new() and cogl_color_copy()</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="92">the color to free</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha"
+              c:identifier="cogl_color_get_alpha"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="306">Retrieves the alpha channel of @color as a fixed point
+value between 0 and 1.0.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="318"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="313">the alpha channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="308">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha_byte"
+              c:identifier="cogl_color_get_alpha_byte"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="194">Retrieves the alpha channel of @color as a byte value
+between 0 and 255</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="206"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="201">the alpha channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="196">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha_float"
+              c:identifier="cogl_color_get_alpha_float"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="250">Retrieves the alpha channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="262"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="257">the alpha channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="252">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_blue" c:identifier="cogl_color_get_blue" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="292">Retrieves the blue channel of @color as a fixed point
+value between 0 and 1.0.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="304"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="299">the blue channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="294">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_blue_byte"
+              c:identifier="cogl_color_get_blue_byte"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="180">Retrieves the blue channel of @color as a byte value
+between 0 and 255</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="192"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="187">the blue channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="182">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_blue_float"
+              c:identifier="cogl_color_get_blue_float"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="236">Retrieves the blue channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="248"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="243">the blue channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="238">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_green"
+              c:identifier="cogl_color_get_green"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="278">Retrieves the green channel of @color as a fixed point
+value between 0 and 1.0.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="290"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="285">the green channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="280">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_green_byte"
+              c:identifier="cogl_color_get_green_byte"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="166">Retrieves the green channel of @color as a byte value
+between 0 and 255</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="178"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="173">the green channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="168">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_green_float"
+              c:identifier="cogl_color_get_green_float"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="222">Retrieves the green channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="234"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="229">the green channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="224">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_red" c:identifier="cogl_color_get_red" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="264">Retrieves the red channel of @color as a fixed point
+value between 0 and 1.0.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="276"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="271">the red channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="266">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_red_byte"
+              c:identifier="cogl_color_get_red_byte"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="152">Retrieves the red channel of @color as a byte value
+between 0 and 255</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="164"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="159">the red channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="154">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_red_float"
+              c:identifier="cogl_color_get_red_float"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="208">Retrieves the red channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="220"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="215">the red channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="210">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="init_from_4f"
+              c:identifier="cogl_color_init_from_4f"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="120">Sets the values of the passed channels into a #CoglColor</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="133"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="122">A pointer to a #CoglColor to initialize</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="123">value of the red channel, between 0 and 1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="124">value of the green channel, between 0 and 1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="125">value of the blue channel, between 0 and 1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="126">value of the alpha channel, between 0 and 1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_4fv"
+              c:identifier="cogl_color_init_from_4fv"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="139">Sets the values of the passed channels into a #CoglColor</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="149"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="141">A pointer to a #CoglColor to initialize</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="color_array" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="142">a pointer to an array of 4 float color components</doc>
+            <type name="gfloat" c:type="const float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_4ub"
+              c:identifier="cogl_color_init_from_4ub"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="101">Sets the values of the passed channels into a #CoglColor.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="114"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="103">A pointer to a #CoglColor to initialize</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="104">value of the red channel, between 0 and 255</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="105">value of the green channel, between 0 and 255</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="106">value of the blue channel, between 0 and 255</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="107">value of the alpha channel, between 0 and 255</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="premultiply"
+              c:identifier="cogl_color_premultiply"
+              version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="476">Converts a non-premultiplied color to a pre-multiplied color. For
+example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied
+and (0.5, 0, 0, 0.5) when premultiplied.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="487"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="478">the color to premultiply</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha"
+              c:identifier="cogl_color_set_alpha"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="463">Sets the alpha channel of @color to @alpha.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="473"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="465">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="466">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_byte"
+              c:identifier="cogl_color_set_alpha_byte"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="359">Sets the alpha channel of @color to @alpha.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="369"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="361">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="362">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_float"
+              c:identifier="cogl_color_set_alpha_float"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="411">Sets the alpha channel of @color to @alpha.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="421"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="413">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="414">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue" c:identifier="cogl_color_set_blue" version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="450">Sets the blue channel of @color to @blue.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="460"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="452">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="453">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue_byte"
+              c:identifier="cogl_color_set_blue_byte"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="346">Sets the blue channel of @color to @blue.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="356"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="348">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="349">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue_float"
+              c:identifier="cogl_color_set_blue_float"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="398">Sets the blue channel of @color to @blue.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="408"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="400">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="401">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green"
+              c:identifier="cogl_color_set_green"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="437">Sets the green channel of @color to @green.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="447"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="439">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="440">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green_byte"
+              c:identifier="cogl_color_set_green_byte"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="333">Sets the green channel of @color to @green.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="343"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="335">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="336">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green_float"
+              c:identifier="cogl_color_set_green_float"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="385">Sets the green channel of @color to @green.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="395"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="387">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="388">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red" c:identifier="cogl_color_set_red" version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="424">Sets the red channel of @color to @red.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="434"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="426">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="427">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red_byte"
+              c:identifier="cogl_color_set_red_byte"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="320">Sets the red channel of @color to @red.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="330"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="322">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="323">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red_float"
+              c:identifier="cogl_color_set_red_float"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="372">Sets the red channel of @color to @red.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="382"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="374">a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="375">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_hsl" c:identifier="cogl_color_to_hsl" version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="519">Converts @color to the HLS format.
+
+The @hue value is in the 0 .. 360 range. The @luminance and
+@saturation values are in the 0 .. 1 range.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="534"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="521">a #CoglColor</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </instance-parameter>
+          <parameter name="hue"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="522">return location for the hue value or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="saturation"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="523">return location for the saturation value or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="luminance"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="524">return location for the luminance value or %NULL</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unpremultiply"
+              c:identifier="cogl_color_unpremultiply"
+              version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="489">Converts a pre-multiplied color to a non-premultiplied color. For
+example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied
+and (1.0, 0, 0, 0.5) when non-premultiplied.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="500"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="491">the color to unpremultiply</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <function name="equal" c:identifier="cogl_color_equal" version="1.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="502">Compares two #CoglColor&lt;!-- --&gt;s and checks if they are the same.
+
+This function can be passed to g_hash_table_new() as the @key_equal_func
+parameter, when using #CoglColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="517"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="512">%TRUE if the two colors are the same.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="v1"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="504">a #CoglColor</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="v2"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="505">a #CoglColor</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="init_from_hsl"
+                c:identifier="cogl_color_init_from_hsl"
+                version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="539">Converts a color expressed in HLS (hue, luminance and saturation)
+values into a #CoglColor.</doc>
+        <source-position filename="../cogl/cogl/cogl-color.h" line="552"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="541">return location for a #CoglColor</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+          <parameter name="hue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="542">hue value, in the 0 .. 360 range</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="saturation" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="543">saturation value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="luminance" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-color.h"
+                 line="544">luminance value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <class name="Context"
+           c:symbol-prefix="context"
+           c:type="CoglContext"
+           parent="Object"
+           glib:type-name="CoglContext"
+           glib:get-type="cogl_context_get_gtype"
+           glib:fundamental="1">
+      <constructor name="new"
+                   c:identifier="cogl_context_new"
+                   version="1.8"
+                   introspectable="0"
+                   stability="Unstable"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="106">Creates a new #CoglContext which acts as an application sandbox
+for any state objects that are allocated.</doc>
+        <source-position filename="../cogl/cogl/cogl-context.h" line="119"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="114">A newly allocated #CoglContext</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="108">A #CoglDisplay pointer</doc>
+            <type c:type="CoglDisplay*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_display"
+              c:identifier="cogl_context_get_display"
+              version="1.8"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="122">Retrieves the #CoglDisplay that is internally associated with the
+given @context. This will return the same #CoglDisplay that was
+passed to cogl_context_new() or if %NULL was passed to
+cogl_context_new() then this function returns a pointer to the
+display that was automatically setup internally.</doc>
+        <source-position filename="../cogl/cogl/cogl-context.h" line="138"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="132">The #CoglDisplay associated with the
+              given @context.</doc>
+          <type c:type="CoglDisplay*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="124">A #CoglContext pointer</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_named_pipeline"
+              c:identifier="cogl_context_get_named_pipeline">
+        <source-position filename="../cogl/cogl/cogl-context.h" line="400"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="395">The #CoglPipeline associated with the
+              given @context and @key, or %NULL if no such #CoglPipeline
+              was found.</doc>
+          <type name="Pipeline" c:type="CoglPipeline*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="392">a #CoglContext pointer</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="393">a #CoglPipelineKey pointer</doc>
+            <type name="PipelineKey" c:type="CoglPipelineKey*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_renderer"
+              c:identifier="cogl_context_get_renderer"
+              version="1.16"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="140">Retrieves the #CoglRenderer that is internally associated with the
+given @context. This will return the same #CoglRenderer that was
+passed to cogl_display_new() or if %NULL was passed to
+cogl_display_new() or cogl_context_new() then this function returns
+a pointer to the renderer that was automatically connected
+internally.</doc>
+        <source-position filename="../cogl/cogl/cogl-context.h" line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="151">The #CoglRenderer associated with the
+              given @context.</doc>
+          <type c:type="CoglRenderer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="142">A #CoglContext pointer</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_hardware_accelerated"
+              c:identifier="cogl_context_is_hardware_accelerated">
+        <source-position filename="../cogl/cogl/cogl-context.h" line="369"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="365">%TRUE if the @context is hardware accelerated, or %FALSE if
+not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="363">a #CoglContext pointer</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_named_pipeline"
+              c:identifier="cogl_context_set_named_pipeline">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="373">Associate a #CoglPipeline with a @context and @key. This will not take a new
+reference to the @pipeline, but will unref all associated pipelines when
+the @context gets destroyed. Similarly, if a pipeline gets overwritten,
+it will get unreffed as well.</doc>
+        <source-position filename="../cogl/cogl/cogl-context.h" line="386"/>
+        <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="../cogl/cogl/cogl-context.h"
+                 line="375">a #CoglContext pointer</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="376">a #CoglPipelineKey pointer</doc>
+            <type name="PipelineKey" c:type="CoglPipelineKey*"/>
+          </parameter>
+          <parameter name="pipeline"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-context.h"
+                 line="377">a #CoglPipeline to associate with the @context and
+           @key</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <constant name="DEPTH_BIT" value="256" c:type="COGL_DEPTH_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="68"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="DebugObjectForeachTypeCallback"
+              c:type="CoglDebugObjectForeachTypeCallback"
+              version="1.8"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="161">A callback function to use for cogl_debug_object_foreach_type().</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="171"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="info" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="163">A pointer to a struct containing information about the type.</doc>
+          <type name="DebugObjectTypeInfo"
+                c:type="const CoglDebugObjectTypeInfo*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="DebugObjectTypeInfo"
+            c:type="CoglDebugObjectTypeInfo"
+            version="1.8"
+            stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="144">This struct is used to pass information to the callback when
+cogl_debug_object_foreach_type() is called.</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="159"/>
+      <field name="name" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="146">A human readable name for the type.</doc>
+        <type name="utf8" c:type="const char*"/>
+      </field>
+      <field name="instance_count" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="147">The number of objects of this type that are
+  currently in use</doc>
+        <type name="gulong" c:type="unsigned long"/>
+      </field>
+    </record>
+    <enumeration name="DepthTestFunction" c:type="CoglDepthTestFunction">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="366">When using depth testing one of these functions is used to compare
+the depth of an incoming fragment against the depth value currently
+stored in the depth buffer. The function is changed using
+cogl_depth_state_set_test_function().
+
+The test is only done when depth testing is explicitly enabled. (See
+cogl_depth_state_set_test_enabled())</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="401"/>
+      <member name="never"
+              value="512"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_NEVER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="368">Never passes.</doc>
+      </member>
+      <member name="less"
+              value="513"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_LESS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="369">Passes if the fragment's depth
+value is less than the value currently in the depth buffer.</doc>
+      </member>
+      <member name="equal"
+              value="514"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_EQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="371">Passes if the fragment's depth
+value is equal to the value currently in the depth buffer.</doc>
+      </member>
+      <member name="lequal"
+              value="515"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_LEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="373">Passes if the fragment's depth
+value is less or equal to the value currently in the depth buffer.</doc>
+      </member>
+      <member name="greater"
+              value="516"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_GREATER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="375">Passes if the fragment's depth
+value is greater than the value currently in the depth buffer.</doc>
+      </member>
+      <member name="notequal"
+              value="517"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_NOTEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="377">Passes if the fragment's depth
+value is not equal to the value currently in the depth buffer.</doc>
+      </member>
+      <member name="gequal"
+              value="518"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_GEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="379">Passes if the fragment's depth
+value greater than or equal to the value currently in the depth buffer.</doc>
+      </member>
+      <member name="always"
+              value="519"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_ALWAYS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="381">Always passes.</doc>
+      </member>
+    </enumeration>
+    <record name="DmaBufHandle"
+            c:type="CoglDmaBufHandle"
+            disguised="1"
+            introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="105">An opaque type that tracks the lifetime of a DMA buffer fd. Release
+with cogl_dma_buf_handle_free().</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="111"/>
+    </record>
+    <bitfield name="EglImageFlags" c:type="CoglEglImageFlags">
+      <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="67"/>
+      <member name="none" value="0" c:identifier="COGL_EGL_IMAGE_FLAG_NONE">
+      </member>
+      <member name="no_get_data"
+              value="1"
+              c:identifier="COGL_EGL_IMAGE_FLAG_NO_GET_DATA">
+      </member>
+    </bitfield>
+    <function-macro name="FRAMEBUFFER"
+                    c:identifier="COGL_FRAMEBUFFER"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-framebuffer.h" line="49"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="FRAME_INFO"
+                    c:identifier="COGL_FRAME_INFO"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-frame-info.h" line="54"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <callback name="FeatureCallback"
+              c:type="CoglFeatureCallback"
+              version="0.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="265">A callback used with cogl_foreach_feature() for enumerating all
+context level features supported by Cogl.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="276"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="267">A single feature currently supported by Cogl</doc>
+          <type name="FeatureID" c:type="CoglFeatureID"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="268">A private pointer passed to cogl_foreach_feature().</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="FeatureID" version="1.10" c:type="CoglFeatureID">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="177">All the capabilities that can vary between different GPUs supported
+by Cogl. Applications that depend on any of these features should explicitly
+check for them using cogl_has_feature() or cogl_has_features().</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="221"/>
+      <member name="ogl_feature_id_unsigned_int_indices"
+              value="0"
+              c:identifier="COGL_FEATURE_ID_UNSIGNED_INT_INDICES">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="182">Set if
+    %COGL_INDICES_TYPE_UNSIGNED_INT is supported in
+    cogl_indices_new().</doc>
+      </member>
+      <member name="ogl_feature_id_map_buffer_for_read"
+              value="1"
+              c:identifier="COGL_FEATURE_ID_MAP_BUFFER_FOR_READ">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="185">Whether cogl_buffer_map() is
+    supported with CoglBufferAccess including read support.</doc>
+      </member>
+      <member name="ogl_feature_id_map_buffer_for_write"
+              value="2"
+              c:identifier="COGL_FEATURE_ID_MAP_BUFFER_FOR_WRITE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="187">Whether cogl_buffer_map() is
+    supported with CoglBufferAccess including write support.</doc>
+      </member>
+      <member name="ogl_feature_id_swap_buffers_event"
+              value="3"
+              c:identifier="COGL_FEATURE_ID_SWAP_BUFFERS_EVENT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="189">Available if the window system supports reporting an event
+    for swap buffer completions.</doc>
+      </member>
+      <member name="ogl_feature_id_presentation_time"
+              value="4"
+              c:identifier="COGL_FEATURE_ID_PRESENTATION_TIME">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="195">Whether frame presentation
+   time stamps will be recorded in #CoglFrameInfo objects.</doc>
+      </member>
+      <member name="ogl_feature_id_fence"
+              value="5"
+              c:identifier="COGL_FEATURE_ID_FENCE">
+      </member>
+      <member name="ogl_feature_id_texture_rg"
+              value="6"
+              c:identifier="COGL_FEATURE_ID_TEXTURE_RG">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="179">Support for
+   %COGL_TEXTURE_COMPONENTS_RG as the internal components of a
+   texture.</doc>
+      </member>
+      <member name="ogl_feature_id_buffer_age"
+              value="7"
+              c:identifier="COGL_FEATURE_ID_BUFFER_AGE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="192">Available if the age of #CoglOnscreen back
+   buffers are tracked and so cogl_onscreen_get_buffer_age() can be
+   expected to return age values other than 0.</doc>
+      </member>
+      <member name="ogl_feature_id_texture_egl_image_external"
+              value="8"
+              c:identifier="COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL">
+      </member>
+      <member name="ogl_feature_id_blit_framebuffer"
+              value="9"
+              c:identifier="COGL_FEATURE_ID_BLIT_FRAMEBUFFER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="197">Whether blitting using
+   cogl_blit_framebuffer() is supported.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="FilterReturn"
+                 stability="Unstable"
+                 c:type="CoglFilterReturn">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="410">Return values for the #CoglXlibFilterFunc and #CoglWin32FilterFunc functions.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="423"/>
+      <member name="continue" value="0" c:identifier="COGL_FILTER_CONTINUE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="412">The event was not handled, continues the
+                       processing</doc>
+      </member>
+      <member name="remove" value="1" c:identifier="COGL_FILTER_REMOVE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="414">Remove the event, stops the processing</doc>
+      </member>
+    </enumeration>
+    <callback name="FrameCallback"
+              c:type="CoglFrameCallback"
+              version="1.14"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="363">Is a callback that can be registered via
+cogl_onscreen_add_frame_callback() to be called when a frame
+progresses in some notable way.
+
+Please see the documentation for #CoglFrameEvent and
+cogl_onscreen_add_frame_callback() for more details about what
+events can be notified.</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="383"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="onscreen" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="365">The onscreen that the frame is associated with</doc>
+          <type name="Onscreen" c:type="CoglOnscreen*"/>
+        </parameter>
+        <parameter name="event" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="366">A #CoglFrameEvent notifying how the frame has progressed</doc>
+          <type name="FrameEvent" c:type="CoglFrameEvent"/>
+        </parameter>
+        <parameter name="info" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="367">The meta information, such as timing information, about
+       the frame that has progressed.</doc>
+          <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="3">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="369">The user pointer passed to
+            cogl_onscreen_add_frame_callback()</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="FrameClosure"
+            c:type="CoglFrameClosure"
+            version="1.14"
+            stability="Unstable"
+            glib:type-name="CoglFrameClosure"
+            glib:get-type="cogl_frame_closure_get_gtype"
+            c:symbol-prefix="frame_closure">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="388">An opaque type that tracks a #CoglFrameCallback and associated user
+data. A #CoglFrameClosure pointer will be returned from
+cogl_onscreen_add_frame_callback() and it allows you to remove a
+callback later using cogl_onscreen_remove_frame_callback().</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="399"/>
+    </record>
+    <enumeration name="FrameEvent"
+                 version="1.14"
+                 stability="Unstable"
+                 c:type="CoglFrameEvent">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="326">Identifiers that are passed to #CoglFrameCallback functions
+(registered using cogl_onscreen_add_frame_callback()) that
+mark the progression of a frame in some way which usually
+means that new information will have been accumulated in the
+frame's corresponding #CoglFrameInfo object.
+
+The last event that will be sent for a frame will be a
+@COGL_FRAME_EVENT_COMPLETE event and so these are a good
+opportunity to collect statistics about a frame since the
+#CoglFrameInfo should hold the most data at this point.
+
+&lt;note&gt;A frame may not be completed before the next frame can start
+so applications should avoid needing to collect all statistics for
+a particular frame before they can start a new frame.&lt;/note&gt;</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="361"/>
+      <member name="sync" value="1" c:identifier="COGL_FRAME_EVENT_SYNC">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="328">Notifies that the system compositor has
+                        acknowledged a frame and is ready for a
+                        new frame to be created.</doc>
+      </member>
+      <member name="complete"
+              value="2"
+              c:identifier="COGL_FRAME_EVENT_COMPLETE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="331">Notifies that a frame has ended. This
+                            is a good time for applications to
+                            collect statistics about the frame
+                            since the #CoglFrameInfo should hold
+                            the most data at this point. No other
+                            events should be expected after a
+                            @COGL_FRAME_EVENT_COMPLETE event.</doc>
+      </member>
+    </enumeration>
+    <class name="FrameInfo"
+           c:symbol-prefix="frame_info"
+           c:type="CoglFrameInfo"
+           parent="Object"
+           glib:type-name="CoglFrameInfo"
+           glib:get-type="cogl_frame_info_get_gtype"
+           glib:fundamental="1">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-frame-info.h"
+           line="48">Frame information.</doc>
+      <method name="get_frame_counter"
+              c:identifier="cogl_frame_info_get_frame_counter"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-frame-info.h"
+             line="78">Gets the frame counter for the #CoglOnscreen that corresponds
+to this frame.</doc>
+        <source-position filename="../cogl/cogl/cogl-frame-info.h" line="90"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-frame-info.h"
+               line="85">The frame counter value</doc>
+          <type name="gint64" c:type="int64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-frame-info.h"
+                 line="80">a #CoglFrameInfo object</doc>
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_global_frame_counter"
+              c:identifier="cogl_frame_info_get_global_frame_counter"
+              introspectable="0">
+        <source-position filename="../cogl/cogl/cogl-frame-info.h" line="138"/>
+        <return-value transfer-ownership="none">
+          <type name="gint64" c:type="int64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_presentation_time"
+              c:identifier="cogl_frame_info_get_presentation_time"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-frame-info.h"
+             line="92">Gets the presentation time for the frame. This is the time at which
+the frame became visible to the user.
+
+The presentation time measured in nanoseconds, is based on
+cogl_get_clock_time().
+
+&lt;note&gt;Linux kernel version less that 3.8 can result in
+non-monotonic timestamps being reported when using a drm based
+OpenGL driver. Also some buggy Mesa drivers up to 9.0.1 may also
+incorrectly report non-monotonic timestamps.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-frame-info.h" line="112"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-frame-info.h"
+               line="107">the presentation time for the frame</doc>
+          <type name="gint64" c:type="int64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-frame-info.h"
+                 line="94">a #CoglFrameInfo object</doc>
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_refresh_rate"
+              c:identifier="cogl_frame_info_get_refresh_rate"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-frame-info.h"
+             line="114">Gets the refresh rate in Hertz for the output that the frame was on
+at the time the frame was presented.
+
+&lt;note&gt;Some platforms can't associate a #CoglOutput with a
+#CoglFrameInfo object but are able to report a refresh rate via
+this api. Therefore if you need this information then this api is
+more reliable than using cogl_frame_info_get_output() followed by
+cogl_output_get_refresh_rate().&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-frame-info.h" line="132"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-frame-info.h"
+               line="127">the refresh rate in Hertz</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-frame-info.h"
+                 line="116">a #CoglFrameInfo object</doc>
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </class>
+    <interface name="Framebuffer"
+               c:symbol-prefix="framebuffer"
+               c:type="CoglFramebuffer"
+               glib:type-name="CoglFramebuffer"
+               glib:get-type="cogl_framebuffer_get_gtype">
+      <prerequisite name="Object"/>
+      <function name="error_quark" c:identifier="cogl_framebuffer_error_quark">
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1468"/>
+        <return-value transfer-ownership="none">
+          <type name="guint32" c:type="uint32_t"/>
+        </return-value>
+      </function>
+      <method name="allocate"
+              c:identifier="cogl_framebuffer_allocate"
+              version="1.8"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="109">Explicitly allocates a configured #CoglFramebuffer allowing developers to
+check and handle any errors that might arise from an unsupported
+configuration so that fallback configurations may be tried.
+
+&lt;note&gt;Many applications don't support any fallback options at least when
+they are initially developed and in that case the don't need to use this API
+since Cogl will automatically allocate a framebuffer when it first gets
+used.  The disadvantage of relying on automatic allocation is that the
+program will abort with an error message if there is an error during
+automatic allocation.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="130"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="125">%TRUE if there were no error allocating the framebuffer, else %FALSE.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="111">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="clear"
+              c:identifier="cogl_framebuffer_clear"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1006">Clears all the auxiliary buffers identified in the @buffers mask, and if
+that includes the color buffer then the specified @color is used.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1021"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1008">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="buffers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1009">A mask of #CoglBufferBit&lt;!-- --&gt;'s identifying which auxiliary
+  buffers to clear</doc>
+            <type name="gulong" c:type="unsigned long"/>
+          </parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1011">The color to clear the color buffer too if specified in
+        @buffers.</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear4f"
+              c:identifier="cogl_framebuffer_clear4f"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1025">Clears all the auxiliary buffers identified in the @buffers mask, and if
+that includes the color buffer then the specified @color is used.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1046"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1027">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="buffers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1028">A mask of #CoglBufferBit&lt;!-- --&gt;'s identifying which auxiliary
+  buffers to clear</doc>
+            <type name="gulong" c:type="unsigned long"/>
+          </parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1030">The red component of color to clear the color buffer too if
+      specified in @buffers.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1032">The green component of color to clear the color buffer too if
+        specified in @buffers.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1034">The blue component of color to clear the color buffer too if
+       specified in @buffers.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1036">The alpha component of color to clear the color buffer too if
+        specified in @buffers.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="discard_buffers"
+              c:identifier="cogl_framebuffer_discard_buffers"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1335">Declares that the specified @buffers no longer need to be referenced
+by any further rendering commands. This can be an important
+optimization to avoid subsequent frames of rendering depending on
+the results of a previous frame.
+
+For example; some tile-based rendering GPUs are able to avoid allocating and
+accessing system memory for the depth and stencil buffer so long as these
+buffers are not required as input for subsequent frames and that can save a
+significant amount of memory bandwidth used to save and restore their
+contents to system memory between frames.
+
+It is currently considered an error to try and explicitly discard the color
+buffer by passing %COGL_BUFFER_BIT_COLOR. This is because the color buffer is
+already implicitly discard when you finish rendering to a #CoglOnscreen
+framebuffer, and it's not meaningful to try and discard the color buffer of
+a #CoglOffscreen framebuffer since they are single-buffered.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1363"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1337">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="buffers" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1338">A #CoglBufferBit mask of which ancillary buffers you want
+          to discard.</doc>
+            <type name="gulong" c:type="unsigned long"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_multitextured_rectangle"
+              c:identifier="cogl_framebuffer_draw_multitextured_rectangle"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1170">Draws a textured rectangle to @framebuffer with the given @pipeline
+state with the top left corner positioned at (@x_1, @y_1) and the
+bottom right corner positioned at (@x_2, @y_2). As a pipeline may
+contain multiple texture layers this interface lets you supply
+texture coordinates for each layer of the pipeline.
+
+&lt;note&gt;The position is the position before the rectangle has been
+transformed by the model-view matrix and the projection
+matrix.&lt;/note&gt;
+
+This is a high level drawing api that can handle any kind of
+#CoglMetaTexture texture for the first layer such as
+#CoglTexture2DSliced textures which may internally be comprised of
+multiple low-level textures.  This is unlike low-level drawing apis
+such as cogl_primitive_draw() which only support low level texture
+types that are directly supported by GPUs such as #CoglTexture2D.
+
+&lt;note&gt;This api can not currently handle multiple high-level meta
+texture layers. The first layer may be a high level meta texture
+such as #CoglTexture2DSliced but all other layers much be low
+level textures such as #CoglTexture2D.
+
+The top left texture coordinate for layer 0 of any pipeline will be
+(tex_coords[0], tex_coords[1]) and the bottom right coordinate will
+be (tex_coords[2], tex_coords[3]). The coordinates for layer 1
+would be (tex_coords[4], tex_coords[5]) (tex_coords[6],
+tex_coords[7]) and so on...
+
+The given texture coordinates should always be normalized such that
+(0, 0) corresponds to the top left and (1, 1) corresponds to the
+bottom right. To map an entire texture across the rectangle pass
+in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1,
+tex_coords[3]=1.
+
+The first pair of coordinates are for the first layer (with the
+smallest layer index) and if you supply less texture coordinates
+than there are layers in the current source material then default
+texture coordinates (0.0, 0.0, 1.0, 1.0) are generated.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1230"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1172">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1173">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1174">x coordinate upper left on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1175">y coordinate upper left on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1176">x coordinate lower right on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1177">y coordinate lower right on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="tex_coords" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1178">An array containing groups of
+  4 float values: [s_1, t_1, s_2, t_2] that are interpreted as two texture
+  coordinates; one for the top left texel, and one for the bottom right
+  texel. Each value should be between 0.0 and 1.0, where the coordinate
+  (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the
+  bottom right.</doc>
+            <array zero-terminated="0" c:type="const float*">
+              <type name="gfloat" c:type="float"/>
+            </array>
+          </parameter>
+          <parameter name="tex_coords_len" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1184">The length of the @tex_coords array. (For one layer
+  and one group of texture coordinates, this would be 4)</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_primitive"
+              c:identifier="cogl_framebuffer_draw_primitive"
+              version="1.10"
+              introspectable="0"
+              deprecated="1"
+              deprecated-version="1.16"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1053">Draws the given @primitive geometry to the specified destination
+@framebuffer using the graphics processing state described by @pipeline.
+
+This drawing api doesn't support high-level meta texture types such
+as #CoglTexture2DSliced so it is the user's responsibility to
+ensure that only low-level textures that can be directly sampled by
+a GPU such as #CoglTexture2D are associated with layers of the given
+@pipeline.
+
+&lt;note&gt;This api doesn't support any of the legacy global state options such
+as cogl_set_depth_test_enabled() or
+cogl_set_backface_culling_enabled().&lt;/note&gt;</doc>
+        <doc-deprecated xml:space="preserve">Use #CoglPrimitive&lt;!-- --&gt;s and
+                  cogl_primitive_draw() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1079"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1055">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1056">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="primitive" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1057">A #CoglPrimitive geometry object</doc>
+            <type c:type="CoglPrimitive*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_rectangle"
+              c:identifier="cogl_framebuffer_draw_rectangle"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1083">Draws a rectangle to @framebuffer with the given @pipeline state
+and with the top left corner positioned at (@x_1, @y_1) and the
+bottom right corner positioned at (@x_2, @y_2).
+
+&lt;note&gt;The position is the position before the rectangle has been
+transformed by the model-view matrix and the projection
+matrix.&lt;/note&gt;
+
+&lt;note&gt;If you want to describe a rectangle with a texture mapped on
+it then you can use
+cogl_framebuffer_draw_textured_rectangle().&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1108"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1085">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1086">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1087">X coordinate of the top-left corner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1088">Y coordinate of the top-left corner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1089">X coordinate of the bottom-right corner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1090">Y coordinate of the bottom-right corner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_rectangles"
+              c:identifier="cogl_framebuffer_draw_rectangles"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1239">Draws a series of rectangles to @framebuffer with the given
+@pipeline state in the same way that
+cogl_framebuffer_draw_rectangle() does.
+
+The top left corner of the first rectangle is positioned at
+(coordinates[0], coordinates[1]) and the bottom right corner is
+positioned at (coordinates[2], coordinates[3]). The positions for
+the second rectangle are (coordinates[4], coordinates[5]) and
+(coordinates[6], coordinates[7]) and so on...
+
+&lt;note&gt;The position is the position before the rectangle has been
+transformed by the model-view matrix and the projection
+matrix.&lt;/note&gt;
+
+As a general rule for better performance its recommended to use
+this this API instead of calling
+cogl_framebuffer_draw_textured_rectangle() separately for multiple
+rectangles if all of the rectangles will be drawn together with the
+same @pipeline state.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1274"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1241">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1242">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="coordinates" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1243">an array of coordinates
+  containing groups of 4 float values: [x_1, y_1, x_2, y_2] that are
+  interpreted as two position coordinates; one for the top left of
+  the rectangle (x1, y1), and one for the bottom right of the
+  rectangle (x2, y2).</doc>
+            <array zero-terminated="0" c:type="const float*">
+              <type name="gfloat" c:type="float"/>
+            </array>
+          </parameter>
+          <parameter name="n_rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1248">number of rectangles defined in @coordinates.</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_textured_rectangle"
+              c:identifier="cogl_framebuffer_draw_textured_rectangle"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1115">Draws a textured rectangle to @framebuffer using the given
+@pipeline state with the top left corner positioned at (@x_1, @y_1)
+and the bottom right corner positioned at (@x_2, @y_2). The top
+left corner will have texture coordinates of (@s_1, @t_1) and the
+bottom right corner will have texture coordinates of (@s_2, @t_2).
+
+&lt;note&gt;The position is the position before the rectangle has been
+transformed by the model-view matrix and the projection
+matrix.&lt;/note&gt;
+
+This is a high level drawing api that can handle any kind of
+#CoglMetaTexture texture such as #CoglTexture2DSliced textures
+which may internally be comprised of multiple low-level textures.
+This is unlike low-level drawing apis such as cogl_primitive_draw()
+which only support low level texture types that are directly
+supported by GPUs such as #CoglTexture2D.
+
+&lt;note&gt;The given texture coordinates will only be used for the first
+texture layer of the pipeline and if your pipeline has more than
+one layer then all other layers will have default texture
+coordinates of @s_1=0.0 @t_1=0.0 @s_2=1.0 @t_2=1.0 &lt;/note&gt;
+
+The given texture coordinates should always be normalized such that
+(0, 0) corresponds to the top left and (1, 1) corresponds to the
+bottom right. To map an entire texture across the rectangle pass
+in @s_1=0, @t_1=0, @s_2=1, @t_2=1.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1159"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1117">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1118">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1119">x coordinate upper left on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1120">y coordinate upper left on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1121">x coordinate lower right on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1122">y coordinate lower right on screen.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="s_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1123">S texture coordinate of the top-left coorner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="t_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1124">T texture coordinate of the top-left coorner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="s_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1125">S texture coordinate of the bottom-right coorner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="t_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1126">T texture coordinate of the bottom-right coorner</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="draw_textured_rectangles"
+              c:identifier="cogl_framebuffer_draw_textured_rectangles"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1279">Draws a series of rectangles to @framebuffer with the given
+@pipeline state in the same way that
+cogl_framebuffer_draw_textured_rectangle() does.
+
+&lt;note&gt;The position is the position before the rectangle has been
+transformed by the model-view matrix and the projection
+matrix.&lt;/note&gt;
+
+This is a high level drawing api that can handle any kind of
+#CoglMetaTexture texture such as #CoglTexture2DSliced textures
+which may internally be comprised of multiple low-level textures.
+This is unlike low-level drawing apis such as cogl_primitive_draw()
+which only support low level texture types that are directly
+supported by GPUs such as #CoglTexture2D.
+
+The top left corner of the first rectangle is positioned at
+(coordinates[0], coordinates[1]) and the bottom right corner is
+positioned at (coordinates[2], coordinates[3]). The top left
+texture coordinate is (coordinates[4], coordinates[5]) and the
+bottom right texture coordinate is (coordinates[6],
+coordinates[7]). The coordinates for subsequent rectangles
+are defined similarly by the subsequent coordinates.
+
+As a general rule for better performance its recommended to use
+this this API instead of calling
+cogl_framebuffer_draw_textured_rectangle() separately for multiple
+rectangles if all of the rectangles will be drawn together with the
+same @pipeline state.
+
+The given texture coordinates should always be normalized such that
+(0, 0) corresponds to the top left and (1, 1) corresponds to the
+bottom right. To map an entire texture across the rectangle pass
+in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1,
+tex_coords[3]=1.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1328"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1281">A destination #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1282">A #CoglPipeline state object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </parameter>
+          <parameter name="coordinates" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1283">an array containing
+  groups of 8 float values: [x_1, y_1, x_2, y_2, s_1, t_1, s_2, t_2]
+  that have the same meaning as the arguments for
+  cogl_framebuffer_draw_textured_rectangle().</doc>
+            <array zero-terminated="0" c:type="const float*">
+              <type name="gfloat" c:type="float"/>
+            </array>
+          </parameter>
+          <parameter name="n_rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1287">number of rectangles to @coordinates to draw</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="finish"
+              c:identifier="cogl_framebuffer_finish"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1366">This blocks the CPU until all pending rendering associated with the
+specified framebuffer has completed. It's very rare that developers should
+ever need this level of synchronization with the GPU and should never be
+used unless you clearly understand why you need to explicitly force
+synchronization.
+
+One example might be for benchmarking purposes to be sure timing
+measurements reflect the time that the GPU is busy for not just the time it
+takes to queue rendering commands.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1384"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1368">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="flush" c:identifier="cogl_framebuffer_flush">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1559">Flushes @framebuffer to ensure the current batch of commands is
+submitted to the GPU.
+
+Unlike cogl_framebuffer_finish(), this does not block the CPU.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1569"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1561">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="frustum"
+              c:identifier="cogl_framebuffer_frustum"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="451">Replaces the current projection matrix with a perspective matrix
+for a given viewing frustum defined by 4 side clip planes that
+all cross through the origin and 2 near and far clip planes.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="473"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="453">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="454">X position of the left clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="right" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="456">X position of the right clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bottom" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="458">Y position of the bottom clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="460">Y position of the top clipping plane where it intersects
+  the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="462">The distance to the near clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="463">The distance to the far clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha_bits"
+              c:identifier="cogl_framebuffer_get_alpha_bits"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="689">Retrieves the number of alpha bits of @framebuffer</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="701"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="695">the number of bits</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="691">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_blue_bits"
+              c:identifier="cogl_framebuffer_get_blue_bits"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="675">Retrieves the number of blue bits of @framebuffer</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="687"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="681">the number of bits</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="677">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_context"
+              c:identifier="cogl_framebuffer_get_context"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="990">Can be used to query the #CoglContext a given @framebuffer was
+instantiated within. This is the #CoglContext that was passed to
+cogl_onscreen_new() for example.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1004"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="998">The #CoglContext that the given
+              @framebuffer was instantiated within.</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="992">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_depth_bits"
+              c:identifier="cogl_framebuffer_get_depth_bits"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="703">Retrieves the number of depth bits of @framebuffer</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="715"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="709">the number of bits</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="705">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_depth_write_enabled"
+              c:identifier="cogl_framebuffer_get_depth_write_enabled"
+              version="1.18"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="778">Queries whether depth buffer writing is enabled for @framebuffer. This
+can be controlled via cogl_framebuffer_set_depth_write_enabled().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="790"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="785">%TRUE if depth writing is enabled or %FALSE if not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="780">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_dither_enabled"
+              c:identifier="cogl_framebuffer_get_dither_enabled"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="734">Returns whether dithering has been requested for the given @framebuffer.
+See cogl_framebuffer_set_dither_enabled() for more details about dithering.
+
+&lt;note&gt;This may return %TRUE even when the underlying @framebuffer
+display pipeline does not support dithering. This value only represents
+the user's request for dithering.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="750"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="745">%TRUE if dithering has been requested or %FALSE if not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="736">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_green_bits"
+              c:identifier="cogl_framebuffer_get_green_bits"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="661">Retrieves the number of green bits of @framebuffer</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="673"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="667">the number of bits</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="663">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_height"
+              c:identifier="cogl_framebuffer_get_height"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="146">Queries the current height of the given @framebuffer.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="157"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="152">The height of @framebuffer.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="148">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_is_stereo"
+              c:identifier="cogl_framebuffer_get_is_stereo">
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="732"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_modelview_matrix"
+              c:identifier="cogl_framebuffer_get_modelview_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="396">Stores the current model-view matrix in @matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="407"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="398">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="matrix"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="399">return location for the model-view matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_projection_matrix"
+              c:identifier="cogl_framebuffer_get_projection_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="510">Stores the current projection matrix in @matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="521"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="512">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="matrix"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="513">return location for the projection matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_red_bits"
+              c:identifier="cogl_framebuffer_get_red_bits"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="647">Retrieves the number of red bits of @framebuffer</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="659"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="653">the number of bits</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="649">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_samples_per_pixel"
+              c:identifier="cogl_framebuffer_get_samples_per_pixel"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="891">Gets the number of points that are sampled per-pixel when
+rasterizing geometry. Usually by default this will return 0 which
+means that single-sample not multisample rendering has been chosen.
+When using a GPU supporting multisample rendering it's possible to
+increase the number of samples per pixel using
+cogl_framebuffer_set_samples_per_pixel().
+
+Calling cogl_framebuffer_get_samples_per_pixel() before the
+framebuffer has been allocated will simply return the value set
+using cogl_framebuffer_set_samples_per_pixel(). After the
+framebuffer has been allocated the value will reflect the actual
+number of samples that will be made by the GPU.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="916"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="908">The number of point samples made per pixel when
+         rasterizing geometry or 0 if single-sample rendering
+         has been chosen.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="893">A #CoglFramebuffer framebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stereo_mode"
+              c:identifier="cogl_framebuffer_get_stereo_mode"
+              version="1.20"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="811">Gets the current #CoglStereoMode, which defines which stereo buffers
+should be drawn to. See cogl_framebuffer_set_stereo_mode().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="823"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="818">A #CoglStereoMode</doc>
+          <type name="StereoMode" c:type="CoglStereoMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="813">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_viewport4fv"
+              c:identifier="cogl_framebuffer_get_viewport4fv"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="251">Queries the x, y, width and height components of the current viewport as set
+using cogl_framebuffer_set_viewport() or the default values which are 0, 0,
+framebuffer_width and framebuffer_height.  The values are written into the
+given @viewport array.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="267"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="253">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="viewport"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="254">A pointer to an
+           array of 4 floats to receive the (x, y, width, height)
+           components of the current viewport.</doc>
+            <array zero-terminated="0" c:type="float*" fixed-size="4">
+              <type name="gfloat" c:type="float"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_viewport_height"
+              c:identifier="cogl_framebuffer_get_viewport_height"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="237">Queries the height of the viewport as set using cogl_framebuffer_set_viewport()
+or the default value which is the height of the framebuffer.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="249"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="244">The height of the viewport.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="239">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_viewport_width"
+              c:identifier="cogl_framebuffer_get_viewport_width"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="223">Queries the width of the viewport as set using cogl_framebuffer_set_viewport()
+or the default value which is the width of the framebuffer.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="235"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="230">The width of the viewport.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="225">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_viewport_x"
+              c:identifier="cogl_framebuffer_get_viewport_x"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="195">Queries the x coordinate of the viewport origin as set using 
cogl_framebuffer_set_viewport()
+or the default value which is 0.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="207"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="202">The x coordinate of the viewport origin.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="197">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_viewport_y"
+              c:identifier="cogl_framebuffer_get_viewport_y"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="209">Queries the y coordinate of the viewport origin as set using 
cogl_framebuffer_set_viewport()
+or the default value which is 0.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="221"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="216">The y coordinate of the viewport origin.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="211">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="cogl_framebuffer_get_width"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="133">Queries the current width of the given @framebuffer.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="144"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="139">The width of @framebuffer.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="135">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="identity_matrix"
+              c:identifier="cogl_framebuffer_identity_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="293">Resets the current model-view matrix to the identity matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="303"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="295">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="orthographic"
+              c:identifier="cogl_framebuffer_orthographic"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="481">Replaces the current projection matrix with an orthographic projection
+matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="502"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="483">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="484">The x coordinate for the first vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="485">The y coordinate for the first horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="486">The x coordinate for the second vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="487">The y coordinate for the second horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="488">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the near clipping
+  plane (will be &lt;emphasis&gt;negative&lt;/emphasis&gt; if the plane is
+  behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="491">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the far clipping
+  plane (will be &lt;emphasis&gt;negative&lt;/emphasis&gt; if the plane is
+  behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perspective"
+              c:identifier="cogl_framebuffer_perspective"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="424">Replaces the current projection matrix with a perspective matrix
+based on the provided values.
+
+&lt;note&gt;You should be careful not to have to great a @z_far / @z_near
+ratio since that will reduce the effectiveness of depth testing
+since there won't be enough precision to identify the depth of
+objects near to each other.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="445"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="426">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="fov_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="427">Vertical field of view angle in degrees.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="aspect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="428">The (width over height) aspect ratio for display</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="429">The distance to the near clipping plane (Must be positive,
+  and must not be 0)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="431">The distance to the far clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pop_clip"
+              c:identifier="cogl_framebuffer_pop_clip"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="633">Reverts the clipping region to the state before the last call to
+cogl_framebuffer_push_scissor_clip(), cogl_framebuffer_push_rectangle_clip()
+cogl_framebuffer_push_path_clip(), or cogl_framebuffer_push_primitive_clip().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="645"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="635">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="pop_matrix"
+              c:identifier="cogl_framebuffer_pop_matrix"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="282">Restores the model-view matrix on the top of the matrix stack.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="291"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="284">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="push_matrix"
+              c:identifier="cogl_framebuffer_push_matrix"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="270">Copies the current model-view matrix onto the matrix stack. The matrix
+can later be restored with cogl_framebuffer_pop_matrix().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="280"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="272">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="push_primitive_clip"
+              c:identifier="cogl_framebuffer_push_primitive_clip"
+              version="1.10"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="592">Sets a new clipping area using a 2D shaped described with a
+#CoglPrimitive. The shape must not contain self overlapping
+geometry and must lie on a single 2D plane. A bounding box of the
+2D shape in local coordinates (the same coordinates used to
+describe the shape) must be given. It is acceptable for the bounds
+to be larger than the true bounds but behaviour is undefined if the
+bounds are smaller than the true bounds.
+
+The primitive is transformed by the current model-view matrix and
+the silhouette is intersected with the previous clipping area.  To
+restore the previous clipping area, call
+cogl_framebuffer_pop_clip().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="622"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="594">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="primitive" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="595">A #CoglPrimitive describing a flat 2D shape</doc>
+            <type c:type="CoglPrimitive*"/>
+          </parameter>
+          <parameter name="bounds_x1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="596">x coordinate for the top-left corner of the primitives
+            bounds</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bounds_y1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="598">y coordinate for the top-left corner of the primitives
+            bounds</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bounds_x2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="600">x coordinate for the bottom-right corner of the
+            primitives bounds.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bounds_y2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="602">y coordinate for the bottom-right corner of the
+            primitives bounds.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_rectangle_clip"
+              c:identifier="cogl_framebuffer_push_rectangle_clip"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="565">Specifies a modelview transformed rectangular clipping area for all
+subsequent drawing operations. Any drawing commands that extend
+outside the rectangle will be clipped so that only the portion
+inside the rectangle will be displayed. The rectangle dimensions
+are transformed by the current model-view matrix.
+
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_framebuffer_pop_clip().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="586"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="567">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="568">x coordinate for top left corner of the clip rectangle</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="569">y coordinate for top left corner of the clip rectangle</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="570">x coordinate for bottom right corner of the clip rectangle</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="571">y coordinate for bottom right corner of the clip rectangle</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_region_clip"
+              c:identifier="cogl_framebuffer_push_region_clip">
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="630"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="region" transfer-ownership="none">
+            <type name="cairo.Region" c:type="cairo_region_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_scissor_clip"
+              c:identifier="cogl_framebuffer_push_scissor_clip"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="538">Specifies a rectangular clipping area for all subsequent drawing
+operations. Any drawing commands that extend outside the rectangle
+will be clipped so that only the portion inside the rectangle will
+be displayed. The rectangle dimensions are not transformed by the
+current model-view matrix.
+
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_framebuffer_pop_clip().</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="559"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="540">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="541">left edge of the clip rectangle in window coordinates</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="542">top edge of the clip rectangle in window coordinates</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="543">width of the clip rectangle</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="544">height of the clip rectangle</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_pixels"
+              c:identifier="cogl_framebuffer_read_pixels"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1419">This is a convenience wrapper around
+cogl_framebuffer_read_pixels_into_bitmap() which allocates a
+temporary #CoglBitmap to read pixel data directly into the given
+buffer. The rowstride of the buffer is assumed to be the width of
+the region times the bytes per pixel of the format. The source for
+the data is always taken from the color buffer. If you want to use
+any other rowstride or source, please use the
+cogl_framebuffer_read_pixels_into_bitmap() function directly.
+
+The implementation of the function looks like this:
+
+|[
+bitmap = cogl_bitmap_new_for_data (context,
+                                   width, height,
+                                   format,
+                                   /&lt;!-- --&gt;* rowstride *&lt;!-- --&gt;/
+                                   bpp * width,
+                                   pixels);
+cogl_framebuffer_read_pixels_into_bitmap (framebuffer,
+                                          x, y,
+                                          COGL_READ_PIXELS_COLOR_BUFFER,
+                                          bitmap);
+cogl_object_unref (bitmap);
+]|</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1459"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1454">%TRUE if the read succeeded or %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1421">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1422">The x position to read from</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1423">The y position to read from</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1424">The width of the region of rectangles to read</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1425">The height of the region of rectangles to read</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1426">The pixel format to store the data in</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="pixels" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1427">The address of the buffer to store the data in</doc>
+            <type name="guint8" c:type="uint8_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_pixels_into_bitmap"
+              c:identifier="cogl_framebuffer_read_pixels_into_bitmap"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1386">This reads a rectangle of pixels from the given framebuffer where
+position (0, 0) is the top left. The pixel at (x, y) is the first
+read, and a rectangle of pixels with the same size as the bitmap is
+read right and downwards from that point.
+
+Currently Cogl assumes that the framebuffer is in a premultiplied
+format so if the format of @bitmap is non-premultiplied it will
+convert it. To read the pixel values without any conversion you
+should either specify a format that doesn't use an alpha channel or
+use one of the formats ending in PRE.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="1413"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1406">%TRUE if the read succeeded or %FALSE otherwise. The
+ function is only likely to fail if the bitmap points to a pixel
+ buffer and it could not be mapped.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1388">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1389">The x position to read from</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1390">The y position to read from</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1391">Identifies which auxiliary buffer you want to read
+         (only COGL_READ_PIXELS_COLOR_BUFFER supported currently)</doc>
+            <type name="ReadPixelsFlags" c:type="CoglReadPixelsFlags"/>
+          </parameter>
+          <parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="1393">The bitmap to store the results in.</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="resolve_samples"
+              c:identifier="cogl_framebuffer_resolve_samples"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="919">When point sample rendering (also known as multisample rendering)
+has been enabled via cogl_framebuffer_set_samples_per_pixel()
+then you can optionally call this function (or
+cogl_framebuffer_resolve_samples_region()) to explicitly resolve
+the point samples into values for the final color buffer.
+
+Some GPUs will implicitly resolve the point samples during
+rendering and so this function is effectively a nop, but with other
+architectures it is desirable to defer the resolve step until the
+end of the frame.
+
+Since Cogl will automatically ensure samples are resolved if the
+target color buffer is used as a source this API only needs to be
+used if explicit control is desired - perhaps because you want to
+ensure that the resolve is completed in advance to avoid later
+having to wait for the resolve to complete.
+
+If you are performing incremental updates to a framebuffer you
+should consider using cogl_framebuffer_resolve_samples_region()
+instead to avoid resolving redundant pixels.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="948"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="921">A #CoglFramebuffer framebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="resolve_samples_region"
+              c:identifier="cogl_framebuffer_resolve_samples_region"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="950">When point sample rendering (also known as multisample rendering)
+has been enabled via cogl_framebuffer_set_samples_per_pixel()
+then you can optionally call this function (or
+cogl_framebuffer_resolve_samples()) to explicitly resolve the point
+samples into values for the final color buffer.
+
+Some GPUs will implicitly resolve the point samples during
+rendering and so this function is effectively a nop, but with other
+architectures it is desirable to defer the resolve step until the
+end of the frame.
+
+Use of this API is recommended if incremental, small updates to
+a framebuffer are being made because by default Cogl will
+implicitly resolve all the point samples of the framebuffer which
+can result in redundant work if only a small number of samples have
+changed.
+
+Because some GPUs implicitly resolve point samples this function
+only guarantees that at-least the region specified will be resolved
+and if you have rendered to a larger region then it's possible that
+other samples may be implicitly resolved.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="984"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="952">A #CoglFramebuffer framebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="953">top-left x coordinate of region to resolve</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="954">top-left y coordinate of region to resolve</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="955">width of region to resolve</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="956">height of region to resolve</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rotate"
+              c:identifier="cogl_framebuffer_rotate"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="343">Multiplies the current model-view matrix by one that rotates the
+model around the axis-vector specified by @x, @y and @z. The
+rotation follows the right-hand thumb rule so for example rotating
+by 10 degrees about the axis-vector (0, 0, 1) causes a small
+counter-clockwise rotation.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="361"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="345">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="346">Angle in degrees to rotate.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="347">X-component of vertex to rotate around.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="348">Y-component of vertex to rotate around.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="349">Z-component of vertex to rotate around.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rotate_euler"
+              c:identifier="cogl_framebuffer_rotate_euler"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="367">Multiplies the current model-view matrix by one that rotates
+according to the rotation described by @euler.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="379"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="369">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="euler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="370">A #graphene_euler_t</doc>
+            <type name="Graphene.Euler" c:type="const graphene_euler_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scale"
+              c:identifier="cogl_framebuffer_scale"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="305">Multiplies the current model-view matrix by one that scales the x,
+y and z axes by the given values.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="319"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="307">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="308">Amount to scale along the x-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="309">Amount to scale along the y-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="310">Amount to scale along the z-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_write_enabled"
+              c:identifier="cogl_framebuffer_set_depth_write_enabled"
+              version="1.18"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="792">Enables or disables depth buffer writing when rendering to @framebuffer.
+If depth writing is enabled for both the framebuffer and the rendering
+pipeline, and the framebuffer has an associated depth buffer, depth
+information will be written to this buffer during rendering.
+
+Depth buffer writing is enabled by default.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="808"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="794">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="depth_write_enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="795">%TRUE to enable depth writing or %FALSE to disable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_dither_enabled"
+              c:identifier="cogl_framebuffer_set_dither_enabled"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="752">Enables or disabled dithering if supported by the hardware.
+
+Dithering is a hardware dependent technique to increase the visible
+color resolution beyond what the underlying hardware supports by playing
+tricks with the colors placed into the framebuffer to give the illusion
+of other colors. (For example this can be compared to half-toning used
+by some news papers to show varying levels of grey even though their may
+only be black and white are available).
+
+If the current display pipeline for @framebuffer does not support dithering
+then this has no affect.
+
+Dithering is enabled by default.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="775"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="754">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="dither_enabled" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="755">%TRUE to enable dithering or %FALSE to disable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_modelview_matrix"
+              c:identifier="cogl_framebuffer_set_modelview_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="410">Sets @matrix as the new model-view matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="421"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="412">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="413">the new model-view matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_projection_matrix"
+              c:identifier="cogl_framebuffer_set_projection_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="524">Sets @matrix as the new projection matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="535"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="526">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="527">the new projection matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_samples_per_pixel"
+              c:identifier="cogl_framebuffer_set_samples_per_pixel"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="846">Requires that when rendering to @framebuffer then @n point samples
+should be made per pixel which will all contribute to the final
+resolved color for that pixel. The idea is that the hardware aims
+to get quality similar to what you would get if you rendered
+everything twice as big (for 4 samples per pixel) and then scaled
+that image back down with filtering. It can effectively remove the
+jagged edges of polygons and should be more efficient than if you
+were to manually render at a higher resolution and downscale
+because the hardware is often able to take some shortcuts. For
+example the GPU may only calculate a single texture sample for all
+points of a single pixel, and for tile based architectures all the
+extra sample data (such as depth and stencil samples) may be
+handled on-chip and so avoid increased demand on system memory
+bandwidth.
+
+By default this value is usually set to 0 and that is referred to
+as "single-sample" rendering. A value of 1 or greater is referred
+to as "multisample" rendering.
+
+&lt;note&gt;There are some semantic differences between single-sample
+rendering and multisampling with just 1 point sample such as it
+being redundant to use the cogl_framebuffer_resolve_samples() and
+cogl_framebuffer_resolve_samples_region() apis with single-sample
+rendering.&lt;/note&gt;
+
+&lt;note&gt;It's recommended that
+cogl_framebuffer_resolve_samples_region() be explicitly used at the
+end of rendering to a point sample buffer to minimize the number of
+samples that get resolved. By default Cogl will implicitly resolve
+all framebuffer samples but if only a small region of a
+framebuffer has changed this can lead to redundant work being
+done.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="888"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="848">A #CoglFramebuffer framebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="samples_per_pixel" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="849">The minimum number of samples per pixel</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_stereo_mode"
+              c:identifier="cogl_framebuffer_set_stereo_mode"
+              version="1.20"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="825">Sets which stereo buffers should be drawn to. The default
+is %COGL_STEREO_BOTH, which means that both the left and
+right buffers will be affected by drawing. For this to have
+an effect, the display system must support stereo drawables,
+and the framebuffer must have been created with stereo
+enabled. (See cogl_onscreen_template_set_stereo_enabled(),
+cogl_framebuffer_get_is_stereo().)</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="843"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="827">a pointer to a #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="stereo_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="828">A #CoglStereoMode specifying which stereo buffers
+              should be drawn tow.</doc>
+            <type name="StereoMode" c:type="CoglStereoMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_viewport"
+              c:identifier="cogl_framebuffer_set_viewport"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="159">Defines a scale and offset for everything rendered relative to the
+top-left of the destination framebuffer.
+
+By default the viewport has an origin of (0,0) and width and height
+that match the framebuffer's size. Assuming a default projection and
+modelview matrix then you could translate the contents of a window
+down and right by leaving the viewport size unchanged by moving the
+offset to (10,10). The viewport coordinates are measured in pixels.
+If you left the x and y origin as (0,0) you could scale the windows
+contents down by specify and width and height that's half the real
+size of the framebuffer.
+
+&lt;note&gt;Although the function takes floating point arguments, existing
+drivers only allow the use of integer values. In the future floating
+point values will be exposed via a checkable feature.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="189"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="161">A #CoglFramebuffer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="162">The top-left x coordinate of the viewport origin (only integers
+    supported currently)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="164">The top-left y coordinate of the viewport origin (only integers
+    supported currently)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="166">The width of the viewport (only integers supported currently)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="167">The height of the viewport (only integers supported currently)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transform"
+              c:identifier="cogl_framebuffer_transform"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="382">Multiplies the current model-view matrix by the given matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="393"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="384">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="385">the matrix to multiply with the current model-view</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="translate"
+              c:identifier="cogl_framebuffer_translate"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="324">Multiplies the current model-view matrix by one that translates the
+model along all three axes according to the given values.</doc>
+        <source-position filename="../cogl/cogl/cogl-framebuffer.h"
+                         line="338"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="framebuffer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="326">A #CoglFramebuffer pointer</doc>
+            <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="327">Distance to translate along the x-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="328">Distance to translate along the y-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-framebuffer.h"
+                 line="329">Distance to translate along the z-axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <enumeration name="FramebufferError" c:type="CoglFramebufferError">
+      <source-position filename="../cogl/cogl/cogl-framebuffer.h" line="1480"/>
+      <member name="framebuffer_error_allocate"
+              value="0"
+              c:identifier="COGL_FRAMEBUFFER_ERROR_ALLOCATE">
+      </member>
+    </enumeration>
+    <enumeration name="GraphicsResetStatus" c:type="CoglGraphicsResetStatus">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="319">All the error values that might be returned by
+cogl_get_graphics_reset_status(). Each value's meaning corresponds
+to the similarly named value defined in the ARB_robustness and
+NV_robustness_video_memory_purge extensions.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="339"/>
+      <member name="no_error"
+              value="0"
+              c:identifier="COGL_GRAPHICS_RESET_STATUS_NO_ERROR">
+      </member>
+      <member name="guilty_context_reset"
+              value="1"
+              c:identifier="COGL_GRAPHICS_RESET_STATUS_GUILTY_CONTEXT_RESET">
+      </member>
+      <member name="innocent_context_reset"
+              value="2"
+              c:identifier="COGL_GRAPHICS_RESET_STATUS_INNOCENT_CONTEXT_RESET">
+      </member>
+      <member name="unknown_context_reset"
+              value="3"
+              c:identifier="COGL_GRAPHICS_RESET_STATUS_UNKNOWN_CONTEXT_RESET">
+      </member>
+      <member name="purged_context_reset"
+              value="4"
+              c:identifier="COGL_GRAPHICS_RESET_STATUS_PURGED_CONTEXT_RESET">
+      </member>
+    </enumeration>
+    <enumeration name="IndicesType" c:type="CoglIndicesType">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="306">You should aim to use the smallest data type that gives you enough
+range, since it reduces the size of your index array and can help
+reduce the demand on memory bandwidth.
+
+Note that %COGL_INDICES_TYPE_UNSIGNED_INT is only supported if the
+%COGL_FEATURE_ID_UNSIGNED_INT_INDICES feature is available. This
+should always be available on OpenGL but on OpenGL ES it will only
+be available if the GL_OES_element_index_uint extension is
+advertized.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="327"/>
+      <member name="byte"
+              value="0"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_BYTE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="308">Your indices are unsigned bytes</doc>
+      </member>
+      <member name="short"
+              value="1"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_SHORT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="309">Your indices are unsigned shorts</doc>
+      </member>
+      <member name="int"
+              value="2"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_INT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="310">Your indices are unsigned ints</doc>
+      </member>
+    </enumeration>
+    <function-macro name="MATERIAL"
+                    c:identifier="COGL_MATERIAL"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="63"/>
+      <parameters>
+        <parameter name="OBJECT">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="META_TEXTURE"
+                    c:identifier="COGL_META_TEXTURE"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/deprecated/cogl-type-casts.h"
+                       line="51"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="Material"
+            c:type="CoglMaterial"
+            glib:type-name="CoglMaterial"
+            glib:get-type="cogl_material_get_type"
+            c:symbol-prefix="material">
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="56"/>
+      <constructor name="new"
+                   c:identifier="cogl_material_new"
+                   deprecated="1"
+                   deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="145">Allocates and initializes a blank white material</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_new() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="155"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+               line="150">a pointer to a new #CoglMaterial</doc>
+          <type name="Material" c:type="CoglMaterial*"/>
+        </return-value>
+      </constructor>
+      <method name="set_alpha_test_function"
+              c:identifier="cogl_material_set_alpha_test_function"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="236">Before a primitive is blended with the framebuffer, it goes through an
+alpha test stage which lets you discard fragments based on the current
+alpha value. This function lets you change the function used to evaluate
+the alpha channel, and thus determine which fragments are discarded
+and which continue on to the blending stage.
+
+The default is %COGL_MATERIAL_ALPHA_FUNC_ALWAYS</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_alpha_test_function() 
instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="256"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="238">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="alpha_func" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="239">A @CoglMaterialAlphaFunc constant</doc>
+            <type name="MaterialAlphaFunc" c:type="CoglMaterialAlphaFunc"/>
+          </parameter>
+          <parameter name="alpha_reference" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="240">A reference point that the chosen alpha function uses
+  to compare incoming fragments to.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend"
+              c:identifier="cogl_material_set_blend"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="260">If not already familiar; please refer &lt;link 
linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt;
+for an overview of what blend strings are, and their syntax.
+
+Blending occurs after the alpha test function, and combines fragments with
+the framebuffer.
+
+Currently the only blend function Cogl exposes is ADD(). So any valid
+blend statements will be of the form:
+
+|[
+  &amp;lt;channel-mask&amp;gt;=ADD(SRC_COLOR*(&amp;lt;factor&amp;gt;), DST_COLOR*(&amp;lt;factor&amp;gt;))
+]|
+
+&lt;warning&gt;The brackets around blend factors are currently not
+optional!&lt;/warning&gt;
+
+This is the list of source-names usable as blend factors:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;SRC_COLOR: The color of the incoming fragment&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;DST_COLOR: The color of the framebuffer&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;CONSTANT: The constant set via 
cogl_material_set_blend_constant()&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+The source names can be used according to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source and factor syntax&lt;/link&gt;,
+so for example "(1-SRC_COLOR[A])" would be a valid factor, as would
+"(CONSTANT[RGB])"
+
+These can also be used as factors:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;0: (0, 0, 0, 0)&lt;/listitem&gt;
+  &lt;listitem&gt;1: (1, 1, 1, 1)&lt;/listitem&gt;
+  &lt;listitem&gt;SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = 
MIN(SRC_COLOR[A],1-DST_COLOR[A])&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+&lt;note&gt;Remember; all color components are normalized to the range [0, 1]
+before computing the result of blending.&lt;/note&gt;
+
+&lt;example id="cogl-Blend-Strings-blend-unpremul"&gt;
+  &lt;title&gt;Blend Strings/1&lt;/title&gt;
+  &lt;para&gt;Blend a non-premultiplied source over a destination with
+  premultiplied alpha:&lt;/para&gt;
+  &lt;programlisting&gt;
+"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))"
+"A   = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+  &lt;/programlisting&gt;
+&lt;/example&gt;
+
+&lt;example id="cogl-Blend-Strings-blend-premul"&gt;
+  &lt;title&gt;Blend Strings/2&lt;/title&gt;
+  &lt;para&gt;Blend a premultiplied source over a destination with
+  premultiplied alpha&lt;/para&gt;
+  &lt;programlisting&gt;
+"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+  &lt;/programlisting&gt;
+&lt;/example&gt;
+
+The default blend string is:
+|[
+   RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))
+]|
+
+That gives normal alpha-blending when the calculated color for the material
+is in premultiplied form.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_blend() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="347"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+               line="337">%TRUE if the blend string was successfully parsed, and the
+  described blending is supported by the underlying driver/hardware. If
+  there was an error, %FALSE is returned and @error is set accordingly (if
+  present).</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="262">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="263">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt;
+  describing the desired blend function.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend_constant"
+              c:identifier="cogl_material_set_blend_constant"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="351">When blending is setup to reference a CONSTANT blend factor then
+blending will depend on the constant set with this function.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_blend_constant() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="364"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="353">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="constant_color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="354">The constant color you want</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="cogl_material_set_color"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="157">Sets the basic color of the material, used when no lighting is enabled.
+
+Note that if you don't add any layers to the material then the color
+will be blended unmodified with the destination; the default blend
+expects premultiplied colors: for example, use (0.5, 0.0, 0.0, 0.5) for
+semi-transparent red. See cogl_color_premultiply().
+
+The default value is (1.0, 1.0, 1.0, 1.0)</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_color() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="176"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="159">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="160">The components of the color</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color4ub"
+              c:identifier="cogl_material_set_color4ub"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="179">Sets the basic color of the material, used when no lighting is enabled.
+
+The default value is (0xff, 0xff, 0xff, 0xff)</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_color4ub() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="196"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="181">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="182">The red component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="183">The green component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="184">The blue component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="185">The alpha component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer"
+              c:identifier="cogl_material_set_layer"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="435">In addition to the standard OpenGL lighting model a Cogl material may have
+one or more layers comprised of textures that can be blended together in
+order, with a number of different texture combine modes. This function
+defines a new texture layer.
+
+The index values of multiple layers do not have to be consecutive; it is
+only their relative order that is important.
+
+&lt;note&gt;In the future, we may define other types of material layers, such
+as purely GLSL based layers.&lt;/note&gt;</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="457"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="437">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="438">the index of the layer</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="439">a #CoglHandle for the layer object</doc>
+            <type name="Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine"
+              c:identifier="cogl_material_set_layer_combine"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="461">If not already familiar; you can refer
+&lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt; for an overview of what blend
+strings are and there syntax.
+
+These are all the functions available for texture combining:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;REPLACE(arg0) = arg0&lt;/listitem&gt;
+  &lt;listitem&gt;MODULATE(arg0, arg1) = arg0 x arg1&lt;/listitem&gt;
+  &lt;listitem&gt;ADD(arg0, arg1) = arg0 + arg1&lt;/listitem&gt;
+  &lt;listitem&gt;ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5&lt;/listitem&gt;
+  &lt;listitem&gt;INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)&lt;/listitem&gt;
+  &lt;listitem&gt;SUBTRACT(arg0, arg1) = arg0 - arg1&lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;programlisting&gt;
+ DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+                             (arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+                             (arg0[B] - 0.5)) * (arg1[B] - 0.5))
+    &lt;/programlisting&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;programlisting&gt;
+ DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+                              (arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+                              (arg0[B] - 0.5)) * (arg1[B] - 0.5))
+    &lt;/programlisting&gt;
+  &lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Refer to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source syntax&lt;/link&gt; for
+describing the arguments. The valid source names for texture combining
+are:
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;TEXTURE&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the current texture layer&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;TEXTURE_0, TEXTURE_1, etc&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the specified texture layer&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;CONSTANT&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the constant given with
+    cogl_material_set_layer_constant()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;PRIMARY&lt;/term&gt;
+    &lt;listitem&gt;Use the color of the material as set with
+    cogl_material_set_color()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;PREVIOUS&lt;/term&gt;
+    &lt;listitem&gt;Either use the texture color from the previous layer, or
+    if this is layer 0, use the color of the material as set with
+    cogl_material_set_color()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+
+&lt;refsect2 id="cogl-Layer-Combine-Examples"&gt;
+  &lt;title&gt;Layer Combine Examples&lt;/title&gt;
+  &lt;para&gt;This is effectively what the default blending is:&lt;/para&gt;
+  &lt;informalexample&gt;&lt;programlisting&gt;
+  RGBA = MODULATE (PREVIOUS, TEXTURE)
+  &lt;/programlisting&gt;&lt;/informalexample&gt;
+  &lt;para&gt;This could be used to cross-fade between two images, using
+  the alpha component of a constant as the interpolator. The constant
+  color is given by calling cogl_material_set_layer_constant.&lt;/para&gt;
+  &lt;informalexample&gt;&lt;programlisting&gt;
+  RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A])
+  &lt;/programlisting&gt;&lt;/informalexample&gt;
+&lt;/refsect2&gt;
+
+&lt;note&gt;You can't give a multiplication factor for arguments as you can
+with blending.&lt;/note&gt;</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer_combine() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="556"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+               line="547">%TRUE if the blend string was successfully parsed, and the
+  described texture combining is supported by the underlying driver and
+  or hardware. On failure, %FALSE is returned and @error is set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="463">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="464">Specifies the layer you want define a combine function for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="465">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt;
+   describing the desired texture combine function.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine_constant"
+              c:identifier="cogl_material_set_layer_combine_constant"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="561">When you are using the 'CONSTANT' color source in a layer combine
+description then you can use this function to define its value.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer_combine_constant()
+instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="577"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="563">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="564">Specifies the layer you want to specify a constant used
+              for texture combining</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="constant" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="566">The constant color you want</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_filters"
+              c:identifier="cogl_material_set_layer_filters"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="597">Changes the decimation and interpolation filters used when a texture is
+drawn at other scales than 100%.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer_filters() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="610"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="599">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="600">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="min_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="601">the filter used when scaling a texture down.</doc>
+            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+          </parameter>
+          <parameter name="mag_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="602">the filter used when magnifying a texture.</doc>
+            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_matrix"
+              c:identifier="cogl_material_set_layer_matrix"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="581">This function lets you set a matrix that can be used to e.g. translate
+and rotate a single layer of a material used to fill your geometry.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer_matrix() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="593"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="583">A #CoglMaterial object</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="584">the index for the layer inside @material</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="585">the transformation matrix for the layer</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_point_sprite_coords_enabled"
+              c:identifier="cogl_material_set_layer_point_sprite_coords_enabled"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="615">When rendering points, if @enable is %TRUE then the texture
+coordinates for this layer will be replaced with coordinates that
+vary from 0.0 to 1.0 across the primitive. The top left of the
+point will have the coordinates 0.0,0.0 and the bottom right will
+have 1.0,1.0. If @enable is %FALSE then the coordinates will be
+fixed for the entire point.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_layer_point_sprite_coords_enabled()
+                 instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="636"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+               line="629">%TRUE if the function succeeds, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="617">a #CoglHandle to a material.</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="618">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="619">whether to enable point sprite coord generation.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_point_size"
+              c:identifier="cogl_material_set_point_size"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="367">Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is
+used with the vertex buffer API. Note that typically the GPU will
+only support a limited minimum and maximum range of point sizes. If
+the chosen point size is outside that range then the nearest value
+within that range will be used instead. The size of a point is in
+screen space so it will be the same regardless of any
+transformations. The default point size is 1.0.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_point_size() instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="385"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="369">a material.</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="point_size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="370">the new point size.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_program"
+              c:identifier="cogl_material_set_user_program"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="388">Associates a linked CoglProgram with the given material so that the
+program can take full control of vertex and/or fragment processing.
+
+This is an example of how it can be used to associate an ARBfp
+program with a #CoglMaterial:
+|[
+CoglHandle shader;
+CoglHandle program;
+CoglMaterial *material;
+
+shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT);
+cogl_shader_source (shader,
+                    "!!ARBfp1.0\n"
+                    "MOV result.color,fragment.color;\n"
+                    "END\n");
+
+program = cogl_create_program ();
+cogl_program_attach_shader (program, shader);
+cogl_program_link (program);
+
+material = cogl_material_new ();
+cogl_material_set_user_program (material, program);
+
+cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff);
+cogl_rectangle (0, 0, 100, 100);
+]|
+
+It is possibly worth keeping in mind that this API is not part of
+the long term design for how we want to expose shaders to Cogl
+developers (We are planning on deprecating the cogl_program and
+cogl_shader APIs in favour of a "snippet" framework) but in the
+meantime we hope this will handle most practical GLSL and ARBfp
+requirements.</doc>
+        <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead instead</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                         line="432"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="material" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="390">a #CoglMaterial object.</doc>
+            <type name="Material" c:type="CoglMaterial*"/>
+          </instance-parameter>
+          <parameter name="program" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                 line="391">A #CoglHandle to a linked CoglProgram</doc>
+            <type name="Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="MaterialAlphaFunc" c:type="CoglMaterialAlphaFunc">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+           line="202">Alpha testing happens before blending primitives with the framebuffer and
+gives an opportunity to discard fragments based on a comparison with the
+incoming alpha value and a reference alpha value. The #CoglMaterialAlphaFunc
+determines how the comparison is done.</doc>
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="234"/>
+      <member name="never"
+              value="512"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NEVER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="204">Never let the fragment through.</doc>
+      </member>
+      <member name="less"
+              value="513"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LESS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="205">Let the fragment through if the incoming
+  alpha value is less than the reference alpha value</doc>
+      </member>
+      <member name="equal"
+              value="514"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_EQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="207">Let the fragment through if the incoming
+  alpha value equals the reference alpha value</doc>
+      </member>
+      <member name="lequal"
+              value="515"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="209">Let the fragment through if the incoming
+  alpha value is less than or equal to the reference alpha value</doc>
+      </member>
+      <member name="greater"
+              value="516"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GREATER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="211">Let the fragment through if the incoming
+  alpha value is greater than the reference alpha value</doc>
+      </member>
+      <member name="notequal"
+              value="517"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NOTEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="213">Let the fragment through if the incoming
+  alpha value does not equal the reference alpha value</doc>
+      </member>
+      <member name="gequal"
+              value="518"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="215">Let the fragment through if the incoming
+  alpha value is greater than or equal to the reference alpha value.</doc>
+      </member>
+      <member name="always"
+              value="519"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_ALWAYS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="217">Always let the fragment through.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="MaterialFilter" c:type="CoglMaterialFilter">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+           line="65">Texture filtering is used whenever the current pixel maps either to more
+than one texture element (texel) or less than one. These filter enums
+correspond to different strategies used to come up with a pixel color, by
+possibly referring to multiple neighbouring texels and taking a weighted
+average or simply using the nearest texel.</doc>
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="100"/>
+      <member name="nearest"
+              value="9728"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="67">Measuring in manhatten distance from the,
+  current pixel center, use the nearest texture texel</doc>
+      </member>
+      <member name="linear"
+              value="9729"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="69">Use the weighted average of the 4 texels
+  nearest the current pixel center</doc>
+      </member>
+      <member name="nearest_mipmap_nearest"
+              value="9984"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="71">Select the mimap level whose
+  texel size most closely matches the current pixel, and use the
+  %COGL_MATERIAL_FILTER_NEAREST criterion</doc>
+      </member>
+      <member name="linear_mipmap_nearest"
+              value="9985"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="74">Select the mimap level whose
+  texel size most closely matches the current pixel, and use the
+  %COGL_MATERIAL_FILTER_LINEAR criterion</doc>
+      </member>
+      <member name="nearest_mipmap_linear"
+              value="9986"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="77">Select the two mimap levels
+  whose texel size most closely matches the current pixel, use
+  the %COGL_MATERIAL_FILTER_NEAREST criterion on each one and take
+  their weighted average</doc>
+      </member>
+      <member name="linear_mipmap_linear"
+              value="9987"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="81">Select the two mimap levels
+  whose texel size most closely matches the current pixel, use
+  the %COGL_MATERIAL_FILTER_LINEAR criterion on each one and take
+  their weighted average</doc>
+      </member>
+    </enumeration>
+    <record name="MaterialLayer" c:type="CoglMaterialLayer" disguised="1">
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="57"/>
+    </record>
+    <enumeration name="MaterialWrapMode"
+                 version="1.4"
+                 c:type="CoglMaterialWrapMode">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+           line="103">The wrap mode specifies what happens when texture coordinates
+outside the range 0→1 are used. Note that if the filter mode is
+anything but %COGL_MATERIAL_FILTER_NEAREST then texels outside the
+range 0→1 might be used even when the coordinate is exactly 0 or 1
+because OpenGL will try to sample neighbouring pixels. For example
+if you are trying to render the full texture then you may get
+artifacts around the edges when the pixels from the other side are
+merged in if the wrap mode is set to repeat.</doc>
+      <source-position filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+                       line="142"/>
+      <member name="repeat"
+              value="10497"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_REPEAT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="105">The texture will be repeated. This
+  is useful for example to draw a tiled background.</doc>
+      </member>
+      <member name="clamp_to_edge"
+              value="33071"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_CLAMP_TO_EDGE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="107">The coordinates outside the
+  range 0→1 will sample copies of the edge pixels of the
+  texture. This is useful to avoid artifacts if only one copy of
+  the texture is being rendered.</doc>
+      </member>
+      <member name="automatic"
+              value="519"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_AUTOMATIC">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+             line="111">Cogl will try to automatically
+  decide which of the above two to use. For cogl_rectangle(), it
+  will use repeat mode if any of the texture coordinates are
+  outside the range 0→1, otherwise it will use clamp to edge. For
+  cogl_polygon() it will always use repeat mode. For
+  cogl_vertex_buffer_draw() it will use repeat mode except for
+  layers that have point sprite coordinate generation enabled. This
+  is the default value.</doc>
+      </member>
+    </enumeration>
+    <record name="Matrix"
+            c:type="CoglMatrix"
+            glib:type-name="CoglMatrix"
+            glib:get-type="cogl_matrix_get_gtype"
+            c:symbol-prefix="matrix">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-matrix.h"
+           line="59">A CoglMatrix holds a 4x4 transform matrix. This is a single precision,
+column-major matrix which means it is compatible with what OpenGL expects.
+
+A CoglMatrix can represent transforms such as, rotations, scaling,
+translation, sheering, and linear projections. You can combine these
+transforms by multiplying multiple matrices in the order you want them
+applied.
+
+The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by:
+
+|[
+  x_new = xx * x + xy * y + xz * z + xw * w
+  y_new = yx * x + yy * y + yz * z + yw * w
+  z_new = zx * x + zy * y + zz * z + zw * w
+  w_new = wx * x + wy * y + wz * z + ww * w
+]|
+
+Where w is normally 1
+
+&lt;note&gt;You must consider the members of the CoglMatrix structure read only,
+and all matrix modifications must be done via the cogl_matrix API. This
+allows Cogl to annotate the matrices internally. Violation of this will give
+undefined results. If you need to initialize a matrix with a constant other
+than the identity matrix you can use cogl_matrix_init_from_array().&lt;/note&gt;</doc>
+      <source-position filename="../cogl/cogl/cogl-matrix.h" line="121"/>
+      <field name="xx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="ww" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="private_member_inv" readable="0" private="1">
+        <array zero-terminated="0" fixed-size="16">
+          <type name="gfloat" c:type="float"/>
+        </array>
+      </field>
+      <field name="private_member_type" readable="0" private="1">
+        <type name="gulong" c:type="unsigned long"/>
+      </field>
+      <field name="private_member_flags" readable="0" private="1">
+        <type name="gulong" c:type="unsigned long"/>
+      </field>
+      <field name="private_member__padding3" readable="0" private="1">
+        <type name="gulong" c:type="unsigned long"/>
+      </field>
+      <method name="copy" c:identifier="cogl_matrix_copy" version="1.6">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="503">Allocates a new #CoglMatrix on the heap and initializes it with
+the same values as @matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="516"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="510">A newly allocated #CoglMatrix which
+should be freed using cogl_matrix_free()</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="505">A 4x4 transformation matrix you want to copy</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="cogl_matrix_free" version="1.6">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="518">Frees a #CoglMatrix that was previously allocated via a call to
+cogl_matrix_copy().</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="528"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="520">A 4x4 transformation matrix you want to free</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="frustum" c:identifier="cogl_matrix_frustum">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="301">Multiplies @matrix by the given frustum perspective matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="318"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="303">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="304">X position of the left clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="right" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="306">X position of the right clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bottom" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="308">Y position of the bottom clipping plane where it
+  intersects the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="310">Y position of the top clipping plane where it intersects
+  the near clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="312">The distance to the near clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="313">The distance to the far clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_array" c:identifier="cogl_matrix_get_array">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="466">Casts @matrix to a float array which can be directly passed to OpenGL.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="475"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="472">a pointer to the float array</doc>
+          <type name="gfloat" c:type="const float*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="468">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_inverse"
+              c:identifier="cogl_matrix_get_inverse"
+              version="1.2">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="530">Gets the inverse transform of a given matrix and uses it to initialize
+a new #CoglMatrix.
+
+&lt;note&gt;Although the first parameter is annotated as const to indicate
+that the transform it represents isn't modified this function may
+technically save a copy of the inverse transform within the given
+#CoglMatrix so that subsequent requests for the inverse transform may
+avoid costly inversion calculations.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="551"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="544">%TRUE if the inverse was successfully calculated or %FALSE
+  for degenerate transformations that can't be inverted (in this case the
+  @inverse matrix will simply be initialized with the identity matrix)</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="532">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="inverse"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="533">The destination for a 4x4 inverse transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_array"
+              c:identifier="cogl_matrix_init_from_array">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="455">Initializes @matrix with the contents of @array</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="463"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="457">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="array" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="458">A linear array of 16 floats (column-major order)</doc>
+            <type name="gfloat" c:type="const float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_euler"
+              c:identifier="cogl_matrix_init_from_euler">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="477">Initializes @matrix from a #graphene_euler_t rotation.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="485"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="479">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="euler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="480">A #graphene_euler_t</doc>
+            <type name="Graphene.Euler" c:type="const graphene_euler_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_identity" c:identifier="cogl_matrix_init_identity">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="125">Resets matrix to the identity matrix:
+
+|[
+  .xx=1; .xy=0; .xz=0; .xw=0;
+  .yx=0; .yy=1; .yz=0; .yw=0;
+  .zx=0; .zy=0; .zz=1; .zw=0;
+  .wx=0; .wy=0; .wz=0; .ww=1;
+]|</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="127">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="init_translation"
+              c:identifier="cogl_matrix_init_translation"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="141">Resets matrix to the (tx, ty, tz) translation matrix:
+
+|[
+  .xx=1; .xy=0; .xz=0; .xw=tx;
+  .yx=0; .yy=1; .yz=0; .yw=ty;
+  .zx=0; .zy=0; .zz=1; .zw=tz;
+  .wx=0; .wy=0; .wz=0; .ww=1;
+]|</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="160"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="143">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="tx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="144">x coordinate of the translation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="ty" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="145">y coordinate of the translation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="tz" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="146">z coordinate of the translation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_identity"
+              c:identifier="cogl_matrix_is_identity"
+              version="1.8">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="689">Determines if the given matrix is an identity matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="699"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="695">%TRUE if @matrix is an identity matrix else %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="691">A #CoglMatrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="look_at"
+              c:identifier="cogl_matrix_look_at"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="246">Applies a view transform @matrix that positions the camera at
+the coordinate (@eye_position_x, @eye_position_y, @eye_position_z)
+looking towards an object at the coordinate (@object_x, @object_y,
+@object_z). The top of the camera is aligned to the given world up
+vector, which is normally simply (0, 1, 0) to map up to the
+positive direction of the y axis.
+
+Because there is a lot of misleading documentation online for
+gluLookAt regarding the up vector we want to try and be a bit
+clearer here.
+
+The up vector should simply be relative to your world coordinates
+and does not need to change as you move the eye and object
+positions.  Many online sources may claim that the up vector needs
+to be perpendicular to the vector between the eye and object
+position (partly because the man page is somewhat misleading) but
+that is not necessary for this function.
+
+&lt;note&gt;You should never look directly along the world-up
+vector.&lt;/note&gt;
+
+&lt;note&gt;It is assumed you are using a typical projection matrix where
+your origin maps to the center of your viewport.&lt;/note&gt;
+
+&lt;note&gt;Almost always when you use this function it should be the first
+transform applied to a new modelview transform&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="290"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="248">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="eye_position_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="249">The X coordinate to look from</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="eye_position_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="250">The Y coordinate to look from</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="eye_position_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="251">The Z coordinate to look from</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="object_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="252">The X coordinate of the object to look at</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="object_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="253">The Y coordinate of the object to look at</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="object_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="254">The Z coordinate of the object to look at</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="world_up_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="255">The X component of the world's up direction vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="world_up_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="256">The Y component of the world's up direction vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="world_up_z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="257">The Z component of the world's up direction vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="multiply" c:identifier="cogl_matrix_multiply">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="165">Multiplies the two supplied matrices together and stores
+the resulting matrix inside @result.
+
+&lt;note&gt;It is possible to multiply the @a matrix in-place, so
+@result can be equal to @a but can't be equal to @b.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="178"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="result" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="167">The address of a 4x4 matrix to store the result in</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="a" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="168">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="169">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="orthographic"
+              c:identifier="cogl_matrix_orthographic"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="349">Multiplies @matrix by a parallel projection matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="369"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="351">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="352">The x coordinate for the first vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="353">The y coordinate for the first horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="354">The x coordinate for the second vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="355">The y coordinate for the second horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="356">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the near clipping
+  plane (will be &lt;emphasis&gt;negative&lt;/emphasis&gt; if the plane is
+  behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="359">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the far clipping
+  plane (will be &lt;emphasis&gt;negative&lt;/emphasis&gt; if the plane is
+  behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perspective" c:identifier="cogl_matrix_perspective">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="326">Multiplies @matrix by the described perspective matrix
+
+&lt;note&gt;You should be careful not to have to great a @z_far / @z_near
+ratio since that will reduce the effectiveness of depth testing
+since there won't be enough precision to identify the depth of
+objects near to each other.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="343"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="328">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="fov_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="329">Vertical field of view angle in degrees.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="aspect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="330">The (width over height) aspect ratio for display</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="331">The distance to the near clipping plane (Must be positive,
+  and must not be 0)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="333">The distance to the far clipping plane (Must be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="project_points"
+              c:identifier="cogl_matrix_project_points"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="634">Projects an array of input points and writes the result to another
+array of output points. The input points can either have 2, 3 or 4
+components each. The output points always have 4 components (known
+as homogeneous coordinates). The output array can simply point to
+the input array to do the transform in-place.
+
+Here's an example with differing input/output strides:
+|[
+typedef struct {
+  float x,y;
+  uint8_t r,g,b,a;
+  float s,t,p;
+} MyInVertex;
+typedef struct {
+  uint8_t r,g,b,a;
+  float x,y,z;
+} MyOutVertex;
+MyInVertex vertices[N_VERTICES];
+MyOutVertex results[N_VERTICES];
+CoglMatrix matrix;
+
+my_load_vertices (vertices);
+my_get_matrix (&amp;matrix);
+
+cogl_matrix_project_points (&amp;matrix,
+                            2,
+                            sizeof (MyInVertex),
+                            &amp;vertices[0].x,
+                            sizeof (MyOutVertex),
+                            &amp;results[0].x,
+                            N_VERTICES);
+]|</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="681"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="636">A projection matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="n_components" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="637">The number of position components for each input point.
+               (either 2, 3 or 4)</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="stride_in" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="639">The stride in bytes between input points.</doc>
+            <type name="gsize" c:type="size_t"/>
+          </parameter>
+          <parameter name="points_in"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="640">A pointer to the first component of the first input point.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="stride_out" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="641">The stride in bytes between output points.</doc>
+            <type name="gsize" c:type="size_t"/>
+          </parameter>
+          <parameter name="points_out"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="642">A pointer to the first component of the first output point.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="n_points" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="643">The number of points to transform.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rotate" c:identifier="cogl_matrix_rotate">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="182">Multiplies @matrix with a rotation matrix that applies a rotation
+of @angle degrees around the specified 3D vector.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="194"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="184">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="185">The angle you want to rotate in degrees</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="186">X component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="187">Y component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="188">Z component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rotate_euler"
+              c:identifier="cogl_matrix_rotate_euler"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="200">Multiplies @matrix with a rotation transformation described by the
+given #graphene_euler_t.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="211"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="202">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="euler" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="203">A euler describing a rotation</doc>
+            <type name="Graphene.Euler" c:type="const graphene_euler_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scale" c:identifier="cogl_matrix_scale">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="230">Multiplies @matrix with a transform matrix that scales along the X,
+Y and Z axis.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="241"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="232">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="sx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="233">The X scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="sy" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="234">The Y scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="sz" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="235">The Z scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transform_point"
+              c:identifier="cogl_matrix_transform_point">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="558">Transforms a point whose position is given and returned as four float
+components.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="570"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="560">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="561">The X component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="562">The Y component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="z"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="563">The Z component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="w"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="564">The W component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transform_points"
+              c:identifier="cogl_matrix_transform_points"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="576">Transforms an array of input points and writes the result to
+another array of output points. The input points can either have 2
+or 3 components each. The output points always have 3 components.
+The output array can simply point to the input array to do the
+transform in-place.
+
+If you need to transform 4 component points see
+cogl_matrix_project_points().
+
+Here's an example with differing input/output strides:
+|[
+typedef struct {
+  float x,y;
+  uint8_t r,g,b,a;
+  float s,t,p;
+} MyInVertex;
+typedef struct {
+  uint8_t r,g,b,a;
+  float x,y,z;
+} MyOutVertex;
+MyInVertex vertices[N_VERTICES];
+MyOutVertex results[N_VERTICES];
+CoglMatrix matrix;
+
+my_load_vertices (vertices);
+my_get_matrix (&amp;matrix);
+
+cogl_matrix_transform_points (&amp;matrix,
+                              2,
+                              sizeof (MyInVertex),
+                              &amp;vertices[0].x,
+                              sizeof (MyOutVertex),
+                              &amp;results[0].x,
+                              N_VERTICES);
+]|</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="626"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="578">A transformation matrix</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="n_components" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="579">The number of position components for each input point.
+               (either 2 or 3)</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="stride_in" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="581">The stride in bytes between input points.</doc>
+            <type name="gsize" c:type="size_t"/>
+          </parameter>
+          <parameter name="points_in"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="582">A pointer to the first component of the first input point.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="stride_out" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="583">The stride in bytes between output points.</doc>
+            <type name="gsize" c:type="size_t"/>
+          </parameter>
+          <parameter name="points_out"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="584">A pointer to the first component of the first output point.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="n_points" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="585">The number of points to transform.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="translate" c:identifier="cogl_matrix_translate">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="214">Multiplies @matrix with a transform matrix that translates along
+the X, Y and Z axis.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="225"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="216">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="217">The X translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="218">The Y translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="219">The Z translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transpose"
+              c:identifier="cogl_matrix_transpose"
+              version="1.10">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="701">Replaces @matrix with its transpose. Ie, every element (i,j) in the
+new matrix is taken from element (j,i) in the old matrix.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="711"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="703">A #CoglMatrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="view_2d_in_frustum"
+              c:identifier="cogl_matrix_view_2d_in_frustum"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="377">Multiplies @matrix by a view transform that maps the 2D coordinates
+(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport
+size. Geometry at a depth of 0 will now lie on this 2D plane.
+
+Note: this doesn't multiply the matrix by any projection matrix,
+but it assumes you have a perspective projection as defined by
+passing the corresponding arguments to cogl_matrix_frustum().
+
+Toolkits such as Clutter that mix 2D and 3D drawing can use this to
+create a 2D coordinate system within a 3D perspective projected
+view frustum.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="408"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="379">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="380">coord of left vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="right" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="381">coord of right vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bottom" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="382">coord of bottom horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="383">coord of top horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="384">The distance to the near clip plane. Never pass 0 and always pass
+  a positive number.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="386">The distance to the 2D plane. (Should always be positive and
+  be between @z_near and the z_far value that was passed to
+  cogl_matrix_frustum())</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="width_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="389">The width of the 2D coordinate system</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="height_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="390">The height of the 2D coordinate system</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="view_2d_in_perspective"
+              c:identifier="cogl_matrix_view_2d_in_perspective"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="418">Multiplies @matrix by a view transform that maps the 2D coordinates
+(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport
+size. Geometry at a depth of 0 will now lie on this 2D plane.
+
+Note: this doesn't multiply the matrix by any projection matrix,
+but it assumes you have a perspective projection as defined by
+passing the corresponding arguments to cogl_matrix_perspective().
+
+Toolkits such as Clutter that mix 2D and 3D drawing can use this to
+create a 2D coordinate system within a 3D perspective projected
+view frustum.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="447"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="matrix" transfer-ownership="none">
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </instance-parameter>
+          <parameter name="fov_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="420">A field of view angle for the Y axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="aspect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="421">The ratio of width to height determining the field of view angle
+  for the x axis.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="423">The distance to the near clip plane. Never pass 0 and always pass
+  a positive number.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="425">The distance to the 2D plane. (Should always be positive and
+  be between @z_near and the z_far value that was passed to
+  cogl_matrix_frustum())</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="width_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="428">The width of the 2D coordinate system</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="height_2d" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="429">The height of the 2D coordinate system</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <function name="equal" c:identifier="cogl_matrix_equal" version="1.4">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="488">Compares two matrices to see if they represent the same
+transformation. Although internally the matrices may have different
+annotations associated with them and may potentially have a cached
+inverse matrix these are not considered in the comparison.</doc>
+        <source-position filename="../cogl/cogl/cogl-matrix.h" line="501"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="v1"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="490">A 4x4 transformation matrix</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="v2"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-matrix.h"
+                 line="491">A 4x4 transformation matrix</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </function>
+    </record>
+    <function-macro name="OBJECT"
+                    c:identifier="COGL_OBJECT"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-object.h" line="42"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="OFFSCREEN"
+                    c:identifier="COGL_OFFSCREEN"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-offscreen.h" line="55"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="ONSCREEN"
+                    c:identifier="COGL_ONSCREEN"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="51"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Object"
+           c:symbol-prefix="object"
+           c:type="CoglObject"
+           abstract="1"
+           glib:type-name="CoglObject"
+           glib:get-type="cogl_object_get_gtype"
+           glib:fundamental="1"
+           glib:ref-func="cogl_object_ref"
+           glib:unref-func="cogl_object_unref"
+           glib:set-value-func="cogl_object_value_set_object"
+           glib:get-value-func="cogl_object_value_get_object">
+      <function name="ref" c:identifier="cogl_object_ref" introspectable="0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="58">Increases the reference count of @object by 1</doc>
+        <source-position filename="../cogl/cogl/cogl-object.h" line="67"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="64">the @object, with its reference count increased</doc>
+          <type name="gpointer" c:type="void*"/>
+        </return-value>
+        <parameters>
+          <parameter name="object"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="60">a #CoglObject</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="unref"
+                c:identifier="cogl_object_unref"
+                introspectable="0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="69">Drecreases the reference count of @object by 1; if the reference
+count reaches 0, the resources allocated by @object will be freed</doc>
+        <source-position filename="../cogl/cogl/cogl-object.h" line="77"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="71">a #CoglObject</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_user_data"
+              c:identifier="cogl_object_get_user_data"
+              version="1.4"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="197">Finds the user data previously associated with @object using
+the given @key. If no user data has been associated with @object
+for the given @key this function returns NULL.</doc>
+        <source-position filename="../cogl/cogl/cogl-object.h" line="214"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="207">The user data previously associated
+  with @object using the given @key; or %NULL if no associated
+  data is found.</doc>
+          <type name="gpointer" c:type="void*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="199">The object with associated private data to query</doc>
+            <type name="Object" c:type="CoglObject*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="200">The address of a #CoglUserDataKey which provides a unique value
+      with which to index the private data.</doc>
+            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_data"
+              c:identifier="cogl_object_set_user_data"
+              version="1.4"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="174">Associates some private @user_data with a given #CoglObject. To
+later remove the association call cogl_object_set_user_data() with
+the same @key but NULL for the @user_data.</doc>
+        <source-position filename="../cogl/cogl/cogl-object.h" line="192"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="176">The object to associate private data with</doc>
+            <type name="Object" c:type="CoglObject*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="177">The address of a #CoglUserDataKey which provides a unique value
+  with which to index the private data.</doc>
+            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="179">The data to associate with the given object,
+  or %NULL to remove a previous association.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-object.h"
+                 line="181">A #CoglUserDataDestroyCallback to call if the object is
+  destroyed or if the association is removed by later setting
+  %NULL data for the same key.</doc>
+            <type name="UserDataDestroyCallback"
+                  c:type="CoglUserDataDestroyCallback"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <class name="Offscreen"
+           c:symbol-prefix="offscreen"
+           c:type="CoglOffscreen"
+           parent="Object"
+           glib:type-name="CoglOffscreen"
+           glib:get-type="cogl_offscreen_get_gtype"
+           glib:fundamental="1">
+      <implements name="Framebuffer"/>
+      <constructor name="new_to_texture"
+                   c:identifier="cogl_offscreen_new_to_texture"
+                   deprecated="1"
+                   deprecated-version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-offscreen.h"
+             line="102">This creates an offscreen buffer object using the given @texture as the
+primary color buffer. It doesn't just initialize the contents of the
+offscreen buffer with the @texture; they are tightly bound so that
+drawing to the offscreen buffer effectivly updates the contents of the
+given texture. You don't need to destroy the offscreen buffer before
+you can use the @texture again.
+
+&lt;note&gt;This only works with low-level #CoglTexture types such as
+#CoglTexture2D and not with meta-texture types such as
+#CoglTexture2DSliced.&lt;/note&gt;</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_offscreen_new_with_texture instead.</doc-deprecated>
+        <source-position filename="../cogl/cogl/cogl-offscreen.h" line="124"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-offscreen.h"
+               line="117">a newly instantiated #CoglOffscreen
+  framebuffer or %NULL if it wasn't possible to create the
+  buffer.</doc>
+          <type name="Offscreen" c:type="CoglOffscreen*"/>
+        </return-value>
+        <parameters>
+          <parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-offscreen.h"
+                 line="104">A #CoglTexture pointer</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_texture"
+                   c:identifier="cogl_offscreen_new_with_texture">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-offscreen.h"
+             line="67">This creates an offscreen framebuffer object using the given
+@texture as the primary color buffer. It doesn't just initialize
+the contents of the offscreen buffer with the @texture; they are
+tightly bound so that drawing to the offscreen buffer effectively
+updates the contents of the given texture. You don't need to
+destroy the offscreen buffer before you can use the @texture again.
+
+&lt;note&gt;This api only works with low-level #CoglTexture types such as
+#CoglTexture2D and not with meta-texture types such as
+#CoglTexture2DSliced.&lt;/note&gt;
+
+The storage for the framebuffer is actually allocated lazily
+so this function will never return %NULL to indicate a runtime
+error. This means it is still possible to configure the framebuffer
+before it is really allocated.
+
+Simple applications without full error handling can simply rely on
+Cogl to lazily allocate the storage of framebuffers but you should
+be aware that if Cogl encounters an error (such as running out of
+GPU memory) then your application will simply abort with an error
+message. If you need to be able to catch such exceptions at runtime
+then you can explicitly allocate your framebuffer when you have
+finished configuring it by calling cogl_framebuffer_allocate() and
+passing in a #GError argument to catch any exceptions.</doc>
+        <source-position filename="../cogl/cogl/cogl-offscreen.h" line="100"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-offscreen.h"
+               line="96">a newly instantiated #CoglOffscreen
+  framebuffer.</doc>
+          <type name="Offscreen" c:type="CoglOffscreen*"/>
+        </return-value>
+        <parameters>
+          <parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-offscreen.h"
+                 line="69">A #CoglTexture pointer</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_texture"
+              c:identifier="cogl_offscreen_get_texture"
+              introspectable="0">
+        <source-position filename="../cogl/cogl/cogl-offscreen.h" line="143"/>
+        <return-value>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="offscreen" transfer-ownership="none">
+            <type name="Offscreen" c:type="CoglOffscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </class>
+    <class name="Onscreen"
+           c:symbol-prefix="onscreen"
+           c:type="CoglOnscreen"
+           parent="Object"
+           glib:type-name="CoglOnscreen"
+           glib:get-type="cogl_onscreen_get_gtype"
+           glib:fundamental="1">
+      <implements name="Framebuffer"/>
+      <constructor name="new"
+                   c:identifier="cogl_onscreen_new"
+                   version="1.8"
+                   introspectable="0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="63">Instantiates an "unallocated" #CoglOnscreen framebuffer that may be
+configured before later being allocated, either implicitly when
+it is first used or explicitly via cogl_framebuffer_allocate().</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="78"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="73">A newly instantiated #CoglOnscreen framebuffer</doc>
+          <type name="Onscreen" c:type="CoglOnscreen*"/>
+        </return-value>
+        <parameters>
+          <parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="65">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="66">The desired framebuffer width</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="67">The desired framebuffer height</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_dirty_callback"
+              c:identifier="cogl_onscreen_add_dirty_callback"
+              version="1.16"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="697">Installs a @callback function that will be called whenever the
+window system has lost the contents of a region of the onscreen
+buffer and the application should redraw it to repair the buffer.
+For example this may happen in a window system without a compositor
+if a window that was previously covering up the onscreen window has
+been moved causing a region of the onscreen to be exposed.
+
+The @callback will be passed a #CoglOnscreenDirtyInfo struct which
+describes a rectangle containing the newly dirtied region. Note that
+this may be called multiple times to describe a non-rectangular
+region composed of multiple smaller rectangles.
+
+The dirty events are separate from %COGL_FRAME_EVENT_SYNC events so
+the application should also listen for this event before rendering
+the dirty region to ensure that the framebuffer is actually ready
+for rendering.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="728"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="722">a #CoglOnscreenDirtyClosure pointer that can be used to
+              remove the callback and associated @user_data later.</doc>
+          <type name="OnscreenDirtyClosure"
+                c:type="CoglOnscreenDirtyClosure*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="699">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="700">A callback function to call for dirty events</doc>
+            <type name="OnscreenDirtyCallback"
+                  c:type="CoglOnscreenDirtyCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="701">A private pointer to be passed to @callback</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="702">An optional callback to destroy @user_data when the
+          @callback is removed or @onscreen is freed.</doc>
+            <type name="UserDataDestroyCallback"
+                  c:type="CoglUserDataDestroyCallback"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_frame_callback"
+              c:identifier="cogl_onscreen_add_frame_callback"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="409">Installs a @callback function that will be called for significant
+events relating to the given @onscreen framebuffer.
+
+The @callback will be used to notify when the system compositor is
+ready for this application to render a new frame. In this case
+%COGL_FRAME_EVENT_SYNC will be passed as the event argument to the
+given @callback in addition to the #CoglFrameInfo corresponding to
+the frame being acknowledged by the compositor.
+
+The @callback will also be called to notify when the frame has
+ended. In this case %COGL_FRAME_EVENT_COMPLETE will be passed as
+the event argument to the given @callback in addition to the
+#CoglFrameInfo corresponding to the newly presented frame.  The
+meaning of "ended" here simply means that no more timing
+information will be collected within the corresponding
+#CoglFrameInfo and so this is a good opportunity to analyse the
+given info. It does not necessarily mean that the GPU has finished
+rendering the corresponding frame.
+
+We highly recommend throttling your application according to
+%COGL_FRAME_EVENT_SYNC events so that your application can avoid
+wasting resources, drawing more frames than your system compositor
+can display.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="447"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="441">a #CoglFrameClosure pointer that can be used to
+              remove the callback and associated @user_data later.</doc>
+          <type name="FrameClosure" c:type="CoglFrameClosure*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="411">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="412">A callback function to call for frame events</doc>
+            <type name="FrameCallback" c:type="CoglFrameCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="413">A private pointer to be passed to @callback</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="414">An optional callback to destroy @user_data
+          when the @callback is removed or @onscreen is freed.</doc>
+            <type name="UserDataDestroyCallback"
+                  c:type="CoglUserDataDestroyCallback"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_resize_callback"
+              c:identifier="cogl_onscreen_add_resize_callback"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="582">Registers a @callback with @onscreen that will be called whenever
+the @onscreen framebuffer changes size.
+
+The @callback can be removed using
+cogl_onscreen_remove_resize_callback() passing the returned closure
+pointer.
+
+&lt;note&gt;Since Cogl automatically updates the viewport of an @onscreen
+framebuffer that is resized, a resize callback can also be used to
+track when the viewport has been changed automatically by Cogl in
+case your application needs more specialized control over the
+viewport.&lt;/note&gt;
+
+&lt;note&gt;A resize callback will only ever be called while dispatching
+Cogl events from the system mainloop; so for example during
+cogl_poll_renderer_dispatch(). This is so that callbacks shouldn't
+occur while an application might have arbitrary locks held for
+example.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="615"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="610">a #CoglOnscreenResizeClosure pointer that can be used to
+              remove the callback and associated @user_data later.</doc>
+          <type name="OnscreenResizeClosure"
+                c:type="CoglOnscreenResizeClosure*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="584">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="585">A #CoglOnscreenResizeCallback to call when
+           the @onscreen changes size.</doc>
+            <type name="OnscreenResizeCallback"
+                  c:type="CoglOnscreenResizeCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="587">Private data to be passed to @callback.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="588">An optional callback to destroy @user_data
+          when the @callback is removed or @onscreen is freed.</doc>
+            <type name="UserDataDestroyCallback"
+                  c:type="CoglUserDataDestroyCallback"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="direct_scanout"
+              c:identifier="cogl_onscreen_direct_scanout"
+              introspectable="0"
+              throws="1">
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="295"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="scanout" transfer-ownership="none">
+            <type name="Scanout" c:type="CoglScanout*"/>
+          </parameter>
+          <parameter name="info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_buffer_age"
+              c:identifier="cogl_onscreen_get_buffer_age"
+              version="1.14"
+              stability="Stable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="185">Gets the current age of the buffer contents.
+
+This function allows applications to query the age of the current
+back buffer contents for a #CoglOnscreen as the number of frames
+elapsed since the contents were most recently defined.
+
+These age values exposes enough information to applications about
+how Cogl internally manages back buffers to allow applications to
+re-use the contents of old frames and minimize how much must be
+redrawn for the next frame.
+
+The back buffer contents can either be reported as invalid (has an
+age of 0) or it may be reported to be the same contents as from n
+frames prior to the current frame.
+
+The queried value remains valid until the next buffer swap.
+
+&lt;note&gt;One caveat is that under X11 the buffer age does not reflect
+changes to buffer contents caused by the window systems. X11
+applications must track Expose events to determine what buffer
+regions need to additionally be repaired each frame.&lt;/note&gt;
+
+The recommended way to take advantage of this buffer age api is to
+build up a circular buffer of length 3 for tracking damage regions
+over the last 3 frames and when starting a new frame look at the
+age of the buffer and combine the damage regions for the current
+frame with the damage regions of previous @age frames so you know
+everything that must be redrawn to update the old contents for the
+new frame.
+
+&lt;note&gt;If the system doesn't not support being able to track the age
+of back buffers then this function will always return 0 which
+implies that the contents are undefined.&lt;/note&gt;
+
+&lt;note&gt;The %COGL_FEATURE_ID_BUFFER_AGE feature can optionally be
+explicitly checked to determine if Cogl is currently tracking the
+age of #CoglOnscreen back buffer contents. If this feature is
+missing then this function will always return 0.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="235"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="228">The age of the buffer contents or 0 when the buffer
+              contents are undefined.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="187">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_counter"
+              c:identifier="cogl_onscreen_get_frame_counter"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="767">Gets the value of the framebuffers frame counter. This is
+a counter that increases by one each time
+cogl_onscreen_swap_buffers() or cogl_onscreen_swap_region()
+is called.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="780"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="775">the current frame counter value</doc>
+          <type name="gint64" c:type="int64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_resizable"
+              c:identifier="cogl_onscreen_get_resizable"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="505">Lets you query whether @onscreen has been marked as resizable via
+the cogl_onscreen_set_resizable() api.
+
+By default, if possible, a @onscreen will be created by Cogl
+as non resizable, but it is not guaranteed that this is always
+possible for all window systems.
+
+&lt;note&gt;If cogl_onscreen_set_resizable(@onscreen, %TRUE) has been
+previously called then this function will return %TRUE, but it's
+possible that the current windowing system being used does not
+support window resizing (consider fullscreen windows on a phone or
+a TV). This function is not aware of whether resizing is truly
+meaningful with your window system, only whether the @onscreen has
+been marked as resizable.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="529"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="524">Returns whether @onscreen has been marked as
+              resizable or not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="507">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide"
+              c:identifier="cogl_onscreen_hide"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="134">This requests to make @onscreen invisible to the user.
+
+Actually the precise semantics of this function depend on the
+window system currently in use, and if you don't have a
+multi-windowining system this function may in-fact do nothing.
+
+This function does not implicitly allocate the given @onscreen
+framebuffer before hiding it.
+
+&lt;note&gt;Since Cogl doesn't explicitly track the visibility status of
+onscreen framebuffers it won't try to avoid redundant window system
+requests e.g. to show an already visible window. This also means
+that it's acceptable to alternatively use native APIs to show and
+hide windows without confusing Cogl.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="157"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="136">The onscreen framebuffer to make invisible</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_dirty_callback"
+              c:identifier="cogl_onscreen_remove_dirty_callback"
+              version="1.16"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="733">Removes a callback and associated user data that were previously
+registered using cogl_onscreen_add_dirty_callback().
+
+If a destroy callback was passed to
+cogl_onscreen_add_dirty_callback() to destroy the user data then
+this will also get called.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="750"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="735">A #CoglOnscreen</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="736">A #CoglOnscreenDirtyClosure returned from
+          cogl_onscreen_add_dirty_callback()</doc>
+            <type name="OnscreenDirtyClosure"
+                  c:type="CoglOnscreenDirtyClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_frame_callback"
+              c:identifier="cogl_onscreen_remove_frame_callback"
+              version="1.14"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="452">Removes a callback and associated user data that were previously
+registered using cogl_onscreen_add_frame_callback().
+
+If a destroy callback was passed to
+cogl_onscreen_add_frame_callback() to destroy the user data then
+this will get called.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="469"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="454">A #CoglOnscreen</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="455">A #CoglFrameClosure returned from
+          cogl_onscreen_add_frame_callback()</doc>
+            <type name="FrameClosure" c:type="CoglFrameClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_resize_callback"
+              c:identifier="cogl_onscreen_remove_resize_callback"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="620">Removes a resize @callback and @user_data pair that were previously
+associated with @onscreen via cogl_onscreen_add_resize_callback().</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="631"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="622">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="623">An identifier returned from cogl_onscreen_add_resize_callback()</doc>
+            <type name="OnscreenResizeClosure"
+                  c:type="CoglOnscreenResizeClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_resizable"
+              c:identifier="cogl_onscreen_set_resizable"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="472">Lets you request Cogl to mark an @onscreen framebuffer as
+resizable or not.
+
+By default, if possible, a @onscreen will be created by Cogl
+as non resizable, but it is not guaranteed that this is always
+possible for all window systems.
+
+&lt;note&gt;Cogl does not know whether marking the @onscreen framebuffer
+is truly meaningful for your current window system (consider
+applications being run fullscreen on a phone or TV) so this
+function may not have any useful effect. If you are running on a
+multi windowing system such as X11 or Win32 or OSX then Cogl will
+request to the window system that users be allowed to resize the
+@onscreen, although it's still possible that some other window
+management policy will block this possibility.&lt;/note&gt;
+
+&lt;note&gt;Whenever an @onscreen framebuffer is resized the viewport
+will be automatically updated to match the new size of the
+framebuffer with an origin of (0,0). If your application needs more
+specialized control of the viewport it will need to register a
+resize handler using cogl_onscreen_add_resize_callback() so that it
+can track when the viewport has been changed automatically.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="502"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="474">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="resizable" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show"
+              c:identifier="cogl_onscreen_show"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="103">This requests to make @onscreen visible to the user.
+
+Actually the precise semantics of this function depend on the
+window system currently in use, and if you don't have a
+multi-windowining system this function may in-fact do nothing.
+
+This function will implicitly allocate the given @onscreen
+framebuffer before showing it if it hasn't already been allocated.
+
+When using the Wayland winsys calling this will set the surface to
+a toplevel type which will make it appear. If the application wants
+to set a different type for the surface, it can avoid calling
+cogl_onscreen_show() and set its own type directly with the Wayland
+client API via cogl_wayland_onscreen_get_surface().
+
+&lt;note&gt;Since Cogl doesn't explicitly track the visibility status of
+onscreen framebuffers it won't try to avoid redundant window system
+requests e.g. to show an already visible window. This also means
+that it's acceptable to alternatively use native APIs to show and
+hide windows without confusing Cogl.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="132"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="105">The onscreen framebuffer to make visible</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="swap_buffers"
+              c:identifier="cogl_onscreen_swap_buffers"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="159">Swaps the current back buffer being rendered too, to the front for display.
+
+This function also implicitly discards the contents of the color, depth and
+stencil buffers as if cogl_framebuffer_discard_buffers() were used. The
+significance of the discard is that you should not expect to be able to
+start a new frame that incrementally builds on the contents of the previous
+frame.
+
+&lt;note&gt;It is highly recommended that applications use
+cogl_onscreen_swap_buffers_with_damage() instead whenever possible
+and also use the cogl_onscreen_get_buffer_age() api so they can
+perform incremental updates to older buffers instead of having to
+render a full buffer for every frame.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="181"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="161">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="frame_info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="swap_buffers_with_damage"
+              c:identifier="cogl_onscreen_swap_buffers_with_damage"
+              version="1.16"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="237">Swaps the current back buffer being rendered too, to the front for
+display and provides information to any system compositor about
+what regions of the buffer have changed (damage) with respect to
+the last swapped buffer.
+
+This function has the same semantics as
+cogl_framebuffer_swap_buffers() except that it additionally allows
+applications to pass a list of damaged rectangles which may be
+passed on to a compositor so that it can minimize how much of the
+screen is redrawn in response to this applications newly swapped
+front buffer.
+
+For example if your application is only animating a small object in
+the corner of the screen and everything else is remaining static
+then it can help the compositor to know that only the bottom right
+corner of your newly swapped buffer has really changed with respect
+to your previously swapped front buffer.
+
+If @n_rectangles is 0 then the whole buffer will implicitly be
+reported as damaged as if cogl_onscreen_swap_buffers() had been
+called.
+
+This function also implicitly discards the contents of the color,
+depth and stencil buffers as if cogl_framebuffer_discard_buffers()
+were used. The significance of the discard is that you should not
+expect to be able to start a new frame that incrementally builds on
+the contents of the previous frame. If you want to perform
+incremental updates to older back buffers then please refer to the
+cogl_onscreen_get_buffer_age() api.
+
+Whenever possible it is recommended that applications use this
+function instead of cogl_onscreen_swap_buffers() to improve
+performance when running under a compositor.
+
+&lt;note&gt;It is highly recommended to use this API in conjunction with
+the cogl_onscreen_get_buffer_age() api so that your application can
+perform incremental rendering based on old back buffers.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="286"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="239">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="240">An array of integer 4-tuples representing damaged
+             rectangles as (x, y, width, height) tuples.</doc>
+            <type name="gint" c:type="const int*"/>
+          </parameter>
+          <parameter name="n_rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="242">The number of 4-tuples to be read from @rectangles</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="swap_region"
+              c:identifier="cogl_onscreen_swap_region"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="300">Swaps a region of the back buffer being rendered too, to the front for
+display.  @rectangles represents the region as array of @n_rectangles each
+defined by 4 sequential (x, y, width, height) integers.
+
+This function also implicitly discards the contents of the color, depth and
+stencil buffers as if cogl_framebuffer_discard_buffers() were used. The
+significance of the discard is that you should not expect to be able to
+start a new frame that incrementally builds on the contents of the previous
+frame.</doc>
+        <source-position filename="../cogl/cogl/cogl-onscreen.h" line="321"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="onscreen" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="302">A #CoglOnscreen framebuffer</doc>
+            <type name="Onscreen" c:type="CoglOnscreen*"/>
+          </instance-parameter>
+          <parameter name="rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="303">An array of integer 4-tuples representing rectangles as
+             (x, y, width, height) tuples.</doc>
+            <type name="gint" c:type="const int*"/>
+          </parameter>
+          <parameter name="n_rectangles" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-onscreen.h"
+                 line="305">The number of 4-tuples to be read from @rectangles</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="info" transfer-ownership="none">
+            <type name="FrameInfo" c:type="CoglFrameInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <callback name="OnscreenDirtyCallback"
+              c:type="CoglOnscreenDirtyCallback"
+              version="1.16"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="656">Is a callback that can be registered via
+cogl_onscreen_add_dirty_callback() to be called when the windowing
+system determines that a region of the onscreen window has been
+lost and the application should redraw it.</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="672"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="onscreen" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="658">The onscreen that the frame is associated with</doc>
+          <type name="Onscreen" c:type="CoglOnscreen*"/>
+        </parameter>
+        <parameter name="info" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="659">A #CoglOnscreenDirtyInfo struct containing the details of the
+  dirty area</doc>
+          <type name="OnscreenDirtyInfo"
+                c:type="const CoglOnscreenDirtyInfo*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="2">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="661">The user pointer passed to
+            cogl_onscreen_add_frame_callback()</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="OnscreenDirtyClosure"
+            c:type="CoglOnscreenDirtyClosure"
+            version="1.16"
+            stability="Unstable"
+            glib:type-name="CoglOnscreenDirtyClosure"
+            glib:get-type="cogl_onscreen_dirty_closure_get_gtype"
+            c:symbol-prefix="onscreen_dirty_closure">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="676">An opaque type that tracks a #CoglOnscreenDirtyCallback and associated
+user data. A #CoglOnscreenDirtyClosure pointer will be returned from
+cogl_onscreen_add_dirty_callback() and it allows you to remove a
+callback later using cogl_onscreen_remove_dirty_callback().</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="687"/>
+    </record>
+    <record name="OnscreenDirtyInfo"
+            c:type="CoglOnscreenDirtyInfo"
+            version="1.16"
+            stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="634">A structure passed to callbacks registered using
+cogl_onscreen_add_dirty_callback(). The members describe a
+rectangle within the onscreen buffer that should be redrawn.</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="654"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="636">Left edge of the dirty rectangle</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="637">Top edge of the dirty rectangle, measured from the top of the window</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="width" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="638">Width of the dirty rectangle</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="height" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="639">Height of the dirty rectangle</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+    </record>
+    <callback name="OnscreenResizeCallback"
+              c:type="CoglOnscreenResizeCallback"
+              version="2.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="531">Is a callback type used with the
+cogl_onscreen_add_resize_callback() allowing applications to be
+notified whenever an @onscreen framebuffer is resized.
+
+&lt;note&gt;Cogl automatically updates the viewport of an @onscreen
+framebuffer that is resized so this callback is also an indication
+that the viewport has been modified too&lt;/note&gt;
+
+&lt;note&gt;A resize callback will only ever be called while dispatching
+Cogl events from the system mainloop; so for example during
+cogl_poll_renderer_dispatch(). This is so that callbacks shouldn't
+occur while an application might have arbitrary locks held for
+example.&lt;/note&gt;</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="555"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="onscreen" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="533">A #CoglOnscreen framebuffer that was resized</doc>
+          <type name="Onscreen" c:type="CoglOnscreen*"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="534">The new width of @onscreen</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="535">The new height of @onscreen</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="3">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="536">The private passed to
+            cogl_onscreen_add_resize_callback()</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="OnscreenResizeClosure"
+            c:type="CoglOnscreenResizeClosure"
+            version="2.0"
+            stability="Unstable"
+            glib:type-name="CoglOnscreenResizeClosure"
+            glib:get-type="cogl_onscreen_resize_closure_get_gtype"
+            c:symbol-prefix="onscreen_resize_closure">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="560">An opaque type that tracks a #CoglOnscreenResizeCallback and
+associated user data. A #CoglOnscreenResizeClosure pointer will be
+returned from cogl_onscreen_add_resize_callback() and it allows you
+to remove a callback later using
+cogl_onscreen_remove_resize_callback().</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="572"/>
+    </record>
+    <function-macro name="PIPELINE"
+                    c:identifier="COGL_PIPELINE"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-pipeline.h" line="65"/>
+      <parameters>
+        <parameter name="OBJECT">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PIXEL_FORMAT_CAN_HAVE_PREMULT"
+                    c:identifier="COGL_PIXEL_FORMAT_CAN_HAVE_PREMULT"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="313"/>
+      <parameters>
+        <parameter name="format">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="PIXEL_FORMAT_MAX_PLANES"
+              value="4"
+              c:type="COGL_PIXEL_FORMAT_MAX_PLANES">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="255">The maximum number of planes of a pixel format (see also
+cogl_pixel_format_get_planes()).</doc>
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="261"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PREMULT_BIT" value="128" c:type="COGL_PREMULT_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="67"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="PRIMITIVE_TEXTURE"
+                    c:identifier="COGL_PRIMITIVE_TEXTURE"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/deprecated/cogl-type-casts.h"
+                       line="52"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PRIVATE"
+                    c:identifier="COGL_PRIVATE"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="61"/>
+      <parameters>
+        <parameter name="x">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Pipeline"
+           c:symbol-prefix="pipeline"
+           c:type="CoglPipeline"
+           parent="Object"
+           glib:type-name="CoglPipeline"
+           glib:get-type="cogl_pipeline_get_gtype"
+           glib:fundamental="1">
+      <constructor name="new"
+                   c:identifier="cogl_pipeline_new"
+                   version="2.0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline.h"
+             line="75">Allocates and initializes a default simple pipeline that will color
+a primitive white.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline.h" line="88"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="82">a pointer to a new #CoglPipeline</doc>
+          <type name="Pipeline" c:type="CoglPipeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="context" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="77">a #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_layer_snippet"
+              c:identifier="cogl_pipeline_add_layer_snippet"
+              version="1.10"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="551">Adds a shader snippet that will hook on to the given layer of the
+pipeline. The exact part of the pipeline that the snippet wraps
+around depends on the hook that is given to
+cogl_snippet_new(). Note that some hooks can't be used with a layer
+and need to be added with cogl_pipeline_add_snippet() instead.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="567"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="553">A #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="554">The layer to hook the snippet to</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="snippet" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="555">A #CoglSnippet</doc>
+            <type c:type="CoglSnippet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_snippet"
+              c:identifier="cogl_pipeline_add_snippet"
+              version="1.10"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="733">Adds a shader snippet to @pipeline. The snippet will wrap around or
+replace some part of the pipeline as defined by the hook point in
+@snippet. Note that some hook points are specific to a layer and
+must be added with cogl_pipeline_add_layer_snippet() instead.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="747"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="735">A #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="snippet" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="736">The #CoglSnippet to add to the vertex processing hook</doc>
+            <type c:type="CoglSnippet*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy"
+              c:identifier="cogl_pipeline_copy"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline.h"
+             line="90">Creates a new pipeline with the configuration copied from the
+source pipeline.
+
+We would strongly advise developers to always aim to use
+cogl_pipeline_copy() instead of cogl_pipeline_new() whenever there will
+be any similarity between two pipelines. Copying a pipeline helps Cogl
+keep track of a pipelines ancestry which we may use to help minimize GPU
+state changes.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline.h" line="109"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="103">a pointer to the newly allocated #CoglPipeline</doc>
+          <type name="Pipeline" c:type="CoglPipeline*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="92">a #CoglPipeline object to copy</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="foreach_layer"
+              c:identifier="cogl_pipeline_foreach_layer"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline.h"
+             line="142">Iterates all the layer indices of the given @pipeline.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline.h" line="156"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="144">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="145">A #CoglPipelineLayerCallback to be
+           called for each layer index</doc>
+            <type name="PipelineLayerCallback"
+                  c:type="CoglPipelineLayerCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="147">Private data that will be passed to the
+            callback</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha_test_function"
+              c:identifier="cogl_pipeline_get_alpha_test_function"
+              version="2.0"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="191"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="185">The alpha test function of @pipeline.</doc>
+          <type name="PipelineAlphaFunc" c:type="CoglPipelineAlphaFunc"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="183">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_alpha_test_reference"
+              c:identifier="cogl_pipeline_get_alpha_test_reference"
+              version="2.0"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="203"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="197">The alpha test reference value of @pipeline.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="195">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_color"
+              c:identifier="cogl_pipeline_get_color"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="109">Retrieves the current pipeline color.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="120"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="111">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="112">The location to store the color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cull_face_mode"
+              c:identifier="cogl_pipeline_get_cull_face_mode"
+              version="2.0">
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="541"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="534">the cull face mode that was previously set with
+cogl_pipeline_set_cull_face_mode().
+
+Status: Unstable</doc>
+          <type name="PipelineCullFaceMode" c:type="CoglPipelineCullFaceMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_depth_state"
+              c:identifier="cogl_pipeline_get_depth_state"
+              version="2.0"
+              introspectable="0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="472">Retrieves the current depth state configuration for the given
+@pipeline as previously set using cogl_pipeline_set_depth_state().</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="484"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="474">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="state_out"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="475">A destination #CoglDepthState struct</doc>
+            <type c:type="CoglDepthState*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_front_face_winding"
+              c:identifier="cogl_pipeline_get_front_face_winding"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="563">The order of the vertices within a primitive specifies whether it
+is considered to be front or back facing. This function specifies
+which order is considered to be the front
+faces. %COGL_WINDING_COUNTER_CLOCKWISE sets the front faces to
+primitives with vertices in a counter-clockwise order and
+%COGL_WINDING_CLOCKWISE sets them to be clockwise. The default is
+%COGL_WINDING_COUNTER_CLOCKWISE.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="581"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="575">The @pipeline front face winding
+
+Status: Unstable</doc>
+          <type name="Winding" c:type="CoglWinding"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="565">a #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_mag_filter"
+              c:identifier="cogl_pipeline_get_layer_mag_filter"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="400">Retrieves the currently set magnification #CoglPipelineFilter set on
+the specified layer. The magnification filter determines how the
+layer should be sampled when up-scaled.
+
+The default filter is %COGL_PIPELINE_FILTER_LINEAR but this can be
+changed using cogl_pipeline_set_layer_filters().</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="418"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="412">The magnification #CoglPipelineFilter for the
+              specified layer.</doc>
+          <type name="PipelineFilter" c:type="CoglPipelineFilter"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="402">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="403">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_min_filter"
+              c:identifier="cogl_pipeline_get_layer_min_filter"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="379">Retrieves the currently set minification #CoglPipelineFilter set on
+the specified layer. The miniifcation filter determines how the
+layer should be sampled when down-scaled.
+
+The default filter is %COGL_PIPELINE_FILTER_LINEAR but this can be
+changed using cogl_pipeline_set_layer_filters().</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="397"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="391">The minification #CoglPipelineFilter for the
+              specified layer.</doc>
+          <type name="PipelineFilter" c:type="CoglPipelineFilter"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="381">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="382">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_point_sprite_coords_enabled"
+              c:identifier="cogl_pipeline_get_layer_point_sprite_coords_enabled"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="445">Gets whether point sprite coordinate generation is enabled for this
+texture layer.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="460"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="453">whether the texture coordinates will be replaced with
+point sprite coordinates.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="447">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="448">the layer number to check.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_texture"
+              c:identifier="cogl_pipeline_get_layer_texture"
+              version="1.10"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="190"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="184">the texture that was set for the
+  given layer of the pipeline or %NULL if no texture was set.</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="181">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="182">the index of the layer</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_wrap_mode_s"
+              c:identifier="cogl_pipeline_get_layer_wrap_mode_s"
+              version="1.6"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="463">Returns the wrap mode for the 's' coordinate of texture lookups on this
+layer.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="478"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="471">the wrap mode for the 's' coordinate of texture lookups on
+this layer.</doc>
+          <type name="PipelineWrapMode" c:type="CoglPipelineWrapMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="465">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="466">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_wrap_mode_t"
+              c:identifier="cogl_pipeline_get_layer_wrap_mode_t"
+              version="1.6"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="497">Returns the wrap mode for the 't' coordinate of texture lookups on this
+layer.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="512"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="505">the wrap mode for the 't' coordinate of texture lookups on
+this layer.</doc>
+          <type name="PipelineWrapMode" c:type="CoglPipelineWrapMode"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="499">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="500">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_layers"
+              c:identifier="cogl_pipeline_get_n_layers"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="341">Retrieves the number of layers defined for the given @pipeline</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="353"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="347">the number of layers</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="343">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_per_vertex_point_size"
+              c:identifier="cogl_pipeline_get_per_vertex_point_size"
+              version="2.0"
+              stability="Unstable">
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="384"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="379">%TRUE if the pipeline has per-vertex point size
+  enabled or %FALSE otherwise. The per-vertex point size can be
+  enabled with cogl_pipeline_set_per_vertex_point_size().</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="375">a #CoglPipeline pointer</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_point_size"
+              c:identifier="cogl_pipeline_get_point_size"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="332">Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is
+used with the vertex buffer API.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="345"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="339">the point size of the @pipeline.</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="334">a #CoglPipeline pointer</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_uniform_location"
+              c:identifier="cogl_pipeline_get_uniform_location"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline.h"
+             line="160">This is used to get an integer representing the uniform with the
+name @uniform_name. The integer can be passed to functions such as
+cogl_pipeline_set_uniform_1f() to set the value of a uniform.
+
+This function will always return a valid integer. Ie, unlike
+OpenGL, it does not return -1 if the uniform is not available in
+this pipeline so it can not be used to test whether uniforms are
+present. It is not necessary to set the program on the pipeline
+before calling this function.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline.h" line="181"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="175">A integer representing the location of the given uniform.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="162">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline.h"
+                 line="163">The name of a uniform</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_user_program"
+              c:identifier="cogl_pipeline_get_user_program"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="386">Queries what user program has been associated with the given
+@pipeline using cogl_pipeline_set_user_program().</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="399"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="393">The current user program or %NULL.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="388">a #CoglPipeline object.</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_layer"
+              c:identifier="cogl_pipeline_remove_layer"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="193">This function removes a layer from your pipeline</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="203"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="195">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="196">Specifies the layer you want to remove</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_test_function"
+              c:identifier="cogl_pipeline_set_alpha_test_function"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="158">Before a primitive is blended with the framebuffer, it goes through an
+alpha test stage which lets you discard fragments based on the current
+alpha value. This function lets you change the function used to evaluate
+the alpha channel, and thus determine which fragments are discarded
+and which continue on to the blending stage.
+
+The default is %COGL_PIPELINE_ALPHA_FUNC_ALWAYS</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="160">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="alpha_func" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="161">A @CoglPipelineAlphaFunc constant</doc>
+            <type name="PipelineAlphaFunc" c:type="CoglPipelineAlphaFunc"/>
+          </parameter>
+          <parameter name="alpha_reference" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="162">A reference point that the chosen alpha function uses
+  to compare incoming fragments to.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend"
+              c:identifier="cogl_pipeline_set_blend"
+              version="2.0"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="205">If not already familiar; please refer &lt;link 
linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt;
+for an overview of what blend strings are, and their syntax.
+
+Blending occurs after the alpha test function, and combines fragments with
+the framebuffer.
+
+Currently the only blend function Cogl exposes is ADD(). So any valid
+blend statements will be of the form:
+
+|[
+  &amp;lt;channel-mask&amp;gt;=ADD(SRC_COLOR*(&amp;lt;factor&amp;gt;), DST_COLOR*(&amp;lt;factor&amp;gt;))
+]|
+
+This is the list of source-names usable as blend factors:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;&lt;para&gt;SRC_COLOR: The color of the incoming fragment&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;DST_COLOR: The color of the framebuffer&lt;/para&gt;&lt;/listitem&gt;
+  &lt;listitem&gt;&lt;para&gt;CONSTANT: The constant set via 
cogl_pipeline_set_blend_constant()&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+The source names can be used according to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source and factor syntax&lt;/link&gt;,
+so for example "(1-SRC_COLOR[A])" would be a valid factor, as would
+"(CONSTANT[RGB])"
+
+These can also be used as factors:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;0: (0, 0, 0, 0)&lt;/listitem&gt;
+  &lt;listitem&gt;1: (1, 1, 1, 1)&lt;/listitem&gt;
+  &lt;listitem&gt;SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = 
MIN(SRC_COLOR[A],1-DST_COLOR[A])&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+&lt;note&gt;Remember; all color components are normalized to the range [0, 1]
+before computing the result of blending.&lt;/note&gt;
+
+&lt;example id="cogl-Blend-Strings-blend-unpremul"&gt;
+  &lt;title&gt;Blend Strings/1&lt;/title&gt;
+  &lt;para&gt;Blend a non-premultiplied source over a destination with
+  premultiplied alpha:&lt;/para&gt;
+  &lt;programlisting&gt;
+"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))"
+"A   = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+  &lt;/programlisting&gt;
+&lt;/example&gt;
+
+&lt;example id="cogl-Blend-Strings-blend-premul"&gt;
+  &lt;title&gt;Blend Strings/2&lt;/title&gt;
+  &lt;para&gt;Blend a premultiplied source over a destination with
+  premultiplied alpha&lt;/para&gt;
+  &lt;programlisting&gt;
+"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+  &lt;/programlisting&gt;
+&lt;/example&gt;
+
+The default blend string is:
+|[
+   RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))
+]|
+
+That gives normal alpha-blending when the calculated color for the pipeline
+is in premultiplied form.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="288"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="279">%TRUE if the blend string was successfully parsed, and the
+  described blending is supported by the underlying driver/hardware. If
+  there was an error, %FALSE is returned and @error is set accordingly (if
+  present).</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="207">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="208">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt;
+  describing the desired blend function.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend_constant"
+              c:identifier="cogl_pipeline_set_blend_constant"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="292">When blending is setup to reference a CONSTANT blend factor then
+blending will depend on the constant set with this function.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="304"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="294">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="constant_color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="295">The constant color you want</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="cogl_pipeline_set_color"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="44">Sets the basic color of the pipeline, used when no lighting is enabled.
+
+Note that if you don't add any layers to the pipeline then the color
+will be blended unmodified with the destination; the default blend
+expects premultiplied colors: for example, use (0.5, 0.0, 0.0, 0.5) for
+semi-transparent red. See cogl_color_premultiply().
+
+The default value is (1.0, 1.0, 1.0, 1.0)</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="46">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="47">The components of the color</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color4f"
+              c:identifier="cogl_pipeline_set_color4f"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="87">Sets the basic color of the pipeline, used when no lighting is enabled.
+
+The default value is (1.0, 1.0, 1.0, 1.0)</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="89">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="90">The red component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="91">The green component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="92">The blue component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="93">The alpha component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color4ub"
+              c:identifier="cogl_pipeline_set_color4ub"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="65">Sets the basic color of the pipeline, used when no lighting is enabled.
+
+The default value is (0xff, 0xff, 0xff, 0xff)</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="81"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="67">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="68">The red component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="69">The green component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="70">The blue component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="71">The alpha component</doc>
+            <type name="guint8" c:type="uint8_t"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cull_face_mode"
+              c:identifier="cogl_pipeline_set_cull_face_mode"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="506">Sets which faces will be culled when drawing. Face culling can be
+used to increase efficiency by avoiding drawing faces that would
+get overridden. For example, if a model has gaps so that it is
+impossible to see the inside then faces which are facing away from
+the screen will never be seen so there is no point in drawing
+them. This can be achieved by setting the cull face mode to
+%COGL_PIPELINE_CULL_FACE_MODE_BACK.
+
+Face culling relies on the primitives being drawn with a specific
+order to represent which faces are facing inside and outside the
+model. This order can be specified by calling
+cogl_pipeline_set_front_face_winding().
+
+Status: Unstable</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="528"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="508">A #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="cull_face_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="509">The new mode to set</doc>
+            <type name="PipelineCullFaceMode"
+                  c:type="CoglPipelineCullFaceMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_state"
+              c:identifier="cogl_pipeline_set_depth_state"
+              version="2.0"
+              introspectable="0"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="447">This commits all the depth state configured in @state struct to the
+given @pipeline. The configuration values are copied into the
+pipeline so there is no requirement to keep the #CoglDepthState
+struct around if you don't need it any more.
+
+Note: Since some platforms do not support the depth range feature
+it is possible for this function to fail and report an @error.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="468"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="461">TRUE if the GPU supports all the given @state else %FALSE
+         and returns an @error.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="449">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="450">A #CoglDepthState struct</doc>
+            <type c:type="const CoglDepthState*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_front_face_winding"
+              c:identifier="cogl_pipeline_set_front_face_winding"
+              version="2.0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="543">The order of the vertices within a primitive specifies whether it
+is considered to be front or back facing. This function specifies
+which order is considered to be the front
+faces. %COGL_WINDING_COUNTER_CLOCKWISE sets the front faces to
+primitives with vertices in a counter-clockwise order and
+%COGL_WINDING_CLOCKWISE sets them to be clockwise. The default is
+%COGL_WINDING_COUNTER_CLOCKWISE.
+
+Status: Unstable</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="560"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="545">a #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="front_winding" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="546">the winding order</doc>
+            <type name="Winding" c:type="CoglWinding"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine"
+              c:identifier="cogl_pipeline_set_layer_combine"
+              version="2.0"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="206">If not already familiar; you can refer
+&lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt; for an overview of what blend
+strings are and there syntax.
+
+These are all the functions available for texture combining:
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;REPLACE(arg0) = arg0&lt;/listitem&gt;
+  &lt;listitem&gt;MODULATE(arg0, arg1) = arg0 x arg1&lt;/listitem&gt;
+  &lt;listitem&gt;ADD(arg0, arg1) = arg0 + arg1&lt;/listitem&gt;
+  &lt;listitem&gt;ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5&lt;/listitem&gt;
+  &lt;listitem&gt;INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)&lt;/listitem&gt;
+  &lt;listitem&gt;SUBTRACT(arg0, arg1) = arg0 - arg1&lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;programlisting&gt;
+ DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+                             (arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+                             (arg0[B] - 0.5)) * (arg1[B] - 0.5))
+    &lt;/programlisting&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;programlisting&gt;
+ DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+                              (arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+                              (arg0[B] - 0.5)) * (arg1[B] - 0.5))
+    &lt;/programlisting&gt;
+  &lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+
+Refer to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source syntax&lt;/link&gt; for
+describing the arguments. The valid source names for texture combining
+are:
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;TEXTURE&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the current texture layer&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;TEXTURE_0, TEXTURE_1, etc&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the specified texture layer&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;CONSTANT&lt;/term&gt;
+    &lt;listitem&gt;Use the color from the constant given with
+    cogl_pipeline_set_layer_combine_constant()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;PRIMARY&lt;/term&gt;
+    &lt;listitem&gt;Use the color of the pipeline as set with
+    cogl_pipeline_set_color()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt;PREVIOUS&lt;/term&gt;
+    &lt;listitem&gt;Either use the texture color from the previous layer, or
+    if this is layer 0, use the color of the pipeline as set with
+    cogl_pipeline_set_color()&lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+
+&lt;refsect2 id="cogl-Layer-Combine-Examples"&gt;
+  &lt;title&gt;Layer Combine Examples&lt;/title&gt;
+  &lt;para&gt;This is effectively what the default blending is:&lt;/para&gt;
+  &lt;informalexample&gt;&lt;programlisting&gt;
+  RGBA = MODULATE (PREVIOUS, TEXTURE)
+  &lt;/programlisting&gt;&lt;/informalexample&gt;
+  &lt;para&gt;This could be used to cross-fade between two images, using
+  the alpha component of a constant as the interpolator. The constant
+  color is given by calling
+  cogl_pipeline_set_layer_combine_constant().&lt;/para&gt;
+  &lt;informalexample&gt;&lt;programlisting&gt;
+  RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A])
+  &lt;/programlisting&gt;&lt;/informalexample&gt;
+&lt;/refsect2&gt;
+
+&lt;note&gt;You can't give a multiplication factor for arguments as you can
+with blending.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="301"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="293">%TRUE if the blend string was successfully parsed, and the
+  described texture combining is supported by the underlying driver and
+  or hardware. On failure, %FALSE is returned and @error is set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="208">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="209">Specifies the layer you want define a combine function for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="210">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt;
+   describing the desired texture combine function.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine_constant"
+              c:identifier="cogl_pipeline_set_layer_combine_constant"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="306">When you are using the 'CONSTANT' color source in a layer combine
+description then you can use this function to define its value.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="320"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="308">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="309">Specifies the layer you want to specify a constant used
+              for texture combining</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="constant" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="311">The constant color you want</doc>
+            <type name="Color" c:type="const CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_filters"
+              c:identifier="cogl_pipeline_set_layer_filters"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="355">Changes the decimation and interpolation filters used when a texture is
+drawn at other scales than 100%.
+
+&lt;note&gt;It is an error to pass anything other than
+%COGL_PIPELINE_FILTER_NEAREST or %COGL_PIPELINE_FILTER_LINEAR as
+magnification filters since magnification doesn't ever need to
+reference values stored in the mipmap chain.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="374"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="357">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="358">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="min_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="359">the filter used when scaling a texture down.</doc>
+            <type name="PipelineFilter" c:type="CoglPipelineFilter"/>
+          </parameter>
+          <parameter name="mag_filter" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="360">the filter used when magnifying a texture.</doc>
+            <type name="PipelineFilter" c:type="CoglPipelineFilter"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_matrix"
+              c:identifier="cogl_pipeline_set_layer_matrix"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="324">This function lets you set a matrix that can be used to e.g. translate
+and rotate a single layer of a pipeline used to fill your geometry.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="337"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="326">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="327">the index for the layer inside @pipeline</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="328">the transformation matrix for the layer</doc>
+            <type name="Matrix" c:type="const CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_max_mipmap_level"
+              c:identifier="cogl_pipeline_set_layer_max_mipmap_level">
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="572"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="max_level" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_null_texture"
+              c:identifier="cogl_pipeline_set_layer_null_texture"
+              version="1.10"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="158">Sets the texture for this layer to be the default texture for the
+given type. The default texture is a 1x1 pixel white texture.
+
+This function is mostly useful if you want to create a base
+pipeline that you want to create multiple copies from using
+cogl_pipeline_copy(). In that case this function can be used to
+specify the texture type so that any pipeline copies can share the
+internal texture type state for efficiency.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="176"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="160">A #CoglPipeline</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="161">The layer number to modify</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_point_sprite_coords_enabled"
+              c:identifier="cogl_pipeline_set_layer_point_sprite_coords_enabled"
+              version="2.0"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="421">When rendering points, if @enable is %TRUE then the texture
+coordinates for this layer will be replaced with coordinates that
+vary from 0.0 to 1.0 across the primitive. The top left of the
+point will have the coordinates 0.0,0.0 and the bottom right will
+have 1.0,1.0. If @enable is %FALSE then the coordinates will be
+fixed for the entire point.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="440"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+               line="435">%TRUE if the function succeeds, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="423">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="424">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="425">whether to enable point sprite coord generation.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_texture"
+              c:identifier="cogl_pipeline_set_layer_texture">
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="154"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="texture" transfer-ownership="none">
+            <type name="Texture" c:type="CoglTexture*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode"
+              c:identifier="cogl_pipeline_set_layer_wrap_mode"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="532">Sets the wrap mode for all three coordinates of texture lookups on
+this layer. This is equivalent to calling
+cogl_pipeline_set_layer_wrap_mode_s() and
+cogl_pipeline_set_layer_wrap_mode_t() separately.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="547"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="534">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="535">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="536">the new wrap mode</doc>
+            <type name="PipelineWrapMode" c:type="CoglPipelineWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode_s"
+              c:identifier="cogl_pipeline_set_layer_wrap_mode_s"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="481">Sets the wrap mode for the 's' coordinate of texture lookups on this layer.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="493"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="483">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="484">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="485">the new wrap mode</doc>
+            <type name="PipelineWrapMode" c:type="CoglPipelineWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode_t"
+              c:identifier="cogl_pipeline_set_layer_wrap_mode_t"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="516">Sets the wrap mode for the 't' coordinate of texture lookups on this layer.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                         line="528"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="518">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="519">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                 line="520">the new wrap mode</doc>
+            <type name="PipelineWrapMode" c:type="CoglPipelineWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_per_vertex_point_size"
+              c:identifier="cogl_pipeline_set_per_vertex_point_size"
+              version="2.0"
+              stability="Unstable"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="347">Sets whether to use a per-vertex point size or to use the value set
+by cogl_pipeline_set_point_size(). If per-vertex point size is
+enabled then the point size can be set for an individual point
+either by drawing with a #CoglAttribute with the name
+‘cogl_point_size_in’ or by writing to the GLSL builtin
+‘cogl_point_size_out’ from a vertex shader snippet.
+
+If per-vertex point size is enabled and this attribute is not used
+and cogl_point_size_out is not written to then the results are
+undefined.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="369"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline-state.h"
+               line="366">%TRUE if the change succeeded or %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="349">a #CoglPipeline pointer</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="350">whether to enable per-vertex point size</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_point_size"
+              c:identifier="cogl_pipeline_set_point_size"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="307">Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is
+used with the attribute buffer API. Note that typically the GPU
+will only support a limited minimum and maximum range of point
+sizes. If the chosen point size is outside that range then the
+nearest value within that range will be used instead. The size of a
+point is in screen space so it will be the same regardless of any
+transformations.
+
+If the point size is set to 0.0 then drawing points with the
+pipeline will have undefined results. This is the default value so
+if an application wants to draw points it must make sure to use a
+pipeline that has an explicit point size set on it.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="329"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="309">a #CoglPipeline pointer</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="point_size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="310">the new point size.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_1f"
+              c:identifier="cogl_pipeline_set_uniform_1f"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="583">Sets a new value for the uniform at @uniform_location. If this
+pipeline has a user program attached and is later used as a source
+for drawing, the given value will be assigned to the uniform which
+can be accessed from the shader's source. The value for
+@uniform_location should be retrieved from the string name of the
+uniform by calling cogl_pipeline_get_uniform_location().
+
+This function should be used to set uniforms that are of type
+float. It can also be used to set a single member of a float array
+uniform.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="604"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="585">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_location" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="586">The uniform's location identifier</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="587">The new value for the uniform</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_1i"
+              c:identifier="cogl_pipeline_set_uniform_1i"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="608">Sets a new value for the uniform at @uniform_location. If this
+pipeline has a user program attached and is later used as a source
+for drawing, the given value will be assigned to the uniform which
+can be accessed from the shader's source. The value for
+@uniform_location should be retrieved from the string name of the
+uniform by calling cogl_pipeline_get_uniform_location().
+
+This function should be used to set uniforms that are of type
+int. It can also be used to set a single member of a int array
+uniform or a sampler uniform.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="629"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="610">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_location" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="611">The uniform's location identifier</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="612">The new value for the uniform</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_float"
+              c:identifier="cogl_pipeline_set_uniform_float"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="633">Sets new values for the uniform at @uniform_location. If this
+pipeline has a user program attached and is later used as a source
+for drawing, the given values will be assigned to the uniform which
+can be accessed from the shader's source. The value for
+@uniform_location should be retrieved from the string name of the
+uniform by calling cogl_pipeline_get_uniform_location().
+
+This function can be used to set any floating point type uniform,
+including float arrays and float vectors. For example, to set a
+single vec4 uniform you would use 4 for @n_components and 1 for
+@count. To set an array of 8 float values, you could use 1 for
+@n_components and 8 for @count.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="658"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="635">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_location" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="636">The uniform's location identifier</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="n_components" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="637">The number of components in the corresponding uniform's type</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="count" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="638">The number of values to set</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="639">Pointer to the new values to set</doc>
+            <type name="gfloat" c:type="const float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_int"
+              c:identifier="cogl_pipeline_set_uniform_int"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="664">Sets new values for the uniform at @uniform_location. If this
+pipeline has a user program attached and is later used as a source
+for drawing, the given values will be assigned to the uniform which
+can be accessed from the shader's source. The value for
+@uniform_location should be retrieved from the string name of the
+uniform by calling cogl_pipeline_get_uniform_location().
+
+This function can be used to set any integer type uniform,
+including int arrays and int vectors. For example, to set a single
+ivec4 uniform you would use 4 for @n_components and 1 for
+@count. To set an array of 8 int values, you could use 1 for
+@n_components and 8 for @count.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="689"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="666">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_location" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="667">The uniform's location identifier</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="n_components" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="668">The number of components in the corresponding uniform's type</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="count" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="669">The number of values to set</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="670">Pointer to the new values to set</doc>
+            <type name="gint" c:type="const int*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_matrix"
+              c:identifier="cogl_pipeline_set_uniform_matrix"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="695">Sets new values for the uniform at @uniform_location. If this
+pipeline has a user program attached and is later used as a source
+for drawing, the given values will be assigned to the uniform which
+can be accessed from the shader's source. The value for
+@uniform_location should be retrieved from the string name of the
+uniform by calling cogl_pipeline_get_uniform_location().
+
+This function can be used to set any matrix type uniform, including
+matrix arrays. For example, to set a single mat4 uniform you would
+use 4 for @dimensions and 1 for @count. To set an array of 8
+mat3 values, you could use 3 for @dimensions and 8 for @count.
+
+If @transpose is %FALSE then the matrix is expected to be in
+column-major order or if it is %TRUE then the matrix is in
+row-major order. You can pass a #CoglMatrix by calling by passing
+the result of cogl_matrix_get_array() in @value and setting
+@transpose to %FALSE.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="726"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="697">A #CoglPipeline object</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="uniform_location" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="698">The uniform's location identifier</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dimensions" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="699">The size of the matrix</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="count" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="700">The number of values to set</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="transpose" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="701">Whether to transpose the matrix</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="702">Pointer to the new values to set</doc>
+            <type name="gfloat" c:type="const float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_program"
+              c:identifier="cogl_pipeline_set_user_program"
+              version="2.0"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="401">Associates a linked CoglProgram with the given pipeline so that the
+program can take full control of vertex and/or fragment processing.
+
+This is an example of how it can be used to associate an ARBfp
+program with a #CoglPipeline:
+|[
+CoglHandle shader;
+CoglHandle program;
+CoglPipeline *pipeline;
+
+shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT);
+cogl_shader_source (shader,
+                    "!!ARBfp1.0\n"
+                    "MOV result.color,fragment.color;\n"
+                    "END\n");
+
+program = cogl_create_program ();
+cogl_program_attach_shader (program, shader);
+cogl_program_link (program);
+
+pipeline = cogl_pipeline_new ();
+cogl_pipeline_set_user_program (pipeline, program);
+
+cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff);
+cogl_rectangle (0, 0, 100, 100);
+]|
+
+It is possibly worth keeping in mind that this API is not part of
+the long term design for how we want to expose shaders to Cogl
+developers (We are planning on deprecating the cogl_program and
+cogl_shader APIs in favour of a "snippet" framework) but in the
+meantime we hope this will handle most practical GLSL and ARBfp
+requirements.</doc>
+        <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                         line="444"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="pipeline" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="403">a #CoglPipeline object.</doc>
+            <type name="Pipeline" c:type="CoglPipeline*"/>
+          </instance-parameter>
+          <parameter name="program" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-pipeline-state.h"
+                 line="404">A #CoglHandle to a linked CoglProgram</doc>
+            <type name="Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <enumeration name="PipelineAlphaFunc" c:type="CoglPipelineAlphaFunc">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline-state.h"
+           line="123">Alpha testing happens before blending primitives with the framebuffer and
+gives an opportunity to discard fragments based on a comparison with the
+incoming alpha value and a reference alpha value. The #CoglPipelineAlphaFunc
+determines how the comparison is done.</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                       line="155"/>
+      <member name="never"
+              value="512"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_NEVER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="125">Never let the fragment through.</doc>
+      </member>
+      <member name="less"
+              value="513"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_LESS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="126">Let the fragment through if the incoming
+  alpha value is less than the reference alpha value</doc>
+      </member>
+      <member name="equal"
+              value="514"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_EQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="128">Let the fragment through if the incoming
+  alpha value equals the reference alpha value</doc>
+      </member>
+      <member name="lequal"
+              value="515"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_LEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="130">Let the fragment through if the incoming
+  alpha value is less than or equal to the reference alpha value</doc>
+      </member>
+      <member name="greater"
+              value="516"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_GREATER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="132">Let the fragment through if the incoming
+  alpha value is greater than the reference alpha value</doc>
+      </member>
+      <member name="notequal"
+              value="517"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_NOTEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="134">Let the fragment through if the incoming
+  alpha value does not equal the reference alpha value</doc>
+      </member>
+      <member name="gequal"
+              value="518"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_GEQUAL">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="136">Let the fragment through if the incoming
+  alpha value is greater than or equal to the reference alpha value.</doc>
+      </member>
+      <member name="always"
+              value="519"
+              c:identifier="COGL_PIPELINE_ALPHA_FUNC_ALWAYS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="138">Always let the fragment through.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="PipelineCullFaceMode" c:type="CoglPipelineCullFaceMode">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline-state.h"
+           line="487">Specifies which faces should be culled. This can be set on a
+pipeline using cogl_pipeline_set_cull_face_mode().</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline-state.h"
+                       line="504"/>
+      <member name="none"
+              value="0"
+              c:identifier="COGL_PIPELINE_CULL_FACE_MODE_NONE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="489">Neither face will be
+ culled. This is the default.</doc>
+      </member>
+      <member name="front"
+              value="1"
+              c:identifier="COGL_PIPELINE_CULL_FACE_MODE_FRONT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="491">Front faces will be culled.</doc>
+      </member>
+      <member name="back"
+              value="2"
+              c:identifier="COGL_PIPELINE_CULL_FACE_MODE_BACK">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="492">Back faces will be culled.</doc>
+      </member>
+      <member name="both"
+              value="3"
+              c:identifier="COGL_PIPELINE_CULL_FACE_MODE_BOTH">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-state.h"
+             line="493">All faces will be culled.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="PipelineFilter" c:type="CoglPipelineFilter">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+           line="45">Texture filtering is used whenever the current pixel maps either to more
+than one texture element (texel) or less than one. These filter enums
+correspond to different strategies used to come up with a pixel color, by
+possibly referring to multiple neighbouring texels and taking a weighted
+average or simply using the nearest texel.</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                       line="80"/>
+      <member name="nearest"
+              value="9728"
+              c:identifier="COGL_PIPELINE_FILTER_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="47">Measuring in manhatten distance from the,
+  current pixel center, use the nearest texture texel</doc>
+      </member>
+      <member name="linear"
+              value="9729"
+              c:identifier="COGL_PIPELINE_FILTER_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="49">Use the weighted average of the 4 texels
+  nearest the current pixel center</doc>
+      </member>
+      <member name="nearest_mipmap_nearest"
+              value="9984"
+              c:identifier="COGL_PIPELINE_FILTER_NEAREST_MIPMAP_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="51">Select the mimap level whose
+  texel size most closely matches the current pixel, and use the
+  %COGL_PIPELINE_FILTER_NEAREST criterion</doc>
+      </member>
+      <member name="linear_mipmap_nearest"
+              value="9985"
+              c:identifier="COGL_PIPELINE_FILTER_LINEAR_MIPMAP_NEAREST">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="54">Select the mimap level whose
+  texel size most closely matches the current pixel, and use the
+  %COGL_PIPELINE_FILTER_LINEAR criterion</doc>
+      </member>
+      <member name="nearest_mipmap_linear"
+              value="9986"
+              c:identifier="COGL_PIPELINE_FILTER_NEAREST_MIPMAP_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="57">Select the two mimap levels
+  whose texel size most closely matches the current pixel, use
+  the %COGL_PIPELINE_FILTER_NEAREST criterion on each one and take
+  their weighted average</doc>
+      </member>
+      <member name="linear_mipmap_linear"
+              value="9987"
+              c:identifier="COGL_PIPELINE_FILTER_LINEAR_MIPMAP_LINEAR">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="61">Select the two mimap levels
+  whose texel size most closely matches the current pixel, use
+  the %COGL_PIPELINE_FILTER_LINEAR criterion on each one and take
+  their weighted average</doc>
+      </member>
+    </enumeration>
+    <callback name="PipelineLayerCallback"
+              c:type="CoglPipelineLayerCallback"
+              version="2.0"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline.h"
+           line="126">The callback prototype used with cogl_pipeline_foreach_layer() for
+iterating all the layers of a @pipeline.</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline.h" line="138"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pipeline" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="128">The #CoglPipeline whose layers are being iterated</doc>
+          <type name="Pipeline" c:type="CoglPipeline*"/>
+        </parameter>
+        <parameter name="layer_index" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="129">The current layer index</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="2">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="130">The private data passed to cogl_pipeline_foreach_layer()</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="PipelineWrapMode"
+                 version="2.0"
+                 c:type="CoglPipelineWrapMode">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+           line="83">The wrap mode specifies what happens when texture coordinates
+outside the range 0→1 are used. Note that if the filter mode is
+anything but %COGL_PIPELINE_FILTER_NEAREST then texels outside the
+range 0→1 might be used even when the coordinate is exactly 0 or 1
+because OpenGL will try to sample neighbouring pixels. For example
+if you are trying to render the full texture then you may get
+artifacts around the edges when the pixels from the other side are
+merged in if the wrap mode is set to repeat.</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+                       line="123"/>
+      <member name="repeat"
+              value="10497"
+              c:identifier="COGL_PIPELINE_WRAP_MODE_REPEAT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="85">The texture will be repeated. This
+  is useful for example to draw a tiled background.</doc>
+      </member>
+      <member name="mirrored_repeat"
+              value="33648"
+              c:identifier="COGL_PIPELINE_WRAP_MODE_MIRRORED_REPEAT">
+      </member>
+      <member name="clamp_to_edge"
+              value="33071"
+              c:identifier="COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="87">The coordinates outside the
+  range 0→1 will sample copies of the edge pixels of the
+  texture. This is useful to avoid artifacts if only one copy of
+  the texture is being rendered.</doc>
+      </member>
+      <member name="automatic"
+              value="519"
+              c:identifier="COGL_PIPELINE_WRAP_MODE_AUTOMATIC">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline-layer-state.h"
+             line="91">Cogl will try to automatically
+  decide which of the above two to use. For cogl_rectangle(), it
+  will use repeat mode if any of the texture coordinates are
+  outside the range 0→1, otherwise it will use clamp to edge. For
+  cogl_polygon() it will always use repeat mode. For
+  cogl_vertex_buffer_draw() it will use repeat mode except for
+  layers that have point sprite coordinate generation enabled. This
+  is the default value.</doc>
+      </member>
+    </enumeration>
+    <bitfield name="PixelFormat" version="0.8" c:type="CoglPixelFormat">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="139">Pixel formats used by Cogl. For the formats with a byte per
+component, the order of the components specify the order in
+increasing memory addresses. So for example
+%COGL_PIXEL_FORMAT_RGB_888 would have the red component in the
+lowest address, green in the next address and blue after that
+regardless of the endianness of the system.
+
+For the formats with non byte aligned components the component
+order specifies the order within a 16-bit or 32-bit number from
+most significant bit to least significant. So for
+%COGL_PIXEL_FORMAT_RGB_565, the red component would be in bits
+11-15, the green component would be in 6-11 and the blue component
+would be in 1-5. Therefore the order in memory depends on the
+endianness of the system.
+
+When uploading a texture %COGL_PIXEL_FORMAT_ANY can be used as the
+internal format. Cogl will try to pick the best format to use
+internally and convert the texture data if necessary.</doc>
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="253"/>
+      <member name="any" value="0" c:identifier="COGL_PIXEL_FORMAT_ANY">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="141">Any format</doc>
+      </member>
+      <member name="a_8" value="17" c:identifier="COGL_PIXEL_FORMAT_A_8">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="142">8 bits alpha mask</doc>
+      </member>
+      <member name="rgb_565"
+              value="4"
+              c:identifier="COGL_PIXEL_FORMAT_RGB_565">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="146">RGB, 16 bits</doc>
+      </member>
+      <member name="rgba_4444"
+              value="21"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="147">RGBA, 16 bits</doc>
+      </member>
+      <member name="rgba_5551"
+              value="22"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="148">RGBA, 16 bits</doc>
+      </member>
+      <member name="yuv" value="7" c:identifier="COGL_PIXEL_FORMAT_YUV">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="149">Not currently supported</doc>
+      </member>
+      <member name="g_8" value="8" c:identifier="COGL_PIXEL_FORMAT_G_8">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="150">Single luminance component</doc>
+      </member>
+      <member name="rg_88" value="9" c:identifier="COGL_PIXEL_FORMAT_RG_88">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="143">RG, 16 bits. Note that red-green textures
+  are only available if %COGL_FEATURE_ID_TEXTURE_RG is advertised.
+  See cogl_texture_set_components() for details.</doc>
+      </member>
+      <member name="rgb_888"
+              value="2"
+              c:identifier="COGL_PIXEL_FORMAT_RGB_888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="151">RGB, 24 bits</doc>
+      </member>
+      <member name="bgr_888"
+              value="34"
+              c:identifier="COGL_PIXEL_FORMAT_BGR_888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="152">BGR, 24 bits</doc>
+      </member>
+      <member name="rgba_8888"
+              value="19"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="153">RGBA, 32 bits</doc>
+      </member>
+      <member name="bgra_8888"
+              value="51"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="154">BGRA, 32 bits</doc>
+      </member>
+      <member name="argb_8888"
+              value="83"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="155">ARGB, 32 bits</doc>
+      </member>
+      <member name="abgr_8888"
+              value="115"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="156">ABGR, 32 bits</doc>
+      </member>
+      <member name="rgba_1010102"
+              value="29"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_1010102">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="157">RGBA, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="bgra_1010102"
+              value="61"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_1010102">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="158">BGRA, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="argb_2101010"
+              value="93"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_2101010">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="159">ARGB, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="abgr_2101010"
+              value="125"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_2101010">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="160">ABGR, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="rgba_fp_16161616"
+              value="27"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_FP_16161616">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="171">RGBA half floating point, 64 bit</doc>
+      </member>
+      <member name="bgra_fp_16161616"
+              value="59"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_FP_16161616">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="172">BGRA half floating point, 64 bit</doc>
+      </member>
+      <member name="argb_fp_16161616"
+              value="91"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_FP_16161616">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="173">ARGB half floating point, 64 bit</doc>
+      </member>
+      <member name="abgr_fp_16161616"
+              value="123"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_FP_16161616">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="174">ABGR half floating point, 64 bit</doc>
+      </member>
+      <member name="rgba_8888_pre"
+              value="147"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="161">Premultiplied RGBA, 32 bits</doc>
+      </member>
+      <member name="bgra_8888_pre"
+              value="179"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="162">Premultiplied BGRA, 32 bits</doc>
+      </member>
+      <member name="argb_8888_pre"
+              value="211"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="163">Premultiplied ARGB, 32 bits</doc>
+      </member>
+      <member name="abgr_8888_pre"
+              value="243"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="164">Premultiplied ABGR, 32 bits</doc>
+      </member>
+      <member name="rgba_4444_pre"
+              value="149"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="165">Premultiplied RGBA, 16 bits</doc>
+      </member>
+      <member name="rgba_5551_pre"
+              value="150"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="166">Premultiplied RGBA, 16 bits</doc>
+      </member>
+      <member name="rgba_1010102_pre"
+              value="157"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_1010102_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="167">Premultiplied RGBA, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="bgra_1010102_pre"
+              value="189"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_1010102_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="168">Premultiplied BGRA, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="argb_2101010_pre"
+              value="221"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_2101010_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="169">Premultiplied ARGB, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="abgr_2101010_pre"
+              value="253"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_2101010_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="170">Premultiplied ABGR, 32 bits, 10 bpc</doc>
+      </member>
+      <member name="rgba_fp_16161616_pre"
+              value="155"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_FP_16161616_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="175">Premultiplied RGBA half floating point, 64 bit</doc>
+      </member>
+      <member name="bgra_fp_16161616_pre"
+              value="187"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_FP_16161616_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="176">Premultiplied BGRA half floating point, 64 bit</doc>
+      </member>
+      <member name="argb_fp_16161616_pre"
+              value="219"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_FP_16161616_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="177">Premultiplied ARGB half floating point, 64 bit</doc>
+      </member>
+      <member name="abgr_fp_16161616_pre"
+              value="251"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_FP_16161616_PRE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="178">Premultiplied ABGR half floating point, 64 bit</doc>
+      </member>
+      <member name="depth_16"
+              value="265"
+              c:identifier="COGL_PIXEL_FORMAT_DEPTH_16">
+      </member>
+      <member name="depth_32"
+              value="259"
+              c:identifier="COGL_PIXEL_FORMAT_DEPTH_32">
+      </member>
+      <member name="depth_24_stencil_8"
+              value="771"
+              c:identifier="COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8">
+      </member>
+    </bitfield>
+    <bitfield name="ReadPixelsFlags"
+              version="1.0"
+              c:type="CoglReadPixelsFlags">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="500">Flags for cogl_framebuffer_read_pixels_into_bitmap()</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="511"/>
+      <member name="read_pixels_color_buffer"
+              value="1"
+              c:identifier="COGL_READ_PIXELS_COLOR_BUFFER">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="502">Read from the color buffer</doc>
+      </member>
+    </bitfield>
+    <enumeration name="RendererError" c:type="CoglRendererError">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="408"/>
+      <member name="xlib_display_open"
+              value="0"
+              c:identifier="COGL_RENDERER_ERROR_XLIB_DISPLAY_OPEN">
+      </member>
+      <member name="bad_constraint"
+              value="1"
+              c:identifier="COGL_RENDERER_ERROR_BAD_CONSTRAINT">
+      </member>
+    </enumeration>
+    <constant name="STENCIL_BIT" value="512" c:type="COGL_STENCIL_BIT">
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="69"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="STRUCT_SIZE_ASSERT"
+                    c:identifier="COGL_STRUCT_SIZE_ASSERT"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="70"/>
+      <parameters>
+        <parameter name="TYPE">
+        </parameter>
+        <parameter name="SIZE">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <record name="Scanout" c:type="CoglScanout" disguised="1">
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="53"/>
+    </record>
+    <enumeration name="ShaderType" version="1.0" c:type="CoglShaderType">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="223">Types of shaders</doc>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="236"/>
+      <member name="vertex" value="0" c:identifier="COGL_SHADER_TYPE_VERTEX">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="225">A program for processing vertices</doc>
+      </member>
+      <member name="fragment"
+              value="1"
+              c:identifier="COGL_SHADER_TYPE_FRAGMENT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="226">A program for processing fragments</doc>
+      </member>
+    </enumeration>
+    <enumeration name="StereoMode" c:type="CoglStereoMode">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="513">Represents how draw should affect the two buffers
+of a stereo framebuffer. See cogl_framebuffer_set_stereo_mode().</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="527"/>
+      <member name="both" value="0" c:identifier="COGL_STEREO_BOTH">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="515">draw to both stereo buffers</doc>
+      </member>
+      <member name="left" value="1" c:identifier="COGL_STEREO_LEFT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="516">draw only to the left stereo buffer</doc>
+      </member>
+      <member name="right" value="2" c:identifier="COGL_STEREO_RIGHT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="517">draw only to the left stereo buffer</doc>
+      </member>
+    </enumeration>
+    <enumeration name="SystemError"
+                 version="1.4"
+                 stability="Unstable"
+                 c:type="CoglSystemError">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="246">Error enumeration for Cogl
+
+The @COGL_SYSTEM_ERROR_UNSUPPORTED error can be thrown for a
+variety of reasons. For example:
+
+&lt;itemizedlist&gt;
+ &lt;listitem&gt;&lt;para&gt;You've tried to use a feature that is not
+  advertised by cogl_has_feature().&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;The GPU can not handle the configuration you have
+  requested. An example might be if you try to use too many texture
+  layers in a single #CoglPipeline&lt;/para&gt;&lt;/listitem&gt;
+ &lt;listitem&gt;&lt;para&gt;The driver does not support some
+  configuration.&lt;/para&gt;&lt;/listiem&gt;
+&lt;/itemizedlist&gt;
+
+Currently this is only used by Cogl API marked as experimental so
+this enum should also be considered experimental.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="278"/>
+      <member name="unsupported"
+              value="0"
+              c:identifier="COGL_SYSTEM_ERROR_UNSUPPORTED">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="248">You tried to use a feature or
+   configuration not currently available.</doc>
+      </member>
+      <member name="no_memory"
+              value="1"
+              c:identifier="COGL_SYSTEM_ERROR_NO_MEMORY">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="250">You tried to allocate a resource
+   such as a texture and there wasn't enough memory.</doc>
+      </member>
+    </enumeration>
+    <function-macro name="TEXTURE"
+                    c:identifier="COGL_TEXTURE"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="49"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXTURE_2D"
+                    c:identifier="COGL_TEXTURE_2D"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="61"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TEXTURE_2D_SLICED"
+                    c:identifier="COGL_TEXTURE_2D_SLICED"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                       line="71"/>
+      <parameters>
+        <parameter name="X">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="TEXTURE_MAX_WASTE"
+              value="127"
+              c:type="COGL_TEXTURE_MAX_WASTE">
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="72"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="TRACE_BEGIN"
+                    c:identifier="COGL_TRACE_BEGIN"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="77"/>
+      <parameters>
+        <parameter name="Name">
+        </parameter>
+        <parameter name="description">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRACE_BEGIN_SCOPED"
+                    c:identifier="COGL_TRACE_BEGIN_SCOPED"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="86"/>
+      <parameters>
+        <parameter name="Name">
+        </parameter>
+        <parameter name="description">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="TRACE_END"
+                    c:identifier="COGL_TRACE_END"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="82"/>
+      <parameters>
+        <parameter name="Name">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <interface name="Texture"
+               c:symbol-prefix="texture"
+               c:type="CoglTexture"
+               glib:type-name="CoglTexture"
+               glib:get-type="cogl_texture_get_gtype">
+      <prerequisite name="Object"/>
+      <function name="error_quark" c:identifier="cogl_texture_error_quark">
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="guint32" c:type="uint32_t"/>
+        </return-value>
+      </function>
+      <function name="new_from_bitmap"
+                c:identifier="cogl_texture_new_from_bitmap"
+                version="1.0"
+                deprecated="1"
+                deprecated-version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="128">Creates a #CoglTexture from a #CoglBitmap.</doc>
+        <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_bitmap()</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                         line="146"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="137">A newly created #CoglTexture or
+              %NULL on failure</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="130">A #CoglBitmap pointer</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="131">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+            <type name="TextureFlags" c:type="CoglTextureFlags"/>
+          </parameter>
+          <parameter name="internal_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="132">the #CoglPixelFormat to use for the GPU storage of the
+texture</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_from_data"
+                c:identifier="cogl_texture_new_from_data"
+                version="0.8"
+                deprecated="1"
+                deprecated-version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="91">Creates a new #CoglTexture based on data residing in memory.</doc>
+        <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_data()</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                         line="120"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="111">A newly created #CoglTexture or
+              %NULL on failure</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="93">width of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="94">height of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="95">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+            <type name="TextureFlags" c:type="CoglTextureFlags"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="96">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="internal_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="97">the #CoglPixelFormat that will be used for storing
+   the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a
+   premultiplied format similar to the format of the source data will
+   be used. The default blending equations of Cogl expect premultiplied
+   color data; the main use of passing a non-premultiplied format here
+   is if you have non-premultiplied source data and are going to adjust
+   the blend mode (see cogl_material_set_blend()) or use the data for
+   something other than straight blending.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="105">the memory offset in bytes between the starts of
+   scanlines in @data</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="107">pointer the memory region where the source buffer resides</doc>
+            <array zero-terminated="0" c:type="const uint8_t*">
+              <type name="guint8" c:type="uint8_t"/>
+            </array>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_from_file"
+                c:identifier="cogl_texture_new_from_file"
+                version="0.8"
+                deprecated="1"
+                deprecated-version="1.18"
+                throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="61">Creates a #CoglTexture from an image file.</doc>
+        <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_file()</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                         line="86"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="77">A newly created #CoglTexture or
+              %NULL on failure</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="63">the file to load</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="64">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+            <type name="TextureFlags" c:type="CoglTextureFlags"/>
+          </parameter>
+          <parameter name="internal_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="65">the #CoglPixelFormat to use for the GPU storage of the
+   texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied
+   format similar to the format of the source data will be used. The
+   default blending equations of Cogl expect premultiplied color data;
+   the main use of passing a non-premultiplied format here is if you
+   have non-premultiplied source data and are going to adjust the blend
+   mode (see cogl_material_set_blend()) or use the data for something
+   other than straight blending.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_with_size"
+                c:identifier="cogl_texture_new_with_size"
+                version="0.8"
+                deprecated="1"
+                deprecated-version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="38">Creates a new #CoglTexture with the specified dimensions and pixel format.</doc>
+        <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_with_size()</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                         line="56"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="48">A newly created #CoglTexture or %NULL on failure</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="40">width of texture in pixels.</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="41">height of texture in pixels.</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="42">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+            <type name="TextureFlags" c:type="CoglTextureFlags"/>
+          </parameter>
+          <parameter name="internal_format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="43">the #CoglPixelFormat to use for the GPU storage of the
+   texture.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="allocate" c:identifier="cogl_texture_allocate" throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="478">Explicitly allocates the storage for the given @texture which
+allows you to be sure that there is enough memory for the
+texture and if not then the error can be handled gracefully.
+
+&lt;note&gt;Normally applications don't need to use this api directly
+since the texture will be implicitly allocated when data is set on
+the texture, or if the texture is attached to a #CoglOffscreen
+framebuffer and rendered too.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="497"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="492">%TRUE if the texture was successfully allocated,
+              otherwise %FALSE and @error will be updated if it
+              wasn't %NULL.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="480">A #CoglTexture</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_components"
+              c:identifier="cogl_texture_get_components"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="180">Queries what components the given @texture stores internally as set
+via cogl_texture_set_components().
+
+For textures created by the ‘_with_size’ constructors the default
+is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take
+a %CoglBitmap or a data pointer default to the same components as
+the pixel format of the data.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="195"/>
+        <return-value transfer-ownership="none">
+          <type name="TextureComponents" c:type="CoglTextureComponents"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="182">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_data" c:identifier="cogl_texture_get_data">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="318">Copies the pixel data from a cogl texture to system memory.
+
+&lt;note&gt;Don't pass the value of cogl_texture_get_rowstride() as the
+@rowstride argument, the rowstride should be the rowstride you
+want for the destination @data buffer not the rowstride of the
+source texture&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="338"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="335">the size of the texture data in bytes</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="320">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="321">the #CoglPixelFormat to store the texture as.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="322">the rowstride of @data in bytes or pass 0 to calculate
+            from the bytes-per-pixel of @format multiplied by the
+            @texture width.</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="325">memory location to write the @texture's contents,
+or %NULL to only query the data size through the return value.</doc>
+            <array zero-terminated="0" c:type="uint8_t*">
+              <type name="guint8" c:type="uint8_t"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_gl_texture" c:identifier="cogl_texture_get_gl_texture">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="297">Queries the GL handles for a GPU side texture through its #CoglTexture.
+
+If the texture is spliced the data for the first sub texture will be
+queried.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="314"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="310">%TRUE if the handle was successfully retrieved, %FALSE
+  if the handle was invalid</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="299">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="out_gl_handle"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="300">pointer to return location for the
+  textures GL handle, or %NULL.</doc>
+            <type name="guint" c:type="unsigned int*"/>
+          </parameter>
+          <parameter name="out_gl_target"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     optional="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="302">pointer to return location for the
+  GL target type, or %NULL.</doc>
+            <type name="guint" c:type="unsigned int*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_height" c:identifier="cogl_texture_get_height">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="261">Queries the height of a cogl texture.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="270"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="267">the height of the GPU side texture in pixels</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="263">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_max_waste" c:identifier="cogl_texture_get_max_waste">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="272">Queries the maximum wasted (unused) pixels in one dimension of a GPU side
+texture.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="282"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="279">the maximum waste</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="274">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_premultiplied"
+              c:identifier="cogl_texture_get_premultiplied"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="232">Queries the pre-multiplied alpha status for internally stored red,
+green and blue components for the given @texture as set by
+cogl_texture_set_premultiplied().
+
+By default the pre-multipled state is @TRUE.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="248"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="242">%TRUE if red, green and blue components are
+              internally stored pre-multiplied by the alpha
+              value or %FALSE if not.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="234">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_width" c:identifier="cogl_texture_get_width">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="250">Queries the width of a cogl texture.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="259"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="256">the width of the GPU side texture in pixels</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="252">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_get_data_supported"
+              c:identifier="cogl_texture_is_get_data_supported"
+              introspectable="0">
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="504"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_sliced" c:identifier="cogl_texture_is_sliced">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="284">Queries if a texture is sliced (stored as multiple GPU side tecture
+objects).</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="295"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="291">%TRUE if the texture is sliced, %FALSE if the texture
+  is stored as a single GPU texture</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="286">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="new_from_sub_texture"
+              c:identifier="cogl_texture_new_from_sub_texture"
+              version="1.2"
+              deprecated="1"
+              deprecated-version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="150">Creates a new texture which represents a subregion of another
+texture. The GL resources will be shared so that no new texture
+data is actually allocated.
+
+Sub textures have undefined behaviour texture coordinates outside
+of the range [0,1] are used.
+
+The sub texture will keep a reference to the full texture so you do
+not need to keep one separately if you only want to use the sub
+texture.</doc>
+        <doc-deprecated xml:space="preserve">Use cogl_sub_texture_new()</doc-deprecated>
+        <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                         line="176"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="169">A newly created #CoglTexture or
+              %NULL on failure</doc>
+          <type name="Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="full_texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="152">a #CoglTexture pointer</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="sub_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="153">X coordinate of the top-left of the subregion</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="sub_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="154">Y coordinate of the top-left of the subregion</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="sub_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="155">Width in pixels of the subregion</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="sub_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                 line="156">Height in pixels of the subregion</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_components"
+              c:identifier="cogl_texture_set_components"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="150">Affects the internal storage format for this texture by specifying
+what components will be required for sampling later.
+
+This api affects how data is uploaded to the GPU since unused
+components can potentially be discarded from source data.
+
+For textures created by the ‘_with_size’ constructors the default
+is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take
+a %CoglBitmap or a data pointer default to the same components as
+the pixel format of the data.
+
+Note that the %COGL_TEXTURE_COMPONENTS_RG format is not available
+on all drivers. The availability can be determined by checking for
+the %COGL_FEATURE_ID_TEXTURE_RG feature. If this format is used on
+a driver where it is not available then %COGL_TEXTURE_ERROR_FORMAT
+will be raised when the texture is allocated. Even if the feature
+is not available then %COGL_PIXEL_FORMAT_RG_88 can still be used as
+an image format as long as %COGL_TEXTURE_COMPONENTS_RG isn't used
+as the texture's components.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="152">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="components" transfer-ownership="none">
+            <type name="TextureComponents" c:type="CoglTextureComponents"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_data" c:identifier="cogl_texture_set_data" throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="383">@texture a #CoglTexture.
+Sets all the pixels for a given mipmap @level by copying the pixel
+data pointed to by the @data argument into the given @texture.
+
+@data should point to the first pixel to copy corresponding
+to the top left of the mipmap @level being set.
+
+If @rowstride equals 0 then it will be automatically calculated
+from the width of the mipmap level and the bytes-per-pixel for the
+given @format.
+
+A mipmap @level of 0 corresponds to the largest, base image of a
+texture and @level 1 is half the width and height of level 0. If
+dividing any dimension of the previous level by two results in a
+fraction then round the number down (floor()), but clamp to 1
+something like this:
+
+|[
+ next_width = MAX (1, floor (prev_width));
+]|
+
+You can determine the number of mipmap levels for a given texture
+like this:
+
+|[
+ n_levels = 1 + floor (log2 (max_dimension));
+]|
+
+Where %max_dimension is the larger of cogl_texture_get_width() and
+cogl_texture_get_height().
+
+It is an error to pass a @level number &gt;= the number of levels that
+@texture can have according to the above calculation.
+
+&lt;note&gt;Since the storage for a #CoglTexture is allocated lazily then
+if the given @texture has not previously been allocated then this
+api can return %FALSE and throw an exceptional @error if there is
+not enough memory to allocate storage for @texture.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="436"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="432">%TRUE if the data upload was successful, and
+              %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="386">the #CoglPixelFormat used in the source @data buffer.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="387">rowstride of the source @data buffer (computed from
+            the texture width and @format if it equals 0)</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="389">the source data, pointing to the first top-left pixel to set</doc>
+            <array zero-terminated="0" c:type="const uint8_t*">
+              <type name="guint8" c:type="uint8_t"/>
+            </array>
+          </parameter>
+          <parameter name="level" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="390">The mipmap level to update (Normally 0 for the largest,
+        base texture)</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_premultiplied"
+              c:identifier="cogl_texture_set_premultiplied"
+              version="1.18">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="197">Affects the internal storage format for this texture by specifying
+whether red, green and blue color components should be stored as
+pre-multiplied alpha values.
+
+This api affects how data is uploaded to the GPU since Cogl will
+convert source data to have premultiplied or unpremultiplied
+components according to this state.
+
+For example if you create a texture via
+cogl_texture_2d_new_with_size() and then upload data via
+cogl_texture_set_data() passing a source format of
+%COGL_PIXEL_FORMAT_RGBA_8888 then Cogl will internally multiply the
+red, green and blue components of the source data by the alpha
+component, for each pixel so that the internally stored data has
+pre-multiplied alpha components. If you instead upload data that
+already has pre-multiplied components by passing
+%COGL_PIXEL_FORMAT_RGBA_8888_PRE as the source format to
+cogl_texture_set_data() then the data can be uploaded without being
+converted.
+
+By default the @premultipled state is @TRUE.</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="229"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="199">a #CoglTexture pointer.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="premultiplied" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="200">Whether any internally stored red, green or blue
+                components are pre-multiplied by an alpha
+                component.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_region" c:identifier="cogl_texture_set_region">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="343">Sets the pixels in a rectangular subregion of @texture from an in-memory
+buffer containing pixel data.
+
+&lt;note&gt;The region set can't be larger than the source @data&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="370"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="366">%TRUE if the subregion upload was successful, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="345">a #CoglTexture.</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="src_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="346">upper left coordinate to use from source data.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="src_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="347">upper left coordinate to use from source data.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="348">upper left destination horizontal coordinate.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="349">upper left destination vertical coordinate.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="350">width of destination region to write. (Must be less
+  than or equal to @width)</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="dst_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="352">height of destination region to write. (Must be less
+  than or equal to @height)</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="354">width of source data buffer.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="355">height of source data buffer.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="356">the #CoglPixelFormat used in the source buffer.</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="357">rowstride of source buffer (computed from width if none
+specified)</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="359">the actual pixel data.</doc>
+            <array zero-terminated="0" c:type="const uint8_t*">
+              <type name="guint8" c:type="uint8_t"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_region_from_bitmap"
+              c:identifier="cogl_texture_set_region_from_bitmap"
+              version="1.8"
+              stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="443">Copies a specified source region from @bitmap to the position
+(@src_x, @src_y) of the given destination texture @handle.
+
+&lt;note&gt;The region updated can't be larger than the source
+bitmap&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture.h" line="469"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="462">%TRUE if the subregion upload was successful, and
+  %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="texture" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="445">a #CoglTexture pointer</doc>
+            <type name="Texture" c:type="CoglTexture*"/>
+          </instance-parameter>
+          <parameter name="src_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="446">upper left coordinate to use from the source bitmap.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="src_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="447">upper left coordinate to use from the source bitmap</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="448">upper left destination horizontal coordinate.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="449">upper left destination vertical coordinate.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dst_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="450">width of destination region to write. (Must be less
+  than or equal to the bitmap width)</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="dst_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="452">height of destination region to write. (Must be less
+  than or equal to the bitmap height)</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture.h"
+                 line="454">The source bitmap to read from</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <class name="Texture2D"
+           c:symbol-prefix="texture_2d"
+           c:type="CoglTexture2D"
+           parent="Object"
+           glib:type-name="CoglTexture2D"
+           glib:get-type="cogl_texture_2d_get_gtype"
+           glib:fundamental="1">
+      <implements name="Texture"/>
+      <constructor name="new_from_bitmap"
+                   c:identifier="cogl_texture_2d_new_from_bitmap"
+                   version="2.0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d.h"
+             line="190">Creates a low-level #CoglTexture2D texture based on data residing
+in a #CoglBitmap.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or preferably let Cogl
+automatically allocate storage lazily when it may know more about
+how the texture is being used and can optimize how it is allocated.
+
+The texture is still configurable until it has been allocated so
+for example you can influence the internal format of the texture
+using cogl_texture_set_components() and
+cogl_texture_set_premultiplied().</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="214"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d.h"
+               line="208">A newly allocated #CoglTexture2D</doc>
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </return-value>
+        <parameters>
+          <parameter name="bitmap" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="192">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_data"
+                   c:identifier="cogl_texture_2d_new_from_data"
+                   version="2.0"
+                   introspectable="0"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d.h"
+             line="148">Creates a low-level #CoglTexture2D texture based on data residing
+in memory.
+
+&lt;note&gt;This api will always immediately allocate GPU memory for the
+texture and upload the given data so that the @data pointer does
+not need to remain valid once this function returns. This means it
+is not possible to configure the texture before it is allocated. If
+you do need to configure the texture before allocation (to specify
+constraints on the internal format for example) then you can
+instead create a #CoglBitmap for your data and use
+cogl_texture_2d_new_from_bitmap() or use
+cogl_texture_2d_new_with_size() and then upload data using
+cogl_texture_set_data()&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="182"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d.h"
+               line="174">A newly allocated #CoglTexture2D, or if
+         the size is not supported (because it is too large or a
+         non-power-of-two size that the hardware doesn't support)
+         it will return %NULL and set @error.</doc>
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="150">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="151">width of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="152">height of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="153">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="154">the memory offset in bytes between the starts of
+   scanlines in @data. A value of 0 will make Cogl automatically
+   calculate @rowstride from @width and @format.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="157">pointer the memory region where the source buffer resides</doc>
+            <type name="guint8" c:type="const uint8_t*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_egl_image_external"
+                   c:identifier="cogl_texture_2d_new_from_egl_image_external"
+                   introspectable="0"
+                   throws="1">
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="240"/>
+        <return-value transfer-ownership="full">
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="alloc"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="4"
+                     destroy="5">
+            <type name="Texture2DEGLImageExternalAlloc"
+                  c:type="CoglTexture2DEGLImageExternalAlloc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_file"
+                   c:identifier="cogl_texture_2d_new_from_file"
+                   version="1.16"
+                   introspectable="0"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d.h"
+             line="119">Creates a low-level #CoglTexture2D texture from an image file.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or preferably let Cogl
+automatically allocate storage lazily when it may know more about
+how the texture is being used and can optimize how it is allocated.
+
+The texture is still configurable until it has been allocated so
+for example you can influence the internal format of the texture
+using cogl_texture_set_components() and
+cogl_texture_set_premultiplied().</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="144"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d.h"
+               line="138">A newly created #CoglTexture2D or %NULL on failure
+              and @error will be updated.</doc>
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="121">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="122">the file to load</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_size"
+                   c:identifier="cogl_texture_2d_new_with_size"
+                   version="2.0"
+                   introspectable="0">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d.h"
+             line="90">Creates a low-level #CoglTexture2D texture with a given @width and
+@height that your GPU can texture from directly.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or preferably let Cogl
+automatically allocate storage lazily when it may know more about
+how the texture is being used and can optimize how it is allocated.
+
+The texture is still configurable until it has been allocated so
+for example you can influence the internal format of the texture
+using cogl_texture_set_components() and
+cogl_texture_set_premultiplied().</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="115"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d.h"
+               line="110">A new #CoglTexture2D object with no storage yet allocated.</doc>
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="92">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="93">Width of the texture to allocate</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d.h"
+                 line="94">Height of the texture to allocate</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="egl_image_external_alloc_finish"
+              c:identifier="cogl_texture_2d_egl_image_external_alloc_finish">
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="252"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tex_2d" transfer-ownership="none">
+            <type name="Texture2D" c:type="CoglTexture2D*"/>
+          </instance-parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="egl_image_external_bind"
+              c:identifier="cogl_texture_2d_egl_image_external_bind">
+        <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="249"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tex_2d" transfer-ownership="none">
+            <type name="Texture2D" c:type="CoglTexture2D*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </class>
+    <callback name="Texture2DEGLImageExternalAlloc"
+              c:type="CoglTexture2DEGLImageExternalAlloc"
+              throws="1">
+      <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="232"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tex_2d" transfer-ownership="none">
+          <type name="Texture2D" c:type="CoglTexture2D*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Texture2DSliced"
+           c:symbol-prefix="texture_2d_sliced"
+           c:type="CoglTexture2DSliced"
+           parent="Object"
+           glib:type-name="CoglTexture2DSliced"
+           glib:get-type="cogl_texture_2d_sliced_get_gtype"
+           glib:fundamental="1">
+      <implements name="Texture"/>
+      <constructor name="new_from_bitmap"
+                   c:identifier="cogl_texture_2d_sliced_new_from_bitmap"
+                   version="1.16">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+             line="241">Creates a new #CoglTexture2DSliced texture based on data residing
+in a bitmap.
+
+A #CoglTexture2DSliced may internally be comprised of 1 or more
+#CoglTexture2D textures depending on GPU limitations.  For example
+if the GPU only supports power-of-two sized textures then a sliced
+texture will turn a non-power-of-two size into a combination of
+smaller power-of-two sized textures. If the requested texture size
+is larger than is supported by the hardware then the texture will
+be sliced into smaller textures that can be accessed by the
+hardware.
+
+@max_waste is used as a threshold for recursively slicing the
+right-most or bottom-most slices into smaller sizes until the
+wasted padding at the bottom and right of the textures is less than
+specified. A negative @max_waste will disable slicing.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or let Cogl automatically allocate
+storage lazily.
+
+&lt;note&gt;It's possible for the allocation of a sliced texture to fail
+later due to impossible slicing constraints if a negative
+@max_waste value is given. If the given virtual texture size is
+larger than is supported by the hardware but slicing is disabled
+the texture size would be too large to handle.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                         line="283"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+               line="277">A newly created #CoglTexture2DSliced
+              or %NULL on failure and @error will be updated.</doc>
+          <type name="Texture2DSliced" c:type="CoglTexture2DSliced*"/>
+        </return-value>
+        <parameters>
+          <parameter name="bmp" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="243">A #CoglBitmap</doc>
+            <type name="Bitmap" c:type="CoglBitmap*"/>
+          </parameter>
+          <parameter name="max_waste" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="244">The threshold of how wide a strip of wasted texels
+            are allowed along the right and bottom textures before
+            they must be sliced to reduce the amount of waste. A
+            negative can be passed to disable slicing.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_data"
+                   c:identifier="cogl_texture_2d_sliced_new_from_data"
+                   version="1.16"
+                   introspectable="0"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+             line="176">Creates a new #CoglTexture2DSliced texture based on data residing
+in memory.
+
+A #CoglTexture2DSliced may internally be comprised of 1 or more
+#CoglTexture2D textures depending on GPU limitations.  For example
+if the GPU only supports power-of-two sized textures then a sliced
+texture will turn a non-power-of-two size into a combination of
+smaller power-of-two sized textures. If the requested texture size
+is larger than is supported by the hardware then the texture will
+be sliced into smaller textures that can be accessed by the
+hardware.
+
+@max_waste is used as a threshold for recursively slicing the
+right-most or bottom-most slices into smaller sizes until the
+wasted padding at the bottom and right of the textures is less than
+specified. A negative @max_waste will disable slicing.
+
+&lt;note&gt;This api will always immediately allocate GPU memory for all
+the required texture slices and upload the given data so that the
+@data pointer does not need to remain valid once this function
+returns. This means it is not possible to configure the texture
+before it is allocated. If you do need to configure the texture
+before allocation (to specify constraints on the internal format
+for example) then you can instead create a #CoglBitmap for your
+data and use cogl_texture_2d_sliced_new_from_bitmap() or use
+cogl_texture_2d_sliced_new_with_size() and then upload data using
+cogl_texture_set_data()&lt;/note&gt;
+
+&lt;note&gt;It's possible for the allocation of a sliced texture to fail
+due to impossible slicing constraints if a negative @max_waste
+value is given. If the given virtual texture size is larger than is
+supported by the hardware but slicing is disabled the texture size
+would be too large to handle.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                         line="232"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+               line="226">A newly created #CoglTexture2DSliced
+              or %NULL on failure and @error will be updated.</doc>
+          <type name="Texture2DSliced" c:type="CoglTexture2DSliced*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="178">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="179">width of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="180">height of texture in pixels</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="max_waste" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="182">The threshold of how wide a strip of wasted texels
+            are allowed along the right and bottom textures before
+            they must be sliced to reduce the amount of waste. A
+            negative can be passed to disable slicing.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="181">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+            <type name="PixelFormat" c:type="CoglPixelFormat"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="186">the memory offset in bytes between the start of each
+   row in @data. A value of 0 will make Cogl automatically
+   calculate @rowstride from @width and @format.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="189">pointer the memory region where the source buffer resides</doc>
+            <type name="guint8" c:type="const uint8_t*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_file"
+                   c:identifier="cogl_texture_2d_sliced_new_from_file"
+                   version="1.16"
+                   introspectable="0"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+             line="128">Creates a #CoglTexture2DSliced from an image file.
+
+A #CoglTexture2DSliced may internally be comprised of 1 or more
+#CoglTexture2D textures depending on GPU limitations.  For example
+if the GPU only supports power-of-two sized textures then a sliced
+texture will turn a non-power-of-two size into a combination of
+smaller power-of-two sized textures. If the requested texture size
+is larger than is supported by the hardware then the texture will
+be sliced into smaller textures that can be accessed by the
+hardware.
+
+@max_waste is used as a threshold for recursively slicing the
+right-most or bottom-most slices into smaller sizes until the
+wasted padding at the bottom and right of the textures is less than
+specified. A negative @max_waste will disable slicing.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or let Cogl automatically allocate
+storage lazily.
+
+&lt;note&gt;It's possible for the allocation of a sliced texture to fail
+later due to impossible slicing constraints if a negative
+@max_waste value is given. If the given virtual texture size is
+larger than is supported by the hardware but slicing is disabled
+the texture size would be too large to handle.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                         line="171"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+               line="165">A newly created #CoglTexture2DSliced
+              or %NULL on failure and @error will be updated.</doc>
+          <type name="Texture2DSliced" c:type="CoglTexture2DSliced*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="130">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="131">the file to load</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="max_waste" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="132">The threshold of how wide a strip of wasted texels
+            are allowed along the right and bottom textures before
+            they must be sliced to reduce the amount of waste. A
+            negative can be passed to disable slicing.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_size"
+                   c:identifier="cogl_texture_2d_sliced_new_with_size"
+                   version="1.10"
+                   introspectable="0"
+                   stability="Unstable">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+             line="81">Creates a #CoglTexture2DSliced that may internally be comprised of
+1 or more #CoglTexture2D textures depending on GPU limitations.
+For example if the GPU only supports power-of-two sized textures
+then a sliced texture will turn a non-power-of-two size into a
+combination of smaller power-of-two sized textures. If the
+requested texture size is larger than is supported by the hardware
+then the texture will be sliced into smaller textures that can be
+accessed by the hardware.
+
+@max_waste is used as a threshold for recursively slicing the
+right-most or bottom-most slices into smaller sizes until the
+wasted padding at the bottom and right of the textures is less than
+specified. A negative @max_waste will disable slicing.
+
+The storage for the texture is not allocated before this function
+returns. You can call cogl_texture_allocate() to explicitly
+allocate the underlying storage or let Cogl automatically allocate
+storage lazily.
+
+&lt;note&gt;It's possible for the allocation of a sliced texture to fail
+later due to impossible slicing constraints if a negative
+@max_waste value is given. If the given virtual texture size size
+is larger than is supported by the hardware but slicing is disabled
+the texture size would be too large to handle.&lt;/note&gt;</doc>
+        <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                         line="123"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+               line="116">A new #CoglTexture2DSliced object with no storage
+         allocated yet.</doc>
+          <type name="Texture2DSliced" c:type="CoglTexture2DSliced*"/>
+        </return-value>
+        <parameters>
+          <parameter name="ctx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="83">A #CoglContext</doc>
+            <type name="Context" c:type="CoglContext*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="84">The virtual width of your sliced texture.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="85">The virtual height of your sliced texture.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="max_waste" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                 line="86">The threshold of how wide a strip of wasted texels
+            are allowed along the right and bottom textures before
+            they must be sliced to reduce the amount of waste. A
+            negative can be passed to disable slicing.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <enumeration name="TextureComponents"
+                 version="1.18"
+                 c:type="CoglTextureComponents">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture.h"
+           line="127">See cogl_texture_set_components().</doc>
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="148"/>
+      <member name="a" value="1" c:identifier="COGL_TEXTURE_COMPONENTS_A">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="129">Only the alpha component</doc>
+      </member>
+      <member name="rg" value="2" c:identifier="COGL_TEXTURE_COMPONENTS_RG">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="130">Red and green components. Note that
+  this can only be used if the %COGL_FEATURE_ID_TEXTURE_RG feature
+  is advertised.</doc>
+      </member>
+      <member name="rgb" value="3" c:identifier="COGL_TEXTURE_COMPONENTS_RGB">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="133">Red, green and blue components</doc>
+      </member>
+      <member name="rgba"
+              value="4"
+              c:identifier="COGL_TEXTURE_COMPONENTS_RGBA">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="134">Red, green, blue and alpha components</doc>
+      </member>
+      <member name="depth"
+              value="5"
+              c:identifier="COGL_TEXTURE_COMPONENTS_DEPTH">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="135">Only a depth component</doc>
+      </member>
+    </enumeration>
+    <enumeration name="TextureError"
+                 version="1.8"
+                 stability="Unstable"
+                 c:type="CoglTextureError">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture.h"
+           line="92">Error codes that can be thrown when allocating textures.</doc>
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="110"/>
+      <member name="size" value="0" c:identifier="COGL_TEXTURE_ERROR_SIZE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="94">Unsupported size</doc>
+      </member>
+      <member name="format" value="1" c:identifier="COGL_TEXTURE_ERROR_FORMAT">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="95">Unsupported format</doc>
+      </member>
+      <member name="bad_parameter"
+              value="2"
+              c:identifier="COGL_TEXTURE_ERROR_BAD_PARAMETER">
+      </member>
+      <member name="type" value="3" c:identifier="COGL_TEXTURE_ERROR_TYPE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="96">A primitive texture type that is
+  unsupported by the driver was used</doc>
+      </member>
+    </enumeration>
+    <bitfield name="TextureFlags" version="1.0" c:type="CoglTextureFlags">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="188">Flags to pass to the cogl_texture_new_* family of functions.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="210"/>
+      <member name="none" value="0" c:identifier="COGL_TEXTURE_NONE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="190">No flags specified</doc>
+      </member>
+      <member name="no_auto_mipmap"
+              value="1"
+              c:identifier="COGL_TEXTURE_NO_AUTO_MIPMAP">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="191">Disables the automatic generation of
+  the mipmap pyramid from the base level image whenever it is
+  updated. The mipmaps are only generated when the texture is
+  rendered with a mipmap filter so it should be free to leave out
+  this flag when using other filtering modes</doc>
+      </member>
+      <member name="no_slicing"
+              value="2"
+              c:identifier="COGL_TEXTURE_NO_SLICING">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="196">Disables the slicing of the texture</doc>
+      </member>
+      <member name="no_atlas" value="4" c:identifier="COGL_TEXTURE_NO_ATLAS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="197">Disables the insertion of the texture inside
+  the texture atlas used by Cogl</doc>
+      </member>
+    </bitfield>
+    <record name="TextureVertex" c:type="CoglTextureVertex">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="167">Used to specify vertex information when calling cogl_polygon()</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="185"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="169">Model x-coordinate</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="170">Model y-coordinate</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="z" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="171">Model z-coordinate</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="tx" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="172">Texture x-coordinate</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="ty" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="173">Texture y-coordinate</doc>
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="color" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="174">The color to use at this vertex. This is ignored if
+  use_color is %FALSE when calling cogl_polygon()</doc>
+        <type name="Color" c:type="CoglColor"/>
+      </field>
+    </record>
+    <record name="TraceContext" c:type="CoglTraceContext" disguised="1">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="31"/>
+    </record>
+    <record name="TraceHead" c:type="CoglTraceHead">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="37"/>
+      <field name="begin_time" writable="1">
+        <type name="guint64" c:type="uint64_t"/>
+      </field>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="const char*"/>
+      </field>
+    </record>
+    <record name="UserDataKey" c:type="CoglUserDataKey" version="1.4">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="93">A #CoglUserDataKey is used to declare a key for attaching data to a
+#CoglObject using cogl_object_set_user_data. The typedef only exists as a
+formality to make code self documenting since only the unique address of a
+#CoglUserDataKey is used.
+
+Typically you would declare a static #CoglUserDataKey and set private data
+on an object something like this:
+
+|[
+static CoglUserDataKey path_private_key;
+
+static void
+destroy_path_private_cb (void *data)
+{
+  g_free (data);
+}
+
+static void
+my_path_set_data (CoglPipeline *pipeline, void *data)
+{
+  cogl_object_set_user_data (COGL_OBJECT (pipeline),
+                             &amp;private_key,
+                             data,
+                             destroy_pipeline_private_cb);
+}
+]|</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="128"/>
+      <field name="unused" writable="1">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-object.h"
+             line="95">ignored.</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+    </record>
+    <enumeration name="VerticesMode" version="1.0" c:type="CoglVerticesMode">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="329">Different ways of interpreting vertices when drawing.</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="357"/>
+      <member name="points" value="0" c:identifier="COGL_VERTICES_MODE_POINTS">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="331">FIXME, equivalent to
+&lt;constant&gt;GL_POINTS&lt;/constant&gt;</doc>
+      </member>
+      <member name="lines" value="1" c:identifier="COGL_VERTICES_MODE_LINES">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="333">FIXME, equivalent to &lt;constant&gt;GL_LINES&lt;/constant&gt;</doc>
+      </member>
+      <member name="line_loop"
+              value="2"
+              c:identifier="COGL_VERTICES_MODE_LINE_LOOP">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="334">FIXME, equivalent to
+&lt;constant&gt;GL_LINE_LOOP&lt;/constant&gt;</doc>
+      </member>
+      <member name="line_strip"
+              value="3"
+              c:identifier="COGL_VERTICES_MODE_LINE_STRIP">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="336">FIXME, equivalent to
+&lt;constant&gt;GL_LINE_STRIP&lt;/constant&gt;</doc>
+      </member>
+      <member name="triangles"
+              value="4"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLES">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="338">FIXME, equivalent to
+&lt;constant&gt;GL_TRIANGLES&lt;/constant&gt;</doc>
+      </member>
+      <member name="triangle_strip"
+              value="5"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLE_STRIP">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="340">FIXME, equivalent to
+&lt;constant&gt;GL_TRIANGLE_STRIP&lt;/constant&gt;</doc>
+      </member>
+      <member name="triangle_fan"
+              value="6"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLE_FAN">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="342">FIXME, equivalent to &lt;constant&gt;GL_TRIANGLE_FAN&lt;/constant&gt;</doc>
+      </member>
+    </enumeration>
+    <enumeration name="Winding" c:type="CoglWinding">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="468">Enum used to represent the two directions of rotation. This can be
+used to set the front face for culling by calling
+cogl_pipeline_set_front_face_winding().</doc>
+      <source-position filename="../cogl/cogl/cogl-types.h" line="481"/>
+      <member name="clockwise" value="0" c:identifier="COGL_WINDING_CLOCKWISE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="470">Vertices are in a clockwise order</doc>
+      </member>
+      <member name="counter_clockwise"
+              value="1"
+              c:identifier="COGL_WINDING_COUNTER_CLOCKWISE">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-types.h"
+             line="471">Vertices are in a counter-clockwise order</doc>
+      </member>
+    </enumeration>
+    <enumeration name="WinsysFeature" c:type="CoglWinsysFeature">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="466"/>
+      <member name="multiple_onscreen"
+              value="0"
+              c:identifier="COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN">
+      </member>
+      <member name="vblank_counter"
+              value="1"
+              c:identifier="COGL_WINSYS_FEATURE_VBLANK_COUNTER">
+      </member>
+      <member name="vblank_wait"
+              value="2"
+              c:identifier="COGL_WINSYS_FEATURE_VBLANK_WAIT">
+      </member>
+      <member name="texture_from_pixmap"
+              value="3"
+              c:identifier="COGL_WINSYS_FEATURE_TEXTURE_FROM_PIXMAP">
+      </member>
+      <member name="swap_buffers_event"
+              value="4"
+              c:identifier="COGL_WINSYS_FEATURE_SWAP_BUFFERS_EVENT">
+      </member>
+      <member name="swap_region"
+              value="5"
+              c:identifier="COGL_WINSYS_FEATURE_SWAP_REGION">
+      </member>
+      <member name="swap_region_throttle"
+              value="6"
+              c:identifier="COGL_WINSYS_FEATURE_SWAP_REGION_THROTTLE">
+      </member>
+      <member name="swap_region_synchronized"
+              value="7"
+              c:identifier="COGL_WINSYS_FEATURE_SWAP_REGION_SYNCHRONIZED">
+      </member>
+      <member name="buffer_age"
+              value="8"
+              c:identifier="COGL_WINSYS_FEATURE_BUFFER_AGE">
+      </member>
+      <member name="sync_and_complete_event"
+              value="9"
+              c:identifier="COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT">
+      </member>
+      <member name="n_features"
+              value="10"
+              c:identifier="COGL_WINSYS_FEATURE_N_FEATURES">
+      </member>
+    </enumeration>
+    <callback name="XlibFilterFunc"
+              c:type="CoglXlibFilterFunc"
+              introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h" line="89"/>
+      <return-value transfer-ownership="none">
+        <type name="FilterReturn" c:type="CoglFilterReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type c:type="XEvent*"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="_ColorSizeCheck" c:type="_CoglColorSizeCheck">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="165"/>
+      <field name="compile_time_assert_CoglColor_size" writable="1">
+        <array zero-terminated="0" fixed-size="-1">
+          <type name="gchar" c:type="char"/>
+        </array>
+      </field>
+    </record>
+    <record name="_MatrixSizeCheck" c:type="_CoglMatrixSizeCheck">
+      <source-position filename="../cogl/cogl/cogl-matrix.h" line="122"/>
+      <field name="compile_time_assert_CoglMatrix_size" writable="1">
+        <array zero-terminated="0" fixed-size="-1">
+          <type name="gchar" c:type="char"/>
+        </array>
+      </field>
+    </record>
+    <record name="_TextureVertexSizeCheck"
+            c:type="_CoglTextureVertexSizeCheck">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="186"/>
+      <field name="compile_time_assert_CoglTextureVertex_size" writable="1">
+        <array zero-terminated="0" fixed-size="-1">
+          <type name="gchar" c:type="char"/>
+        </array>
+      </field>
+    </record>
+    <function name="blend_string_error_quark"
+              c:identifier="cogl_blend_string_error_quark">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="242"/>
+      <return-value transfer-ownership="none">
+        <type name="guint32" c:type="uint32_t"/>
+      </return-value>
+    </function>
+    <function name="blit_framebuffer"
+              c:identifier="cogl_blit_framebuffer"
+              throws="1">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-framebuffer.h"
+           line="1496">@return FALSE for an immediately detected error, TRUE otherwise.
+
+This blits a region of the color buffer of the source buffer
+to the destination buffer. This function should only be
+called if the COGL_FEATURE_ID_BLIT_FRAMEBUFFER feature is
+advertised.
+
+The source and destination rectangles are defined in offscreen
+framebuffer orientation. When copying between an offscreen and
+onscreen framebuffers, the image is y-flipped accordingly.
+
+The two buffers must have the same value types (e.g. floating-point,
+unsigned int, signed int, or fixed-point), but color formats do not
+need to match. This limitation comes from OpenGL ES 3.0 definition
+of glBlitFramebuffer.
+
+Note that this function differs a lot from the glBlitFramebuffer
+function provided by the GL_EXT_framebuffer_blit extension. Notably
+it doesn't support having different sizes for the source and
+destination rectangle. This doesn't seem
+like a particularly useful feature. If the application wanted to
+scale the results it may make more sense to draw a primitive
+instead.
+
+The GL function is documented to be affected by the scissor. This
+function therefore ensure that an empty clip stack is flushed
+before performing the blit which means the scissor is effectively
+ignored.
+
+The function also doesn't support specifying the buffers to copy
+and instead only the color buffer is copied. When copying the depth
+or stencil buffers the extension on GLES2.0 only supports copying
+the full buffer which would be awkward to document with this
+API. If we wanted to support that feature it may be better to have
+a separate function to copy the entire buffer for a given mask.
+
+The @c error argument is optional, it can be NULL. If it is not NULL
+and this function returns FALSE, an error object with a code from
+COGL_SYSTEM_ERROR will be created.</doc>
+      <source-position filename="../cogl/cogl/cogl-framebuffer.h" line="1549"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1498">The source #CoglFramebuffer</doc>
+          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+        <parameter name="dest" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1499">The destination #CoglFramebuffer</doc>
+          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+        <parameter name="src_x" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1500">Source x position</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="src_y" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1501">Source y position</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dst_x" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1502">Destination x position</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dst_y" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1503">Destination y position</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1504">Width of region to copy</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1505">Height of region to copy</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function-macro name="clear_object"
+                    c:identifier="cogl_clear_object"
+                    introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="79">Clears a reference to a #CoglObject.
+
+@object_ptr must not be %NULL.
+
+If the reference is %NULL then this function does nothing.
+Otherwise, the reference count of the object is decreased using
+cogl_object_unref() and the pointer is set to %NULL.</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="91"/>
+      <parameters>
+        <parameter name="object_ptr">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="81">a pointer to a #CoglObject reference</doc>
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function name="clutter_winsys_has_feature_CLUTTER"
+              c:identifier="cogl_clutter_winsys_has_feature_CLUTTER">
+      <source-position filename="../cogl/cogl/deprecated/cogl-clutter.h"
+                       line="41"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature" transfer-ownership="none">
+          <type name="WinsysFeature" c:type="CoglWinsysFeature"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="cogl">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl.h"
+           line="130">General utility functions for COGL.</doc>
+    </docsection>
+    <docsection name="cogl-bitmap">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-bitmap.h"
+           line="60">Cogl allows loading image data into memory as CoglBitmaps without
+loading them immediately into GPU textures.
+
+#CoglBitmap is available since Cogl 1.0</doc>
+    </docsection>
+    <docsection name="cogl-color">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-color.h"
+           line="38">#CoglColor is a simple structure holding the definition of a color such
+that it can be efficiently used by GL</doc>
+    </docsection>
+    <docsection name="cogl-context">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="54">A #CoglContext is the top most sandbox of Cogl state for an
+application or toolkit. Its main purpose is to act as a sandbox
+for the memory management of state objects. Normally an application
+will only create a single context since there is no way to share
+resources between contexts.
+
+For those familiar with OpenGL or perhaps Cairo it should be
+understood that unlike these APIs a Cogl context isn't a rendering
+context as such. In other words Cogl doesn't aim to provide a state
+machine style model for configuring rendering parameters. Most
+rendering state in Cogl is directly associated with user managed
+objects called pipelines and geometry is drawn with a specific
+pipeline object to a framebuffer object and those 3 things fully
+define the state for drawing. This is an important part of Cogl's
+design since it helps you write orthogonal rendering components
+that can all access the same GPU without having to worry about
+what state other components have left you with.
+
+&lt;note&gt;&lt;para&gt;Cogl does not maintain internal references to the context for
+resources that depend on the context so applications. This is to
+help applications control the lifetime a context without us needing to
+introduce special api to handle the breakup of internal circular
+references due to internal resources and caches associated with the
+context.
+
+One a context has been destroyed then all directly or indirectly
+dependent resources will be in an inconsistent state and should not
+be manipulated or queried in any way.
+
+For applications that rely on the operating system to clean up
+resources this policy shouldn't affect them, but for applications
+that need to carefully destroy and re-create Cogl contexts multiple
+times throughout their lifetime (such as Android applications) they
+should be careful to destroy all context dependent resources, such as
+framebuffers or textures etc before unrefing and destroying the
+context.&lt;/para&gt;&lt;/note&gt;</doc>
+    </docsection>
+    <docsection name="cogl-framebuffer">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-framebuffer.h"
+           line="63">Framebuffers are a collection of buffers that can be rendered too.
+A framebuffer may be comprised of one or more color buffers, an
+optional depth buffer and an optional stencil buffer. Other
+configuration parameters are associated with framebuffers too such
+as whether the framebuffer supports multi-sampling (an anti-aliasing
+technique) or dithering.
+
+There are two kinds of framebuffer in Cogl, #CoglOnscreen
+framebuffers and #CoglOffscreen framebuffers. As the names imply
+offscreen framebuffers are for rendering something offscreen
+(perhaps to a texture which is bound as one of the color buffers).
+The exact semantics of onscreen framebuffers depends on the window
+system backend that you are using, but typically you can expect
+rendering to a #CoglOnscreen framebuffer will be immediately
+visible to the user.
+
+If you want to create a new framebuffer then you should start by
+looking at the #CoglOnscreen and #CoglOffscreen constructor
+functions, such as cogl_offscreen_new_with_texture() or
+cogl_onscreen_new(). The #CoglFramebuffer interface deals with
+all aspects that are common between those two types of framebuffer.
+
+Setup of a new CoglFramebuffer happens in two stages. There is a
+configuration stage where you specify all the options and ancillary
+buffers you want associated with your framebuffer and then when you
+are happy with the configuration you can "allocate" the framebuffer
+using cogl_framebuffer_allocate(). Technically explicitly calling
+cogl_framebuffer_allocate() is optional for convenience and the
+framebuffer will automatically be allocated when you first try to
+draw to it, but if you do the allocation manually then you can
+also catch any possible errors that may arise from your
+configuration.</doc>
+    </docsection>
+    <docsection name="cogl-material">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-material-compat.h"
+           line="46">COGL allows creating and manipulating materials used to fill in
+geometry. Materials may simply be lighting attributes (such as an
+ambient and diffuse colour) or might represent one or more textures
+blended together.</doc>
+    </docsection>
+    <docsection name="cogl-matrix">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-matrix.h"
+           line="50">Matrices are used in Cogl to describe affine model-view transforms, texture
+transforms, and projective transforms. This exposes a utility API that can
+be used for direct manipulation of these matrices.</doc>
+    </docsection>
+    <docsection name="cogl-offscreen">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-offscreen.h"
+           line="45">Cogl allows creating and operating on offscreen framebuffers.</doc>
+    </docsection>
+    <docsection name="cogl-pipeline">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline.h"
+           line="51">Cogl allows creating and manipulating objects representing the full
+configuration of the GPU pipeline. In simplified terms the GPU
+pipeline takes primitive geometry as the input, it first performs
+vertex processing, allowing you to deform your geometry, then
+rasterizes that (turning it from pure geometry into fragments) then
+performs fragment processing including depth testing and texture
+mapping. Finally it blends the result with the framebuffer.</doc>
+    </docsection>
+    <docsection name="cogl-pixel-format">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="49">The pixel format of an image descrbes how the bits of each pixel are
+represented in memory. For example: an image can be laid out as one long
+sequence of pixels, where each pixel is a sequence of 8 bits of Red, Green
+and Blue. The amount of bits that are used can be different for each pixel
+format, as well as the components (for example an Alpha layer to include
+transparency, or non_RGBA).
+
+Other examples of factors that can influence the layout in memory are the
+system's endianness.</doc>
+    </docsection>
+    <docsection name="cogl-shaders">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="44">Cogl allows accessing the GL programmable pipeline in order to create
+vertex and fragment shaders.
+
+When using GLSL Cogl provides replacement names for most of the
+builtin varyings and uniforms. It is recommended to use these names
+wherever possible to increase portability between OpenGL 2.0 and
+GLES 2.0. GLES 2.0 does not have most of the builtins under their
+original names so they will only work with the Cogl names.
+
+For use in all GLSL shaders, the Cogl builtins are as follows:
+
+&lt;tip&gt;
+&lt;glosslist&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;uniform mat4
+        &lt;emphasis&gt;cogl_modelview_matrix&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The current modelview matrix. This is equivalent to
+   #gl_ModelViewMatrix.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;uniform mat4
+        &lt;emphasis&gt;cogl_projection_matrix&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The current projection matrix. This is equivalent to
+   #gl_ProjectionMatrix.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;uniform mat4
+        &lt;emphasis&gt;cogl_modelview_projection_matrix&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The combined modelview and projection matrix. A vertex shader
+   would typically use this to transform the incoming vertex
+   position. The separate modelview and projection matrices are
+   usually only needed for lighting calculations. This is
+   equivalent to #gl_ModelViewProjectionMatrix.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;uniform mat4
+        &lt;emphasis&gt;cogl_texture_matrix&lt;/emphasis&gt;[]&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   An array of matrices for transforming the texture
+   coordinates. This is equivalent to #gl_TextureMatrix.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+&lt;/glosslist&gt;
+&lt;/tip&gt;
+
+In a vertex shader, the following are also available:
+
+&lt;tip&gt;
+&lt;glosslist&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;attribute vec4
+        &lt;emphasis&gt;cogl_position_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The incoming vertex position. This is equivalent to #gl_Vertex.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;attribute vec4
+        &lt;emphasis&gt;cogl_color_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The incoming vertex color. This is equivalent to #gl_Color.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;attribute vec4
+        &lt;emphasis&gt;cogl_tex_coord_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The texture coordinate for the first texture unit. This is
+   equivalent to #gl_MultiTexCoord0.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;attribute vec4
+        &lt;emphasis&gt;cogl_tex_coord0_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The texture coordinate for the first texture unit. This is
+   equivalent to #gl_MultiTexCoord0. There is also
+   #cogl_tex_coord1_in and so on.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;attribute vec3
+        &lt;emphasis&gt;cogl_normal_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The normal of the vertex. This is equivalent to #gl_Normal.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;vec4
+        &lt;emphasis&gt;cogl_position_out&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The calculated position of the vertex. This must be written to
+   in all vertex shaders. This is equivalent to #gl_Position.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;float
+        &lt;emphasis&gt;cogl_point_size_out&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The calculated size of a point. This is equivalent to #gl_PointSize.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;varying vec4
+        &lt;emphasis&gt;cogl_color_out&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The calculated color of a vertex. This is equivalent to #gl_FrontColor.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;varying vec4
+        &lt;emphasis&gt;cogl_tex_coord_out&lt;/emphasis&gt;[]&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   An array of calculated texture coordinates for a vertex. This is
+   equivalent to #gl_TexCoord.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+&lt;/glosslist&gt;
+&lt;/tip&gt;
+
+In a fragment shader, the following are also available:
+
+&lt;tip&gt;
+&lt;glosslist&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;varying vec4 &lt;emphasis&gt;cogl_color_in&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The calculated color of a vertex. This is equivalent to #gl_FrontColor.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;varying vec4
+             &lt;emphasis&gt;cogl_tex_coord_in&lt;/emphasis&gt;[]&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   An array of calculated texture coordinates for a vertex. This is
+   equivalent to #gl_TexCoord.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;vec4 &lt;emphasis&gt;cogl_color_out&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   The final calculated color of the fragment. All fragment shaders
+   must write to this variable. This is equivalent to
+   #gl_FrontColor.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;float &lt;emphasis&gt;cogl_depth_out&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   An optional output variable specifying the depth value to use
+   for this fragment. This is equivalent to #gl_FragDepth.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+ &lt;glossentry&gt;
+  &lt;glossterm&gt;bool &lt;emphasis&gt;cogl_front_facing&lt;/emphasis&gt;&lt;/glossterm&gt;
+  &lt;glossdef&gt;&lt;para&gt;
+   A readonly variable that will be true if the current primitive
+   is front facing. This can be used to implement two-sided
+   coloring algorithms. This is equivalent to #gl_FrontFacing.
+  &lt;/para&gt;&lt;/glossdef&gt;
+ &lt;/glossentry&gt;
+&lt;/glosslist&gt;
+&lt;/tip&gt;
+
+It's worth nothing that this API isn't what Cogl would like to have
+in the long term and it may be removed in Cogl 2.0. The
+experimental #CoglShader API is the proposed replacement.</doc>
+    </docsection>
+    <docsection name="cogl-texture">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture.h"
+           line="63">Cogl allows creating and manipulating textures using a uniform
+API that tries to hide all the various complexities of creating,
+loading and manipulating textures.</doc>
+    </docsection>
+    <docsection name="cogl-texture-2d">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture-2d.h"
+           line="49">These functions allow low-level 2D textures to be allocated. These
+differ from sliced textures for example which may internally be
+made up of multiple 2D textures, or atlas textures where Cogl must
+internally modify user texture coordinates before they can be used
+by the GPU.</doc>
+    </docsection>
+    <docsection name="cogl-texture-2d-sliced">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+           line="39">These functions allow high-level meta textures (See the
+#CoglMetaTexture interface) to be allocated that may internally be
+comprised of multiple 2D texture "slices" with power-of-two sizes.
+
+This API can be useful when working with GPUs that don't have
+native support for non-power-of-two textures or if you want to load
+a texture that is larger than the GPUs maximum texture size limits.
+
+The algorithm for slicing works by first trying to map a virtual
+size to the next larger power-of-two size and then seeing how many
+wasted pixels that would result in. For example if you have a
+virtual texture that's 259 texels wide, the next pot size = 512 and
+the amount of waste would be 253 texels. If the amount of waste is
+above a max-waste threshold then we would next slice that texture
+into one that's 256 texels and then looking at how many more texels
+remain unallocated after that we choose the next power-of-two size.
+For the example of a 259 texel image that would mean having a 256
+texel wide texture, leaving 3 texels unallocated so we'd then
+create a 4 texel wide texture - now there is only one texel of
+waste. The algorithm continues to slice the right most textures
+until the amount of waste is less than or equal to a specified
+max-waste threshold. The same logic for slicing from left to right
+is also applied from top to bottom.</doc>
+    </docsection>
+    <docsection name="cogl-types">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-types.h"
+           line="49">General types used by various Cogl functions.</doc>
+    </docsection>
+    <function name="color_equal"
+              c:identifier="cogl_color_equal"
+              moved-to="Color.equal"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-color.h"
+           line="502">Compares two #CoglColor&lt;!-- --&gt;s and checks if they are the same.
+
+This function can be passed to g_hash_table_new() as the @key_equal_func
+parameter, when using #CoglColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+      <source-position filename="../cogl/cogl/cogl-color.h" line="517"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-color.h"
+             line="512">%TRUE if the two colors are the same.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="504">a #CoglColor</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+        <parameter name="v2"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="505">a #CoglColor</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_init_from_hsl"
+              c:identifier="cogl_color_init_from_hsl"
+              moved-to="Color.init_from_hsl"
+              version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-color.h"
+           line="539">Converts a color expressed in HLS (hue, luminance and saturation)
+values into a #CoglColor.</doc>
+      <source-position filename="../cogl/cogl/cogl-color.h" line="552"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="color"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="541">return location for a #CoglColor</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </parameter>
+        <parameter name="hue" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="542">hue value, in the 0 .. 360 range</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="saturation" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="543">saturation value, in the 0 .. 1 range</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="luminance" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-color.h"
+               line="544">luminance value, in the 0 .. 1 range</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="create_program"
+              c:identifier="cogl_create_program"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="298">Create a new cogl program object that can be used to replace parts of the GL
+rendering pipeline with custom code.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="309"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="304">a new cogl program.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+    </function>
+    <function name="create_shader"
+              c:identifier="cogl_create_shader"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="238">Create a new shader handle, use cogl_shader_source() to set the
+source code to be used on it.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="250"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="245">a new shader handle.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="shader_type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="240">COGL_SHADER_TYPE_VERTEX or COGL_SHADER_TYPE_FRAGMENT.</doc>
+          <type name="ShaderType" c:type="CoglShaderType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_matrix_print"
+              c:identifier="cogl_debug_matrix_print"
+              version="2.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-matrix.h"
+           line="713">Prints the contents of a #CoglMatrix to stdout.</doc>
+      <source-position filename="../cogl/cogl/cogl-matrix.h" line="722"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="715">A #CoglMatrix</doc>
+          <type name="Matrix" c:type="const CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_object_foreach_type"
+              c:identifier="cogl_debug_object_foreach_type"
+              version="1.8"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="217">Invokes @func once for each type of object that Cogl uses and
+passes a count of the number of objects for that type. This is
+intended to be used solely for debugging purposes to track down
+issues with objects leaking.</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="231"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="call"
+                   closure="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="219">A callback function for each type</doc>
+          <type name="DebugObjectForeachTypeCallback"
+                c:type="CoglDebugObjectForeachTypeCallback"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-object.h"
+               line="220">A pointer to pass to @func</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_object_print_instances"
+              c:identifier="cogl_debug_object_print_instances"
+              version="1.8"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-object.h"
+           line="234">Prints a list of all the object types that Cogl uses along with the
+number of objects of that type that are currently in use. This is
+intended to be used solely for debugging purposes to track down
+issues with objects leaking.</doc>
+      <source-position filename="../cogl/cogl/cogl-object.h" line="246"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="egl_texture_2d_new_from_image"
+              c:identifier="cogl_egl_texture_2d_new_from_image"
+              introspectable="0"
+              throws="1">
+      <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="224"/>
+      <return-value>
+        <type name="Texture2D" c:type="CoglTexture2D*"/>
+      </return-value>
+      <parameters>
+        <parameter name="ctx" transfer-ownership="none">
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="image" transfer-ownership="none">
+          <type c:type="EGLImageKHR"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="EglImageFlags" c:type="CoglEglImageFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="flush" c:identifier="cogl_flush" version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="141">This function should only need to be called in exceptional circumstances.
+
+As an optimization Cogl drawing functions may batch up primitives
+internally, so if you are trying to use raw GL outside of Cogl you stand a
+better chance of being successful if you ask Cogl to flush any batched
+geometry before making your state changes.
+
+It only ensure that the underlying driver is issued all the commands
+necessary to draw the batched primitives. It provides no guarantees about
+when the driver will complete the rendering.
+
+This provides no guarantees about the GL state upon returning and to avoid
+confusing Cogl you should aim to restore any changes you make before
+resuming use of Cogl.
+
+If you are making state changes with the intention of affecting Cogl drawing
+primitives you are 100% on your own since you stand a good chance of
+conflicting with Cogl internals. For example clutter-gst which currently
+uses direct GL calls to bind ARBfp programs will very likely break when Cogl
+starts to use ARBfb programs itself for the material API.</doc>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="168"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="foreach_feature"
+              c:identifier="cogl_foreach_feature"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="278">Iterates through all the context level features currently supported
+for a given @context and for each feature @callback is called.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="292"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="280">A #CoglContext pointer</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+        <parameter name="callback"
+                   transfer-ownership="none"
+                   scope="call"
+                   closure="2">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="281">A #CoglFeatureCallback called for each
+           supported feature</doc>
+          <type name="FeatureCallback" c:type="CoglFeatureCallback"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="283">Private data to pass to the callback</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="framebuffer_error_quark"
+              c:identifier="cogl_framebuffer_error_quark"
+              moved-to="Framebuffer.error_quark">
+      <source-position filename="../cogl/cogl/cogl-framebuffer.h" line="1468"/>
+      <return-value transfer-ownership="none">
+        <type name="guint32" c:type="uint32_t"/>
+      </return-value>
+    </function>
+    <function name="get_backface_culling_enabled"
+              c:identifier="cogl_get_backface_culling_enabled"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="127">Queries if backface culling has been enabled via
+cogl_set_backface_culling_enabled()</doc>
+      <doc-deprecated xml:space="preserve">Use cogl_pipeline_get_cull_face_mode() instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="139"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl1-context.h"
+             line="133">%TRUE if backface culling is enabled, and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_clock_time"
+              c:identifier="cogl_get_clock_time"
+              version="1.14"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="296">Returns the current time value from Cogl's internal clock. This
+clock is used for measuring times such as the presentation time
+in a #CoglFrameInfo.
+
+This method is meant for converting timestamps retrieved from Cogl
+to other time systems, and is not meant to be used as a standalone
+timing system. For that reason, if this function is called without
+having retrieved a valid (non-zero) timestamp from Cogl first, it
+may return 0 to indicate that Cogl has no active internal clock.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="317"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="310">the time value for the Cogl clock, in nanoseconds
+ from an arbitrary point in time, or 0 if Cogl doesn't have an
+ active internal clock.</doc>
+        <type name="gint64" c:type="int64_t"/>
+      </return-value>
+      <parameters>
+        <parameter name="context" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="298">a #CoglContext pointer</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_depth_test_enabled"
+              c:identifier="cogl_get_depth_test_enabled"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="98">Queries if depth testing has been enabled via cogl_set_depth_test_enable()</doc>
+      <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_depth_state() instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="109"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl1-context.h"
+             line="103">%TRUE if depth testing is enabled, and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_graphics_reset_status"
+              c:identifier="cogl_get_graphics_reset_status">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="341">Returns the graphics reset status as reported by
+GetGraphicsResetStatusARB defined in the ARB_robustness extension.
+
+Note that Cogl doesn't normally enable the ARB_robustness
+extension in which case this will only ever return
+#COGL_GRAPHICS_RESET_STATUS_NO_ERROR.
+
+Applications must explicitly use a backend specific method to
+request that errors get reported such as X11's
+cogl_xlib_renderer_request_reset_on_video_memory_purge().</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="359"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="356">a #CoglGraphicsResetStatus</doc>
+        <type name="GraphicsResetStatus" c:type="CoglGraphicsResetStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="context" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="343">a #CoglContext pointer</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_option_group"
+              c:identifier="cogl_get_option_group"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="47">Retrieves the #GOptionGroup used by Cogl to parse the command
+line options. Clutter uses this to handle the Cogl command line
+options during its initialization process.</doc>
+      <doc-deprecated xml:space="preserve">Not replaced</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="61"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl1-context.h"
+             line="54">a #GOptionGroup</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_proc_address"
+              c:identifier="cogl_get_proc_address"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="64">Gets a pointer to a given GL or GL ES extension function. This acts
+as a wrapper around glXGetProcAddress() or whatever is the
+appropriate function for the current backend.
+
+&lt;note&gt;This function should not be used to query core opengl API
+symbols since eglGetProcAddress for example doesn't allow this and
+and may return a junk pointer if you do.&lt;/note&gt;</doc>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="80"/>
+      <return-value>
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl1-context.h"
+             line="76">a pointer to the requested function or %NULL if the
+  function is not available.</doc>
+        <type name="GObject.Callback" c:type="GCallback"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl1-context.h"
+               line="66">the name of the function.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gtype_matrix_get_type"
+              c:identifier="cogl_gtype_matrix_get_type"
+              deprecated="1"
+              deprecated-version="1.18">
+      <doc-deprecated xml:space="preserve">Use cogl_matrix_get_gtype() instead.</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl-matrix.h" line="744"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-matrix.h"
+             line="737">the GType for the registered "CoglMatrix" boxed type. This
+can be used for example to define GObject properties that accept a
+#CoglMatrix value.</doc>
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="handle_get_type" c:identifier="cogl_handle_get_type">
+      <source-position filename="../cogl/cogl/cogl-types.h" line="86"/>
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="has_feature"
+              c:identifier="cogl_has_feature"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="224">Checks if a given @feature is currently available
+
+Cogl does not aim to be a lowest common denominator API, it aims to
+expose all the interesting features of GPUs to application which
+means applications have some responsibility to explicitly check
+that certain features are available before depending on them.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="243"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="236">%TRUE if the @feature is currently supported or %FALSE if
+not.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="226">A #CoglContext pointer</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+        <parameter name="feature" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="227">A #CoglFeatureID</doc>
+          <type name="FeatureID" c:type="CoglFeatureID"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="has_features"
+              c:identifier="cogl_has_features"
+              version="1.10"
+              introspectable="0"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="245">Checks if a list of features are all currently available.
+
+This checks all of the listed features using cogl_has_feature() and
+returns %TRUE if all the features are available or %FALSE
+otherwise.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="263"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="256">%TRUE if all the features are available, %FALSE
+otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="247">A #CoglContext pointer</doc>
+          <type name="Context" c:type="CoglContext*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="248">A 0 terminated list of CoglFeatureID&lt;!-- --&gt;s</doc>
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_bitmap" c:identifier="cogl_is_bitmap" version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-bitmap.h"
+           line="256">Checks whether @object is a #CoglBitmap</doc>
+      <source-position filename="../cogl/cogl/cogl-bitmap.h" line="268"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-bitmap.h"
+             line="262">%TRUE if the passed @object represents a bitmap,
+  and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-bitmap.h"
+               line="258">a #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_context"
+              c:identifier="cogl_is_context"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-context.h"
+           line="159">Gets whether the given object references an existing context object.</doc>
+      <source-position filename="../cogl/cogl/cogl-context.h" line="172"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-context.h"
+             line="165">%TRUE if the @object references a #CoglContext,
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-context.h"
+               line="161">An object or %NULL</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_frame_info"
+              c:identifier="cogl_is_frame_info"
+              version="2.0"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-frame-info.h"
+           line="64">Gets whether the given object references a #CoglFrameInfo.</doc>
+      <source-position filename="../cogl/cogl/cogl-frame-info.h" line="76"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-frame-info.h"
+             line="70">%TRUE if the object references a #CoglFrameInfo
+  and %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-frame-info.h"
+               line="66">A #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_framebuffer"
+              c:identifier="cogl_is_framebuffer"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-framebuffer.h"
+           line="1482">Gets whether the given object references a #CoglFramebuffer.</doc>
+      <source-position filename="../cogl/cogl/cogl-framebuffer.h" line="1494"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-framebuffer.h"
+             line="1488">%TRUE if the object references a #CoglFramebuffer
+  and %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-framebuffer.h"
+               line="1484">A #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_offscreen" c:identifier="cogl_is_offscreen">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-offscreen.h"
+           line="126">Determines whether the given #CoglObject references an offscreen
+framebuffer object.</doc>
+      <source-position filename="../cogl/cogl/cogl-offscreen.h" line="137"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-offscreen.h"
+             line="133">%TRUE if @object is a #CoglOffscreen framebuffer,
+         %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-offscreen.h"
+               line="128">A pointer to a #CoglObject</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_onscreen"
+              c:identifier="cogl_is_onscreen"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="753">Gets whether the given object references a #CoglOnscreen.</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="765"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-onscreen.h"
+             line="759">%TRUE if the object references a #CoglOnscreen
+  and %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="755">A #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_pipeline"
+              c:identifier="cogl_is_pipeline"
+              version="2.0"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pipeline.h"
+           line="111">Gets whether the given @object references an existing pipeline object.</doc>
+      <source-position filename="../cogl/cogl/cogl-pipeline.h" line="124"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pipeline.h"
+             line="117">%TRUE if the @object references a #CoglPipeline,
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pipeline.h"
+               line="113">A #CoglObject</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_program"
+              c:identifier="cogl_is_program"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="311">Gets whether the given handle references an existing program object.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="324"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="317">%TRUE if the handle references a program,
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="313">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_shader"
+              c:identifier="cogl_is_shader"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="252">Gets whether the given handle references an existing shader object.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="264"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="258">%TRUE if the handle references a shader,
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="254">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture" c:identifier="cogl_is_texture">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture.h"
+           line="115">Gets whether the given object references a texture object.</doc>
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="125"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture.h"
+             line="121">%TRUE if the @object references a texture, and
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture.h"
+               line="117">A #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture_2d" c:identifier="cogl_is_texture_2d">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture-2d.h"
+           line="77">Gets whether the given object references an existing #CoglTexture2D
+object.</doc>
+      <source-position filename="../cogl/cogl/cogl-texture-2d.h" line="88"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d.h"
+             line="84">%TRUE if the object references a #CoglTexture2D,
+  %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d.h"
+               line="79">A #CoglObject</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture_2d_sliced"
+              c:identifier="cogl_is_texture_2d_sliced"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+           line="286">Gets whether the given object references a #CoglTexture2DSliced.</doc>
+      <source-position filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+                       line="298"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+             line="292">%TRUE if the object references a #CoglTexture2DSliced
+  and %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-texture-2d-sliced.h"
+               line="288">A #CoglObject pointer</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_equal"
+              c:identifier="cogl_matrix_equal"
+              moved-to="Matrix.equal"
+              version="1.4">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-matrix.h"
+           line="488">Compares two matrices to see if they represent the same
+transformation. Although internally the matrices may have different
+annotations associated with them and may potentially have a cached
+inverse matrix these are not considered in the comparison.</doc>
+      <source-position filename="../cogl/cogl/cogl-matrix.h" line="501"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="490">A 4x4 transformation matrix</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+        <parameter name="v2"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-matrix.h"
+               line="491">A 4x4 transformation matrix</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pixel_format_get_bytes_per_pixel"
+              c:identifier="cogl_pixel_format_get_bytes_per_pixel">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="263">Queries the number of bytes per pixel for a given format in the given plane.</doc>
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="274"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="271">The number of bytes per pixel in the given format's given plane.</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pixel-format.h"
+               line="265">The pixel format</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="plane" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pixel-format.h"
+               line="266">The index of the plane (should not be more than the number of planes
+        in the given format).</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pixel_format_get_n_planes"
+              c:identifier="cogl_pixel_format_get_n_planes">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="316">Returns the number of planes the given CoglPixelFormat specifies.</doc>
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="325"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="322">The no. of planes of @format (at most %COGL_PIXEL_FORMAT_MAX_PLANES)</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pixel-format.h"
+               line="318">The format for which to get the number of planes</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pixel_format_to_string"
+              c:identifier="cogl_pixel_format_to_string">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-pixel-format.h"
+           line="327">Returns a string representation of @format, useful for debugging purposes.</doc>
+      <source-position filename="../cogl/cogl/cogl-pixel-format.h" line="336"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-pixel-format.h"
+             line="333">A string representation of @format.</doc>
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-pixel-format.h"
+               line="329">a #CoglPixelFormat</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_attach_shader"
+              c:identifier="cogl_program_attach_shader"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="326">Attaches a shader to a program object. A program can have multiple
+vertex or fragment shaders but only one of them may provide a
+main() function. It is allowed to use a program with only a vertex
+shader or only a fragment shader.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="340"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program_handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="328">a #CoglHandle for a shdaer program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="shader_handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="329">a #CoglHandle for a vertex of fragment shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_get_uniform_location"
+              c:identifier="cogl_program_get_uniform_location"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="357">Retrieve the location (offset) of a uniform variable in a shader program,
+a uniform is a variable that is constant for all vertices/fragments for a
+shader object and is possible to modify as an external parameter.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="371"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="366">the offset of a uniform in a specified program.</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="359">a #CoglHandle for a shader program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="360">the name of a uniform.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_link"
+              c:identifier="cogl_program_link"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="343">Links a program making it ready for use. Note that calling this
+function is optional. If it is not called the program will
+automatically be linked the first time it is used.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="355"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="345">a #CoglHandle for a shader program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_1f"
+              c:identifier="cogl_program_set_uniform_1f"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="374">Changes the value of a floating point uniform for the given linked
+@program.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="389"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="376">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="377">the uniform location retrieved from
+   cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="379">the new value of the uniform.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_1i"
+              c:identifier="cogl_program_set_uniform_1i"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="393">Changes the value of an integer uniform for the given linked
+@program.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="408"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="395">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="396">the uniform location retrieved from
+   cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="398">the new value of the uniform.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_float"
+              c:identifier="cogl_program_set_uniform_float"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="412">Changes the value of a float vector uniform, or uniform array for
+the given linked @program.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="431"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="414">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="415">the uniform location retrieved from
+   cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="n_components" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="417">The number of components for the uniform. For
+example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="419">For uniform arrays this is the array length otherwise just
+pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="421">the new value of the uniform[s].</doc>
+          <array length="3" zero-terminated="0" c:type="const float*">
+            <type name="gfloat" c:type="float"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_int"
+              c:identifier="cogl_program_set_uniform_int"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="437">Changes the value of a int vector uniform, or uniform array for
+the given linked @program.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="456"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="439">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="440">the uniform location retrieved from
+   cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="n_components" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="442">The number of components for the uniform. For
+example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="444">For uniform arrays this is the array length otherwise just
+pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="446">the new value of the uniform[s].</doc>
+          <array length="3" zero-terminated="0" c:type="const int*">
+            <type name="gint" c:type="int"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_matrix"
+              c:identifier="cogl_program_set_uniform_matrix"
+              version="1.4"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="462">Changes the value of a matrix uniform, or uniform array in the
+given linked @program.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="482"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="464">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="465">the uniform location retrieved from
+   cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dimensions" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="467">The dimensions of the matrix. So for for example pass
+   2 for a 2x2 matrix or 3 for 3x3.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="469">For uniform arrays this is the array length otherwise just
+pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="transpose" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="471">Whether to transpose the matrix when setting the uniform.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="472">the new value of the uniform.</doc>
+          <array length="3" zero-terminated="0" c:type="const float*">
+            <type name="gfloat" c:type="float"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_backface_culling_enabled"
+              c:identifier="cogl_set_backface_culling_enabled"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="111">Sets whether textures positioned so that their backface is showing
+should be hidden. This can be used to efficiently draw two-sided
+textures or fully closed cubes without enabling depth testing. This
+only affects calls to the cogl_rectangle* family of functions and
+cogl_vertex_buffer_draw*. Backface culling is disabled by default.</doc>
+      <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_cull_face_mode() instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="125"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="setting" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl1-context.h"
+               line="113">%TRUE to enable backface culling or %FALSE to disable.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_depth_test_enabled"
+              c:identifier="cogl_set_depth_test_enabled"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl1-context.h"
+           line="82">Sets whether depth testing is enabled. If it is disabled then the
+order that actors are layered on the screen depends solely on the
+order specified using clutter_actor_raise() and
+clutter_actor_lower(), otherwise it will also take into account the
+actor's depth. Depth testing is disabled by default.</doc>
+      <doc-deprecated xml:space="preserve">Use cogl_pipeline_set_depth_state() instead</doc-deprecated>
+      <source-position filename="../cogl/cogl/cogl1-context.h" line="96"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="setting" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl1-context.h"
+               line="84">%TRUE to enable depth testing or %FALSE to disable.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_tracing_disabled_on_thread"
+              c:identifier="cogl_set_tracing_disabled_on_thread">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="57"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="main_context" transfer-ownership="none">
+          <type name="GLib.MainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_tracing_enabled_on_thread"
+              c:identifier="cogl_set_tracing_enabled_on_thread">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="52"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="main_context" transfer-ownership="none">
+          <type name="GLib.MainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="group" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="filename" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_tracing_enabled_on_thread_with_fd"
+              c:identifier="cogl_set_tracing_enabled_on_thread_with_fd">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="47"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="main_context" transfer-ownership="none">
+          <type name="GLib.MainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="group" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="fd" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_get_type"
+              c:identifier="cogl_shader_get_type"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="284">Retrieves the type of a shader #CoglHandle</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="296"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-shader.h"
+             line="290">%COGL_SHADER_TYPE_VERTEX if the shader is a vertex processor
+         or %COGL_SHADER_TYPE_FRAGMENT if the shader is a frament processor</doc>
+        <type name="ShaderType" c:type="CoglShaderType"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="286">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_source"
+              c:identifier="cogl_shader_source"
+              deprecated="1"
+              deprecated-version="1.16">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-shader.h"
+           line="266">Replaces the current source associated with a shader with a new
+one.
+
+Please see &lt;link
+linkend="cogl-Shaders-and-Programmable-Pipeline.description"&gt;above&lt;/link&gt;
+for a description of the recommended format for the shader code.</doc>
+      <doc-deprecated xml:space="preserve">Use #CoglSnippet api</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-shader.h"
+                       line="281"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="shader" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="268">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="source" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-shader.h"
+               line="269">Shader source.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_error_quark"
+              c:identifier="cogl_texture_error_quark"
+              moved-to="Texture.error_quark">
+      <source-position filename="../cogl/cogl/cogl-texture.h" line="113"/>
+      <return-value transfer-ownership="none">
+        <type name="guint32" c:type="uint32_t"/>
+      </return-value>
+    </function>
+    <function name="texture_new_from_bitmap"
+              c:identifier="cogl_texture_new_from_bitmap"
+              moved-to="Texture.new_from_bitmap"
+              version="1.0"
+              deprecated="1"
+              deprecated-version="1.18">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+           line="128">Creates a #CoglTexture from a #CoglBitmap.</doc>
+      <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_bitmap()</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                       line="146"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="137">A newly created #CoglTexture or
+              %NULL on failure</doc>
+        <type name="Texture" c:type="CoglTexture*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bitmap" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="130">A #CoglBitmap pointer</doc>
+          <type name="Bitmap" c:type="CoglBitmap*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="131">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="132">the #CoglPixelFormat to use for the GPU storage of the
+texture</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_data"
+              c:identifier="cogl_texture_new_from_data"
+              moved-to="Texture.new_from_data"
+              version="0.8"
+              deprecated="1"
+              deprecated-version="1.18">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+           line="91">Creates a new #CoglTexture based on data residing in memory.</doc>
+      <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_data()</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                       line="120"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="111">A newly created #CoglTexture or
+              %NULL on failure</doc>
+        <type name="Texture" c:type="CoglTexture*"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="93">width of texture in pixels</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="94">height of texture in pixels</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="95">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="96">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="97">the #CoglPixelFormat that will be used for storing
+   the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a
+   premultiplied format similar to the format of the source data will
+   be used. The default blending equations of Cogl expect premultiplied
+   color data; the main use of passing a non-premultiplied format here
+   is if you have non-premultiplied source data and are going to adjust
+   the blend mode (see cogl_material_set_blend()) or use the data for
+   something other than straight blending.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="105">the memory offset in bytes between the starts of
+   scanlines in @data</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="107">pointer the memory region where the source buffer resides</doc>
+          <array zero-terminated="0" c:type="const uint8_t*">
+            <type name="guint8" c:type="uint8_t"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_file"
+              c:identifier="cogl_texture_new_from_file"
+              moved-to="Texture.new_from_file"
+              version="0.8"
+              deprecated="1"
+              deprecated-version="1.18"
+              throws="1">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+           line="61">Creates a #CoglTexture from an image file.</doc>
+      <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_from_file()</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                       line="86"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="77">A newly created #CoglTexture or
+              %NULL on failure</doc>
+        <type name="Texture" c:type="CoglTexture*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="63">the file to load</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="64">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="65">the #CoglPixelFormat to use for the GPU storage of the
+   texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied
+   format similar to the format of the source data will be used. The
+   default blending equations of Cogl expect premultiplied color data;
+   the main use of passing a non-premultiplied format here is if you
+   have non-premultiplied source data and are going to adjust the blend
+   mode (see cogl_material_set_blend()) or use the data for something
+   other than straight blending.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_with_size"
+              c:identifier="cogl_texture_new_with_size"
+              moved-to="Texture.new_with_size"
+              version="0.8"
+              deprecated="1"
+              deprecated-version="1.18">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+           line="38">Creates a new #CoglTexture with the specified dimensions and pixel format.</doc>
+      <doc-deprecated xml:space="preserve">Use specific constructors such as
+                  cogl_texture_2d_new_with_size()</doc-deprecated>
+      <source-position filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+                       line="56"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+             line="48">A newly created #CoglTexture or %NULL on failure</doc>
+        <type name="Texture" c:type="CoglTexture*"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="40">width of texture in pixels.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="41">height of texture in pixels.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="42">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/deprecated/cogl-auto-texture.h"
+               line="43">the #CoglPixelFormat to use for the GPU storage of the
+   texture.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trace_end" c:identifier="cogl_trace_end">
+      <source-position filename="../cogl/cogl/cogl-trace.h" line="68"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="head" transfer-ownership="none">
+          <type name="TraceHead" c:type="CoglTraceHead*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="x11_onscreen_get_window_xid"
+              c:identifier="cogl_x11_onscreen_get_window_xid"
+              version="1.10"
+              stability="Unstable">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-onscreen.h"
+           line="81">Assuming you know the given @onscreen framebuffer is based on an x11 window
+this queries the XID of that window. If
+cogl_x11_onscreen_set_foreign_window_xid() was previously called then it
+will return that same XID otherwise it will be the XID of a window Cogl
+created internally. If the window has not been allocated yet and a foreign
+xid has not been set then it's undefined what value will be returned.
+
+It's undefined what this function does if called when not using an x11 based
+renderer.</doc>
+      <source-position filename="../cogl/cogl/cogl-onscreen.h" line="99"/>
+      <return-value transfer-ownership="none">
+        <type name="guint32" c:type="uint32_t"/>
+      </return-value>
+      <parameters>
+        <parameter name="onscreen" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-onscreen.h"
+               line="83">A #CoglOnscreen framebuffer</doc>
+          <type name="Onscreen" c:type="CoglOnscreen*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_add_filter"
+              c:identifier="cogl_xlib_renderer_add_filter"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-xlib-renderer.h"
+           line="92">Adds a callback function that will receive all native events. The
+function can stop further processing of the event by return
+%COGL_FILTER_REMOVE.</doc>
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="103"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="94">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="95">the callback function</doc>
+          <type name="XlibFilterFunc" c:type="CoglXlibFilterFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="96">user data passed to @func when called</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_get_display"
+              c:identifier="cogl_xlib_renderer_get_display"
+              introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="152"/>
+      <return-value>
+        <type c:type="Display*"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_get_foreign_display"
+              c:identifier="cogl_xlib_renderer_get_foreign_display"
+              introspectable="0">
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="130"/>
+      <return-value>
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-xlib-renderer.h"
+             line="125">the foreign Xlib display that will be used by any Xlib based
+winsys backend. The display needs to be set with
+cogl_xlib_renderer_set_foreign_display() before this function is called.</doc>
+        <type c:type="Display*"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="123">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_handle_event"
+              c:identifier="cogl_xlib_renderer_handle_event"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-xlib-renderer.h"
+           line="60">This function processes a single event; it can be used to hook into
+external event retrieval (for example that done by Clutter or
+GDK).</doc>
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h" line="76"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl/cogl-xlib-renderer.h"
+             line="69">#CoglFilterReturn. %COGL_FILTER_REMOVE indicates that
+Cogl has internally handled the event and the caller should do no
+further processing. %COGL_FILTER_CONTINUE indicates that Cogl is
+either not interested in the event, or has used the event to update
+internal state without taking any exclusive action.</doc>
+        <type name="FilterReturn" c:type="CoglFilterReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="62">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+        <parameter name="event" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="63">pointer to an XEvent structure</doc>
+          <type c:type="XEvent*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_remove_filter"
+              c:identifier="cogl_xlib_renderer_remove_filter"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-xlib-renderer.h"
+           line="107">Removes a callback that was previously added with
+cogl_xlib_renderer_add_filter().</doc>
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="117"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="109">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="110">the callback function</doc>
+          <type name="XlibFilterFunc" c:type="CoglXlibFilterFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="111">user data given when the callback was installed</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_request_reset_on_video_memory_purge"
+              c:identifier="cogl_xlib_renderer_request_reset_on_video_memory_purge"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-xlib-renderer.h"
+           line="154">Sets whether Cogl should make use of the
+NV_robustness_video_memory_purge extension, if exposed by the
+driver, by initializing the GLX context appropriately.
+
+The extension is only useful when running on certain versions of
+the NVIDIA driver. Quoting from the spec:
+
+"The NVIDIA OpenGL driver architecture on Linux has a limitation:
+ resources located in video memory are not persistent across certain
+ events. VT switches, suspend/resume events, and mode switching
+ events may erase the contents of video memory. Any resource that
+ is located exclusively in video memory, such as framebuffer objects
+ (FBOs), will be lost."
+
+"This extension provides a way for applications to discover when video
+ memory content has been lost, so that the application can re-populate
+ the video memory content as necessary."
+
+"Any driver that exposes this extension is a driver that considers
+ video memory to be volatile. Once the driver stack has been
+ improved, the extension will no longer be exposed."
+
+cogl_get_graphics_reset_status() needs to be called at least once
+every frame to find out if video memory was purged.
+
+Note that this doesn't cause Cogl to enable robust buffer access
+but other context reset errors may still happen and be reported via
+cogl_get_graphics_reset_status() if external factors cause the
+driver to trigger them.
+
+This defaults to %FALSE and is effective only if called before
+cogl_display_setup() .</doc>
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="193"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="156">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+        <parameter name="enable" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="157">The new value</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xlib_renderer_set_foreign_display"
+              c:identifier="cogl_xlib_renderer_set_foreign_display"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl/cogl-xlib-renderer.h"
+           line="132">Sets a foreign Xlib display that Cogl will use for and Xlib based winsys
+backend.
+
+Note that calling this function will automatically disable Cogl's
+event retrieval. Cogl still needs to see all of the X events so the
+application should also use cogl_xlib_renderer_handle_event() if it
+uses this function.</doc>
+      <source-position filename="../cogl/cogl/cogl-xlib-renderer.h"
+                       line="145"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="renderer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl/cogl-xlib-renderer.h"
+               line="134">a #CoglRenderer</doc>
+          <type c:type="CoglRenderer*"/>
+        </parameter>
+        <parameter name="display" transfer-ownership="none">
+          <type c:type="Display*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/CoglPango-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/CoglPango-7.gir
new file mode 100644
index 00000000..aa926b91
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/CoglPango-7.gir
@@ -0,0 +1,377 @@
+<?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="Cogl" version="7"/>
+  <include name="Pango" version="1.0"/>
+  <include name="PangoCairo" version="1.0"/>
+  <c:include name="cogl-pango.h"/>
+  <namespace name="CoglPango"
+             version="7"
+             shared-library="libmutter-cogl-pango-7.so.0"
+             c:identifier-prefixes="CoglPango"
+             c:symbol-prefixes="cogl_pango">
+    <alias name="FontMap" c:type="CoglPangoFontMap">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="67"/>
+      <type name="PangoCairo.FontMap" c:type="PangoCairoFontMap"/>
+    </alias>
+    <function-macro name="FONT_MAP"
+                    c:identifier="COGL_PANGO_FONT_MAP"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="64"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_FONT_MAP"
+                    c:identifier="COGL_PANGO_IS_FONT_MAP"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="65"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RENDERER"
+                    c:identifier="COGL_PANGO_IS_RENDERER"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="222"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_RENDERER_CLASS"
+                    c:identifier="COGL_PANGO_IS_RENDERER_CLASS"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="223"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RENDERER"
+                    c:identifier="COGL_PANGO_RENDERER"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="220"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RENDERER_CLASS"
+                    c:identifier="COGL_PANGO_RENDERER_CLASS"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="221"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="RENDERER_GET_CLASS"
+                    c:identifier="COGL_PANGO_RENDERER_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="224"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Renderer"
+           c:symbol-prefix="renderer"
+           c:type="CoglPangoRenderer"
+           parent="Pango.Renderer"
+           glib:type-name="CoglPangoRenderer"
+           glib:get-type="cogl_pango_renderer_get_type"
+           glib:type-struct="RendererClass">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="228"/>
+      <property name="context"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gpointer" c:type="gpointer"/>
+      </property>
+    </class>
+    <record name="RendererClass"
+            c:type="CoglPangoRendererClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Renderer">
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="228"/>
+    </record>
+    <function name="ensure_glyph_cache_for_layout"
+              c:identifier="cogl_pango_ensure_glyph_cache_for_layout"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="120">This updates any internal glyph cache textures as necessary to be
+able to render the given @layout.
+
+This api should be used to avoid mid-scene modifications of
+glyph-cache textures which can lead to undefined rendering results.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="133"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="layout" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="122">A #PangoLayout</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_clear_glyph_cache"
+              c:identifier="cogl_pango_font_map_clear_glyph_cache"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="109">Clears the glyph cache for @font_map.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="118"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="111">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_create_context"
+              c:identifier="cogl_pango_font_map_create_context">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="81">Create a #PangoContext for the given @font_map.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="90"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl-pango/cogl-pango.h"
+             line="87">the newly created context: free with g_object_unref().</doc>
+        <type name="Pango.Context" c:type="PangoContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="83">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_get_renderer"
+              c:identifier="cogl_pango_font_map_get_renderer"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="163">Retrieves the #CoglPangoRenderer for the passed @font_map.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="174"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl-pango/cogl-pango.h"
+             line="169">a #PangoRenderer</doc>
+        <type name="Pango.Renderer" c:type="PangoRenderer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="165">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_get_use_mipmapping"
+              c:identifier="cogl_pango_font_map_get_use_mipmapping"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="149">Retrieves whether the #CoglPangoRenderer used by @font_map will use
+mipmapping when rendering the glyphs.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="161"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl-pango/cogl-pango.h"
+             line="156">%TRUE if mipmapping is used, %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="151">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_new"
+              c:identifier="cogl_pango_font_map_new"
+              version="1.14">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="69">Creates a new font map.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="79"/>
+      <return-value transfer-ownership="full">
+        <doc xml:space="preserve"
+             filename="../cogl/cogl-pango/cogl-pango.h"
+             line="74">the newly created #PangoFontMap</doc>
+        <type name="Pango.FontMap" c:type="PangoFontMap*"/>
+      </return-value>
+    </function>
+    <function name="font_map_set_resolution"
+              c:identifier="cogl_pango_font_map_set_resolution"
+              version="1.14">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="92">Sets the resolution for the @font_map. This is a scale factor
+between points specified in a #PangoFontDescription and Cogl units.
+The default value is %96, meaning that a 10 point font will be 13
+units high. (10 * 96. / 72. = 13.3).</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="106"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="94">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+        <parameter name="dpi" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="95">The resolution in "dots per inch". (Physical inches aren't
+      actually involved; the terminology is conventional.)</doc>
+          <type name="gdouble" c:type="double"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="font_map_set_use_mipmapping"
+              c:identifier="cogl_pango_font_map_set_use_mipmapping"
+              version="1.0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="135">Sets whether the renderer for the passed font map should use
+mipmapping when rendering a #PangoLayout.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="146"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="font_map" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="137">a #CoglPangoFontMap</doc>
+          <type name="FontMap" c:type="CoglPangoFontMap*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="138">%TRUE to enable the use of mipmapping</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="show_layout"
+              c:identifier="cogl_pango_show_layout"
+              version="1.14"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="176">Draws a solidly coloured @layout on the given @framebuffer at (@x,
+@y) within the @framebuffer&lt;!-- --&gt;'s current model-view coordinate
+space.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="191"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="framebuffer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="178">A #CoglFramebuffer to draw too.</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+        <parameter name="layout" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="179">a #PangoLayout</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </parameter>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="180">X coordinate to render the layout at</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="181">Y coordinate to render the layout at</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="182">color to use when rendering the layout</doc>
+          <type name="Cogl.Color" c:type="const CoglColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="show_layout_line"
+              c:identifier="cogl_pango_show_layout_line"
+              version="1.14"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../cogl/cogl-pango/cogl-pango.h"
+           line="197">Draws a solidly coloured @line on the given @framebuffer at (@x,
+@y) within the @framebuffer&lt;!-- --&gt;'s current model-view coordinate
+space.</doc>
+      <source-position filename="../cogl/cogl-pango/cogl-pango.h" line="212"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="framebuffer" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="199">A #CoglFramebuffer to draw too.</doc>
+          <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+        <parameter name="line" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="200">a #PangoLayoutLine</doc>
+          <type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
+        </parameter>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="201">X coordinate to render the line at</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="202">Y coordinate to render the line at</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../cogl/cogl-pango/cogl-pango.h"
+               line="203">color to use when rendering the line</doc>
+          <type name="Cogl.Color" c:type="const CoglColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/lib/docs/scrapers/gnome/girs/mutter-7/Meta-7.gir 
b/lib/docs/scrapers/gnome/girs/mutter-7/Meta-7.gir
new file mode 100644
index 00000000..a9ed8059
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/mutter-7/Meta-7.gir
@@ -0,0 +1,15953 @@
+<?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="Clutter" version="7"/>
+  <include name="Cogl" version="7"/>
+  <include name="CoglPango" version="7"/>
+  <include name="GDesktopEnums" version="3.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gdk" version="3.0"/>
+  <include name="Gtk" version="3.0"/>
+  <include name="xfixes" version="4.0"/>
+  <include name="xlib" version="2.0"/>
+  <namespace name="Meta"
+             version="7"
+             shared-library="libmutter-7.so.0"
+             c:identifier-prefixes="Meta"
+             c:symbol-prefixes="meta">
+    <function-macro name="BARRIER"
+                    c:identifier="META_BARRIER"
+                    introspectable="0">
+      <source-position filename="../src/meta/barrier.h" line="13"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BARRIER_CLASS"
+                    c:identifier="META_BARRIER_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/barrier.h" line="14"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="BARRIER_GET_CLASS"
+                    c:identifier="META_BARRIER_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/barrier.h" line="17"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="Backend"
+           c:symbol-prefix="backend"
+           c:type="MetaBackend"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="MetaBackend"
+           glib:get-type="meta_backend_get_type"
+           glib:type-struct="BackendClass">
+      <source-position filename="../src/meta/meta-backend.h" line="36"/>
+      <implements name="Gio.Initable"/>
+      <method name="get_dnd" c:identifier="meta_backend_get_dnd">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-backend.c"
+             line="1419">Gets the global #MetaDnd that's managed by this backend.</doc>
+        <source-position filename="../src/meta/meta-backend.h" line="59"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-backend.c"
+               line="1425">the #MetaDnd</doc>
+          <type name="Dnd" c:type="MetaDnd*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-backend.c"
+                 line="1421">A #MetaDnd</doc>
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_remote_access_controller"
+              c:identifier="meta_backend_get_remote_access_controller">
+        <source-position filename="../src/meta/meta-backend.h" line="65"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-backend.c"
+               line="1140">The #MetaRemoteAccessController</doc>
+          <type name="RemoteAccessController"
+                c:type="MetaRemoteAccessController*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-backend.c"
+                 line="1138">A #MetaBackend</doc>
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_settings"
+              c:identifier="meta_backend_get_settings"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-backend.h" line="62"/>
+        <return-value>
+          <type name="Settings" c:type="MetaSettings*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stage" c:identifier="meta_backend_get_stage">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-backend.c"
+             line="1251">Gets the global #ClutterStage that's managed by this backend.</doc>
+        <source-position filename="../src/meta/meta-backend.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-backend.c"
+               line="1257">the #ClutterStage</doc>
+          <type name="Clutter.Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-backend.c"
+                 line="1253">A #MetaBackend</doc>
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_rendering_hardware_accelerated"
+              c:identifier="meta_backend_is_rendering_hardware_accelerated">
+        <source-position filename="../src/meta/meta-backend.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-backend.c"
+               line="1158">%TRUE if the rendering is hardware accelerated, otherwise
+%FALSE.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-backend.c"
+                 line="1156">A #MetaBackend</doc>
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="lock_layout_group"
+              c:identifier="meta_backend_lock_layout_group">
+        <source-position filename="../src/meta/meta-backend.h" line="48"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_keymap" c:identifier="meta_backend_set_keymap">
+        <source-position filename="../src/meta/meta-backend.h" line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+          <parameter name="layouts" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="variants" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="options" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_numlock" c:identifier="meta_backend_set_numlock">
+        <source-position filename="../src/meta/meta-backend.h" line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="backend" transfer-ownership="none">
+            <type name="Backend" c:type="MetaBackend*"/>
+          </instance-parameter>
+          <parameter name="numlock_state" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="gpu-added" when="last" introspectable="0">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gpu" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-backend.c"
+                 line="778">the #MetaGpu</doc>
+            <type/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="keymap-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="keymap-layout-group-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="last-device-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Clutter.InputDevice"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="lid-is-closed-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BackendClass"
+            c:type="MetaBackendClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Backend">
+      <source-position filename="../src/meta/meta-backend.h" line="36"/>
+    </record>
+    <class name="Background"
+           c:symbol-prefix="background"
+           c:type="MetaBackground"
+           parent="GObject.Object"
+           glib:type-name="MetaBackground"
+           glib:get-type="meta_background_get_type"
+           glib:type-struct="BackgroundClass">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-background.h"
+           line="29">This class handles tracking and painting the root window background.
+By integrating with #MetaWindowGroup we can avoid painting parts of
+the background that are obscured by other windows.</doc>
+      <source-position filename="../src/meta/meta-background.h" line="40"/>
+      <constructor name="new" c:identifier="meta_background_new">
+        <source-position filename="../src/meta/meta-background.h" line="50"/>
+        <return-value transfer-ownership="full">
+          <type name="Background" c:type="MetaBackground*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="refresh_all" c:identifier="meta_background_refresh_all">
+        <source-position filename="../src/meta/meta-background.h" line="47"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </function>
+      <method name="set_blend" c:identifier="meta_background_set_blend">
+        <source-position filename="../src/meta/meta-background.h" line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Background" c:type="MetaBackground*"/>
+          </instance-parameter>
+          <parameter name="file1" transfer-ownership="none">
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+          <parameter name="file2" transfer-ownership="none">
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+          <parameter name="blend_factor" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="style" transfer-ownership="none">
+            <type name="GDesktopEnums.BackgroundStyle"
+                  c:type="GDesktopBackgroundStyle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color" c:identifier="meta_background_set_color">
+        <source-position filename="../src/meta/meta-background.h" line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Background" c:type="MetaBackground*"/>
+          </instance-parameter>
+          <parameter name="color" transfer-ownership="none">
+            <type name="Clutter.Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_file" c:identifier="meta_background_set_file">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background.c"
+             line="993">Set the background to @file</doc>
+        <source-position filename="../src/meta/meta-background.h" line="63"/>
+        <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/compositor/meta-background.c"
+                 line="995">a #MetaBackground</doc>
+            <type name="Background" c:type="MetaBackground*"/>
+          </instance-parameter>
+          <parameter name="file"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background.c"
+                 line="996">a #GFile representing the background file</doc>
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+          <parameter name="style" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background.c"
+                 line="997">the background style to apply</doc>
+            <type name="GDesktopEnums.BackgroundStyle"
+                  c:type="GDesktopBackgroundStyle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_gradient" c:identifier="meta_background_set_gradient">
+        <source-position filename="../src/meta/meta-background.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Background" c:type="MetaBackground*"/>
+          </instance-parameter>
+          <parameter name="shading_direction" transfer-ownership="none">
+            <type name="GDesktopEnums.BackgroundShading"
+                  c:type="GDesktopBackgroundShading"/>
+          </parameter>
+          <parameter name="color" transfer-ownership="none">
+            <type name="Clutter.Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="second_color" transfer-ownership="none">
+            <type name="Clutter.Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="meta-display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <glib:signal name="changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <class name="BackgroundActor"
+           c:symbol-prefix="background_actor"
+           c:type="MetaBackgroundActor"
+           parent="Clutter.Actor"
+           glib:type-name="MetaBackgroundActor"
+           glib:get-type="meta_background_actor_get_type"
+           glib:type-struct="BackgroundActorClass">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-background-actor.h"
+           line="29">This class handles tracking and painting the root window background.
+By integrating with #MetaWindowGroup we can avoid painting parts of
+the background that are obscured by other windows.</doc>
+      <source-position filename="../src/meta/meta-background-actor.h"
+                       line="40"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+      <constructor name="new" c:identifier="meta_background_actor_new">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background-actor.c"
+             line="148">Creates a new actor to draw the background for the given monitor.</doc>
+        <source-position filename="../src/meta/meta-background-actor.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-actor.c"
+               line="154">the newly created background actor</doc>
+          <type name="Clutter.Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-actor.c"
+                 line="150">Index of the monitor for which to draw the background</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <property name="meta-display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <property name="monitor"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+    </class>
+    <record name="BackgroundActorClass"
+            c:type="MetaBackgroundActorClass"
+            glib:is-gtype-struct-for="BackgroundActor">
+      <source-position filename="../src/meta/meta-background-actor.h"
+                       line="40"/>
+      <field name="parent_class">
+        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
+      </field>
+    </record>
+    <record name="BackgroundClass"
+            c:type="MetaBackgroundClass"
+            glib:is-gtype-struct-for="Background">
+      <source-position filename="../src/meta/meta-background.h" line="40"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="BackgroundContent"
+           c:symbol-prefix="background_content"
+           c:type="MetaBackgroundContent"
+           parent="GObject.Object"
+           glib:type-name="MetaBackgroundContent"
+           glib:get-type="meta_background_content_get_type"
+           glib:type-struct="BackgroundContentClass">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-background-content.h"
+           line="29">This class handles tracking and painting the root window background.
+By integrating with #MetaWindowGroup we can avoid painting parts of
+the background that are obscured by other windows.</doc>
+      <source-position filename="../src/meta/meta-background-content.h"
+                       line="40"/>
+      <implements name="Clutter.Content"/>
+      <function name="new" c:identifier="meta_background_content_new">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background-content.c"
+             line="871">Creates a new actor to draw the background for the given monitor.</doc>
+        <source-position filename="../src/meta/meta-background-content.h"
+                         line="47"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-content.c"
+               line="877">the newly created background actor</doc>
+          <type name="Clutter.Content" c:type="ClutterContent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-content.c"
+                 line="873">Index of the monitor for which to draw the background</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="set_background"
+              c:identifier="meta_background_content_set_background">
+        <source-position filename="../src/meta/meta-background-content.h"
+                         line="51"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
+          </instance-parameter>
+          <parameter name="background" transfer-ownership="none">
+            <type name="Background" c:type="MetaBackground*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_gradient"
+              c:identifier="meta_background_content_set_gradient">
+        <source-position filename="../src/meta/meta-background-content.h"
+                         line="55"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
+          </instance-parameter>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="tone_start" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_vignette"
+              c:identifier="meta_background_content_set_vignette">
+        <source-position filename="../src/meta/meta-background-content.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
+          </instance-parameter>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="brightness" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+          <parameter name="sharpness" transfer-ownership="none">
+            <type name="gdouble" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="background" writable="1" transfer-ownership="none">
+        <type name="Background"/>
+      </property>
+      <property name="brightness" writable="1" transfer-ownership="none">
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="gradient" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="gradient-height" writable="1" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="gradient-max-darkness"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+      <property name="meta-display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <property name="monitor"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="vignette" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="vignette-sharpness"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gdouble" c:type="gdouble"/>
+      </property>
+    </class>
+    <record name="BackgroundContentClass"
+            c:type="MetaBackgroundContentClass"
+            glib:is-gtype-struct-for="BackgroundContent">
+      <source-position filename="../src/meta/meta-background-content.h"
+                       line="40"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="BackgroundGroup"
+           c:symbol-prefix="background_group"
+           c:type="MetaBackgroundGroup"
+           parent="Clutter.Actor"
+           glib:type-name="MetaBackgroundGroup"
+           glib:get-type="meta_background_group_get_type"
+           glib:type-struct="BackgroundGroupClass">
+      <source-position filename="../src/meta/meta-background-group.h"
+                       line="21"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+      <constructor name="new" c:identifier="meta_background_group_new">
+        <source-position filename="../src/meta/meta-background-group.h"
+                         line="24"/>
+        <return-value transfer-ownership="none">
+          <type name="Clutter.Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <field name="parent_instance">
+        <type name="Clutter.Actor" c:type="ClutterActor"/>
+      </field>
+    </class>
+    <record name="BackgroundGroupClass"
+            c:type="MetaBackgroundGroupClass"
+            glib:is-gtype-struct-for="BackgroundGroup">
+      <source-position filename="../src/meta/meta-background-group.h"
+                       line="21"/>
+      <field name="parent_class">
+        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
+      </field>
+    </record>
+    <class name="BackgroundImage"
+           c:symbol-prefix="background_image"
+           c:type="MetaBackgroundImage"
+           parent="GObject.Object"
+           glib:type-name="MetaBackgroundImage"
+           glib:get-type="meta_background_image_get_type"
+           glib:type-struct="BackgroundImageClass">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-background-image.c"
+           line="57">#MetaBackgroundImage is an object that represents a loaded or loading background 
image.</doc>
+      <source-position filename="../src/meta/meta-background-image.h"
+                       line="35"/>
+      <method name="get_success"
+              c:identifier="meta_background_image_get_success">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background-image.c"
+             line="339">This function is a convenience function for checking for success,
+without having to call meta_background_image_get_texture() and
+handle the return of a Cogl type.</doc>
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-image.c"
+               line="347">%TRUE if loading completed successfully, otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="341">a #MetaBackgroundImage</doc>
+            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_texture"
+              c:identifier="meta_background_image_get_texture">
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-image.c"
+               line="361">a #CoglTexture if loading succeeded; if
+ loading failed or has not yet finished, %NULL.</doc>
+          <type name="Cogl.Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="359">a #MetaBackgroundImage</doc>
+            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_loaded" c:identifier="meta_background_image_is_loaded">
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-image.c"
+               line="329">%TRUE if loading has already completed, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="image" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="327">a #MetaBackgroundImage</doc>
+            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="loaded" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <class name="BackgroundImageCache"
+           c:symbol-prefix="background_image_cache"
+           c:type="MetaBackgroundImageCache"
+           parent="GObject.Object"
+           glib:type-name="MetaBackgroundImageCache"
+           glib:get-type="meta_background_image_cache_get_type"
+           glib:type-struct="BackgroundImageCacheClass">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-background-image.c"
+           line="43">#MetaBackgroundImageCache caches loading of textures for backgrounds; there's actually
+nothing background specific about it, other than it is tuned to work well for
+large images as typically are used for backgrounds.</doc>
+      <source-position filename="../src/meta/meta-background-image.h"
+                       line="53"/>
+      <function name="get_default"
+                c:identifier="meta_background_image_cache_get_default">
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-image.c"
+               line="110">the global singleton background cache</doc>
+          <type name="BackgroundImageCache"
+                c:type="MetaBackgroundImageCache*"/>
+        </return-value>
+      </function>
+      <method name="load" c:identifier="meta_background_image_cache_load">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background-image.c"
+             line="218">Loads an image to use as a background, or returns a reference to an
+image that is already in the process of loading or loaded. In either
+case, what is returned is a #MetaBackgroundImage which can be dereferenced
+to get a #CoglTexture. If meta_background_image_is_loaded() returns %TRUE,
+the background is loaded, otherwise the MetaBackgroundImage::loaded
+signal will be emitted exactly once. The 'loaded' state means that the
+loading process finished, whether it succeeded or failed.</doc>
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="62"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-background-image.c"
+               line="231">a #MetaBackgroundImage to dereference to get the loaded texture</doc>
+          <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cache" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="220">a #MetaBackgroundImageCache</doc>
+            <type name="BackgroundImageCache"
+                  c:type="MetaBackgroundImageCache*"/>
+          </instance-parameter>
+          <parameter name="file" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="221">#GFile to load</doc>
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="purge" c:identifier="meta_background_image_cache_purge">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-background-image.c"
+             line="261">Remove an entry from the cache; this would be used if monitoring
+showed that the file changed.</doc>
+        <source-position filename="../src/meta/meta-background-image.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="cache" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="263">a #MetaBackgroundImageCache</doc>
+            <type name="BackgroundImageCache"
+                  c:type="MetaBackgroundImageCache*"/>
+          </instance-parameter>
+          <parameter name="file" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-background-image.c"
+                 line="264">file to remove from the cache</doc>
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <record name="BackgroundImageCacheClass"
+            c:type="MetaBackgroundImageCacheClass"
+            glib:is-gtype-struct-for="BackgroundImageCache">
+      <source-position filename="../src/meta/meta-background-image.h"
+                       line="53"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <record name="BackgroundImageClass"
+            c:type="MetaBackgroundImageClass"
+            glib:is-gtype-struct-for="BackgroundImage">
+      <source-position filename="../src/meta/meta-background-image.h"
+                       line="35"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="Barrier"
+           c:symbol-prefix="barrier"
+           c:type="MetaBarrier"
+           parent="GObject.Object"
+           glib:type-name="MetaBarrier"
+           glib:get-type="meta_barrier_get_type"
+           glib:type-struct="BarrierClass">
+      <doc xml:space="preserve"
+           filename="../src/meta/barrier.h"
+           line="25">The &lt;structname&gt;MetaBarrier&lt;/structname&gt; structure contains
+only private data and should be accessed using the provided API</doc>
+      <source-position filename="../src/meta/barrier.h" line="49"/>
+      <method name="destroy" c:identifier="meta_barrier_destroy">
+        <source-position filename="../src/meta/barrier.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="barrier" transfer-ownership="none">
+            <type name="Barrier" c:type="MetaBarrier*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_active" c:identifier="meta_barrier_is_active">
+        <source-position filename="../src/meta/barrier.h" line="55"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="barrier" transfer-ownership="none">
+            <type name="Barrier" c:type="MetaBarrier*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="release" c:identifier="meta_barrier_release">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-barrier.c"
+             line="155">In XI2.3, pointer barriers provide a feature where they can
+be temporarily released so that the pointer goes through
+them. Pass a #MetaBarrierEvent to release the barrier for
+this event sequence.</doc>
+        <source-position filename="../src/meta/barrier.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="barrier" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-barrier.c"
+                 line="157">The barrier to release</doc>
+            <type name="Barrier" c:type="MetaBarrier*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-barrier.c"
+                 line="158">The event to release the pointer for</doc>
+            <type name="BarrierEvent" c:type="MetaBarrierEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="directions"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="BarrierDirection"/>
+      </property>
+      <property name="display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <property name="x1"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="x2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="y1"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="y2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="BarrierPrivate" c:type="MetaBarrierPrivate*"/>
+      </field>
+      <glib:signal name="hit" when="first">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-barrier.c"
+             line="261">When a pointer barrier is hit, this will trigger. This
+requires an XI2-enabled server.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-barrier.c"
+                 line="264">A #MetaBarrierEvent that has the details of how
+the barrier was hit.</doc>
+            <type name="BarrierEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="left" when="first">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-barrier.c"
+             line="279">When a pointer barrier hitbox was left, this will trigger.
+This requires an XI2-enabled server.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-barrier.c"
+                 line="282">A #MetaBarrierEvent that has the details of how
+the barrier was left.</doc>
+            <type name="BarrierEvent"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BarrierClass"
+            c:type="MetaBarrierClass"
+            glib:is-gtype-struct-for="Barrier">
+      <doc xml:space="preserve"
+           filename="../src/meta/barrier.h"
+           line="39">The &lt;structname&gt;MetaBarrierClass&lt;/structname&gt; structure contains only
+private data.</doc>
+      <source-position filename="../src/meta/barrier.h" line="49"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <bitfield name="BarrierDirection"
+              glib:type-name="MetaBarrierDirection"
+              glib:get-type="meta_barrier_direction_get_type"
+              c:type="MetaBarrierDirection">
+      <member name="positive_x"
+              value="1"
+              c:identifier="META_BARRIER_DIRECTION_POSITIVE_X"
+              glib:nick="positive-x">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="66">Positive direction in the X axis</doc>
+      </member>
+      <member name="positive_y"
+              value="2"
+              c:identifier="META_BARRIER_DIRECTION_POSITIVE_Y"
+              glib:nick="positive-y">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="67">Positive direction in the Y axis</doc>
+      </member>
+      <member name="negative_x"
+              value="4"
+              c:identifier="META_BARRIER_DIRECTION_NEGATIVE_X"
+              glib:nick="negative-x">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="68">Negative direction in the X axis</doc>
+      </member>
+      <member name="negative_y"
+              value="8"
+              c:identifier="META_BARRIER_DIRECTION_NEGATIVE_Y"
+              glib:nick="negative-y">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="69">Negative direction in the Y axis</doc>
+      </member>
+    </bitfield>
+    <record name="BarrierEvent"
+            c:type="MetaBarrierEvent"
+            glib:type-name="MetaBarrierEvent"
+            glib:get-type="meta_barrier_event_get_type"
+            c:symbol-prefix="barrier_event">
+      <source-position filename="../src/meta/barrier.h" line="115"/>
+      <field name="ref_count" readable="0" private="1">
+        <type name="guint" c:type="volatile guint"/>
+      </field>
+      <field name="event_id" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="83">A unique integer ID identifying a
+consecutive series of motions at or along the barrier</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="dt" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="86">Server time, in milliseconds, since the last event
+sent for this barrier</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="time" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="85">Server time, in milliseconds</doc>
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="88">The cursor X position in screen coordinates</doc>
+        <type name="gdouble" c:type="double"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="89">The cursor Y position in screen coordinates.</doc>
+        <type name="gdouble" c:type="double"/>
+      </field>
+      <field name="dx" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="90">If the cursor hadn't been constrained, the delta
+of X movement past the barrier, in screen coordinates</doc>
+        <type name="gdouble" c:type="double"/>
+      </field>
+      <field name="dy" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="92">If the cursor hadn't been constrained, the delta
+of X movement past the barrier, in screen coordinates</doc>
+        <type name="gdouble" c:type="double"/>
+      </field>
+      <field name="released" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="94">A boolean flag, %TRUE if this event generated
+by the pointer leaving the barrier as a result of a client
+calling meta_barrier_release() (will be set only for
+MetaBarrier::leave signals)</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="grabbed" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/barrier.h"
+             line="98">A boolean flag, %TRUE if the pointer was grabbed
+at the time this event was sent</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+    </record>
+    <record name="BarrierPrivate" c:type="MetaBarrierPrivate" disguised="1">
+      <source-position filename="../src/meta/barrier.h" line="21"/>
+    </record>
+    <enumeration name="ButtonFunction"
+                 glib:type-name="MetaButtonFunction"
+                 glib:get-type="meta_button_function_get_type"
+                 c:type="MetaButtonFunction">
+      <doc xml:space="preserve"
+           filename="../src/meta/common.h"
+           line="370">Function a window button can have.  Note, you can't add stuff here
+without extending the theme format to draw a new function and
+breaking all existing themes.</doc>
+      <member name="menu"
+              value="0"
+              c:identifier="META_BUTTON_FUNCTION_MENU"
+              glib:nick="menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="372">Menu</doc>
+      </member>
+      <member name="minimize"
+              value="1"
+              c:identifier="META_BUTTON_FUNCTION_MINIMIZE"
+              glib:nick="minimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="373">Minimize</doc>
+      </member>
+      <member name="maximize"
+              value="2"
+              c:identifier="META_BUTTON_FUNCTION_MAXIMIZE"
+              glib:nick="maximize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="374">Maximize</doc>
+      </member>
+      <member name="close"
+              value="3"
+              c:identifier="META_BUTTON_FUNCTION_CLOSE"
+              glib:nick="close">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="375">Close</doc>
+      </member>
+      <member name="last"
+              value="4"
+              c:identifier="META_BUTTON_FUNCTION_LAST"
+              glib:nick="last">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="376">Marks the end of the #MetaButtonFunction enumeration</doc>
+      </member>
+    </enumeration>
+    <record name="ButtonLayout" c:type="MetaButtonLayout">
+      <source-position filename="../src/meta/common.h" line="411"/>
+      <field name="left_buttons" writable="1">
+        <array zero-terminated="0" fixed-size="4">
+          <type name="ButtonFunction" c:type="MetaButtonFunction"/>
+        </array>
+      </field>
+      <field name="left_buttons_has_spacer" writable="1">
+        <array zero-terminated="0" fixed-size="4">
+          <type name="gboolean" c:type="gboolean"/>
+        </array>
+      </field>
+      <field name="right_buttons" writable="1">
+        <array zero-terminated="0" fixed-size="4">
+          <type name="ButtonFunction" c:type="MetaButtonFunction"/>
+        </array>
+      </field>
+      <field name="right_buttons_has_spacer" writable="1">
+        <array zero-terminated="0" fixed-size="4">
+          <type name="gboolean" c:type="gboolean"/>
+        </array>
+      </field>
+    </record>
+    <constant name="CURRENT_TIME" value="0" c:type="META_CURRENT_TIME">
+      <source-position filename="../src/meta/common.h" line="47"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <interface name="CloseDialog"
+               c:symbol-prefix="close_dialog"
+               c:type="MetaCloseDialog"
+               glib:type-name="MetaCloseDialog"
+               glib:get-type="meta_close_dialog_get_type"
+               glib:type-struct="CloseDialogInterface">
+      <source-position filename="../src/meta/meta-close-dialog.h" line="47"/>
+      <virtual-method name="focus" invoker="focus">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="127">Call whenever @dialog should receive keyboard focus,
+usually when the window would.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="46"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="129">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide" invoker="hide">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="79">Hides the close dialog.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="81">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show" invoker="show">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="61">Shows the close dialog.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="63">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="focus" c:identifier="meta_close_dialog_focus">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="127">Call whenever @dialog should receive keyboard focus,
+usually when the window would.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="129">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide" c:identifier="meta_close_dialog_hide">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="79">Hides the close dialog.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="81">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_visible" c:identifier="meta_close_dialog_is_visible">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="113">Returns whether @dialog is currently visible.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="59"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-close-dialog.c"
+               line="119">#TRUE if @dialog is visible.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="115">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="response" c:identifier="meta_close_dialog_response">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="97">Responds and closes the dialog. To be called by #MetaCloseDialog
+implementations.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="99">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+          <parameter name="response" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="100">a #MetaCloseDialogResponse</doc>
+            <type name="CloseDialogResponse" c:type="MetaCloseDialogResponse"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show" c:identifier="meta_close_dialog_show">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-close-dialog.c"
+             line="61">Shows the close dialog.</doc>
+        <source-position filename="../src/meta/meta-close-dialog.h" line="50"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-close-dialog.c"
+                 line="63">a #MetaCloseDialog</doc>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="window"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Window"/>
+      </property>
+      <glib:signal name="response" when="last" action="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="CloseDialogResponse"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="CloseDialogInterface"
+            c:type="MetaCloseDialogInterface"
+            glib:is-gtype-struct-for="CloseDialog">
+      <source-position filename="../src/meta/meta-close-dialog.h" line="47"/>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="show">
+        <callback name="show">
+          <source-position filename="../src/meta/meta-close-dialog.h"
+                           line="44"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="dialog" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-close-dialog.c"
+                   line="63">a #MetaCloseDialog</doc>
+              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide">
+        <callback name="hide">
+          <source-position filename="../src/meta/meta-close-dialog.h"
+                           line="45"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="dialog" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-close-dialog.c"
+                   line="81">a #MetaCloseDialog</doc>
+              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus">
+        <callback name="focus">
+          <source-position filename="../src/meta/meta-close-dialog.h"
+                           line="46"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="dialog" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-close-dialog.c"
+                   line="129">a #MetaCloseDialog</doc>
+              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="CloseDialogResponse"
+                 glib:type-name="MetaCloseDialogResponse"
+                 glib:get-type="meta_close_dialog_response_get_type"
+                 c:type="MetaCloseDialogResponse">
+      <member name="wait"
+              value="0"
+              c:identifier="META_CLOSE_DIALOG_RESPONSE_WAIT"
+              glib:nick="wait">
+      </member>
+      <member name="force_close"
+              value="1"
+              c:identifier="META_CLOSE_DIALOG_RESPONSE_FORCE_CLOSE"
+              glib:nick="force-close">
+      </member>
+    </enumeration>
+    <enumeration name="CompEffect"
+                 glib:type-name="MetaCompEffect"
+                 glib:get-type="meta_comp_effect_get_type"
+                 c:type="MetaCompEffect">
+      <doc xml:space="preserve"
+           filename="../src/meta/compositor.h"
+           line="35">Indicates the appropriate effect to show the user for
+meta_compositor_show_window() and meta_compositor_hide_window()</doc>
+      <member name="create"
+              value="0"
+              c:identifier="META_COMP_EFFECT_CREATE"
+              glib:nick="create">
+        <doc xml:space="preserve"
+             filename="../src/meta/compositor.h"
+             line="37">The window is newly created
+  (also used for a window that was previously on a different
+  workspace and is changed to become visible on the active
+  workspace.)</doc>
+      </member>
+      <member name="unminimize"
+              value="1"
+              c:identifier="META_COMP_EFFECT_UNMINIMIZE"
+              glib:nick="unminimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/compositor.h"
+             line="41">The window should be shown
+  as unminimizing from its icon geometry.</doc>
+      </member>
+      <member name="destroy"
+              value="2"
+              c:identifier="META_COMP_EFFECT_DESTROY"
+              glib:nick="destroy">
+        <doc xml:space="preserve"
+             filename="../src/meta/compositor.h"
+             line="43">The window is being destroyed</doc>
+      </member>
+      <member name="minimize"
+              value="3"
+              c:identifier="META_COMP_EFFECT_MINIMIZE"
+              glib:nick="minimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/compositor.h"
+             line="44">The window should be shown
+  as minimizing to its icon geometry.</doc>
+      </member>
+      <member name="none"
+              value="4"
+              c:identifier="META_COMP_EFFECT_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../src/meta/compositor.h"
+             line="46">No effect, the window should be
+  shown or hidden immediately.</doc>
+      </member>
+    </enumeration>
+    <class name="Compositor"
+           c:symbol-prefix="compositor"
+           c:type="MetaCompositor"
+           introspectable="0"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="MetaCompositor"
+           glib:get-type="meta_compositor_get_type"
+           glib:type-struct="CompositorClass">
+      <source-position filename="../src/meta/compositor.h" line="32"/>
+      <method name="add_window" c:identifier="meta_compositor_add_window">
+        <source-position filename="../src/meta/compositor.h" line="91"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy" c:identifier="meta_compositor_destroy">
+        <source-position filename="../src/meta/compositor.h" line="70"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="filter_keybinding"
+              c:identifier="meta_compositor_filter_keybinding">
+        <source-position filename="../src/meta/compositor.h" line="87"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="flash_display"
+              c:identifier="meta_compositor_flash_display">
+        <source-position filename="../src/meta/compositor.h" line="140"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="hide_tile_preview"
+              c:identifier="meta_compositor_hide_tile_preview">
+        <source-position filename="../src/meta/compositor.h" line="150"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide_window" c:identifier="meta_compositor_hide_window">
+        <source-position filename="../src/meta/compositor.h" line="104"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <type name="CompEffect" c:type="MetaCompEffect"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="manage" c:identifier="meta_compositor_manage">
+        <source-position filename="../src/meta/compositor.h" line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="queue_frame_drawn"
+              c:identifier="meta_compositor_queue_frame_drawn">
+        <source-position filename="../src/meta/compositor.h" line="131"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="no_delay_frame" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_window"
+              c:identifier="meta_compositor_remove_window">
+        <source-position filename="../src/meta/compositor.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_tile_preview"
+              c:identifier="meta_compositor_show_tile_preview">
+        <source-position filename="../src/meta/compositor.h" line="144"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="tile_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="tile_monitor_number" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_window" c:identifier="meta_compositor_show_window">
+        <source-position filename="../src/meta/compositor.h" line="99"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <type name="CompEffect" c:type="MetaCompEffect"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_window_menu"
+              c:identifier="meta_compositor_show_window_menu">
+        <source-position filename="../src/meta/compositor.h" line="153"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="menu" transfer-ownership="none">
+            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_window_menu_for_rect"
+              c:identifier="meta_compositor_show_window_menu_for_rect">
+        <source-position filename="../src/meta/compositor.h" line="160"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="menu" transfer-ownership="none">
+            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+          </parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="size_change_window"
+              c:identifier="meta_compositor_size_change_window">
+        <source-position filename="../src/meta/compositor.h" line="115"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="which_change" transfer-ownership="none">
+            <type name="SizeChange" c:type="MetaSizeChange"/>
+          </parameter>
+          <parameter name="old_frame_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="old_buffer_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="switch_workspace"
+              c:identifier="meta_compositor_switch_workspace">
+        <source-position filename="../src/meta/compositor.h" line="109"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="from" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+          <parameter name="to" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="MotionDirection" c:type="MetaMotionDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sync_stack" c:identifier="meta_compositor_sync_stack">
+        <source-position filename="../src/meta/compositor.h" line="136"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="stack" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*">
+              <type name="gpointer" c:type="gpointer"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sync_updates_frozen"
+              c:identifier="meta_compositor_sync_updates_frozen">
+        <source-position filename="../src/meta/compositor.h" line="127"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sync_window_geometry"
+              c:identifier="meta_compositor_sync_window_geometry">
+        <source-position filename="../src/meta/compositor.h" line="122"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="did_placement" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unmanage" c:identifier="meta_compositor_unmanage">
+        <source-position filename="../src/meta/compositor.h" line="76"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="window_opacity_changed"
+              c:identifier="meta_compositor_window_opacity_changed">
+        <source-position filename="../src/meta/compositor.h" line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="window_shape_changed"
+              c:identifier="meta_compositor_window_shape_changed">
+        <source-position filename="../src/meta/compositor.h" line="79"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="compositor" transfer-ownership="none">
+            <type name="Compositor" c:type="MetaCompositor*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="backend"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Backend"/>
+      </property>
+      <property name="display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="CompositorClass"
+            c:type="MetaCompositorClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Compositor">
+      <source-position filename="../src/meta/compositor.h" line="32"/>
+    </record>
+    <enumeration name="Cursor"
+                 glib:type-name="MetaCursor"
+                 glib:get-type="meta_cursor_get_type"
+                 c:type="MetaCursor">
+      <member name="none"
+              value="0"
+              c:identifier="META_CURSOR_NONE"
+              glib:nick="none">
+      </member>
+      <member name="default"
+              value="1"
+              c:identifier="META_CURSOR_DEFAULT"
+              glib:nick="default">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="189">Default cursor</doc>
+      </member>
+      <member name="north_resize"
+              value="2"
+              c:identifier="META_CURSOR_NORTH_RESIZE"
+              glib:nick="north-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="190">Resize northern edge cursor</doc>
+      </member>
+      <member name="south_resize"
+              value="3"
+              c:identifier="META_CURSOR_SOUTH_RESIZE"
+              glib:nick="south-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="191">Resize southern edge cursor</doc>
+      </member>
+      <member name="west_resize"
+              value="4"
+              c:identifier="META_CURSOR_WEST_RESIZE"
+              glib:nick="west-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="192">Resize western edge cursor</doc>
+      </member>
+      <member name="east_resize"
+              value="5"
+              c:identifier="META_CURSOR_EAST_RESIZE"
+              glib:nick="east-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="193">Resize eastern edge cursor</doc>
+      </member>
+      <member name="se_resize"
+              value="6"
+              c:identifier="META_CURSOR_SE_RESIZE"
+              glib:nick="se-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="194">Resize south-eastern corner cursor</doc>
+      </member>
+      <member name="sw_resize"
+              value="7"
+              c:identifier="META_CURSOR_SW_RESIZE"
+              glib:nick="sw-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="195">Resize south-western corner cursor</doc>
+      </member>
+      <member name="ne_resize"
+              value="8"
+              c:identifier="META_CURSOR_NE_RESIZE"
+              glib:nick="ne-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="196">Resize north-eastern corner cursor</doc>
+      </member>
+      <member name="nw_resize"
+              value="9"
+              c:identifier="META_CURSOR_NW_RESIZE"
+              glib:nick="nw-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="197">Resize north-western corner cursor</doc>
+      </member>
+      <member name="move_or_resize_window"
+              value="10"
+              c:identifier="META_CURSOR_MOVE_OR_RESIZE_WINDOW"
+              glib:nick="move-or-resize-window">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="198">Move or resize cursor</doc>
+      </member>
+      <member name="busy"
+              value="11"
+              c:identifier="META_CURSOR_BUSY"
+              glib:nick="busy">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="199">Busy cursor</doc>
+      </member>
+      <member name="dnd_in_drag"
+              value="12"
+              c:identifier="META_CURSOR_DND_IN_DRAG"
+              glib:nick="dnd-in-drag">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="200">DND in drag cursor</doc>
+      </member>
+      <member name="dnd_move"
+              value="13"
+              c:identifier="META_CURSOR_DND_MOVE"
+              glib:nick="dnd-move">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="201">DND move cursor</doc>
+      </member>
+      <member name="dnd_copy"
+              value="14"
+              c:identifier="META_CURSOR_DND_COPY"
+              glib:nick="dnd-copy">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="202">DND copy cursor</doc>
+      </member>
+      <member name="dnd_unsupported_target"
+              value="15"
+              c:identifier="META_CURSOR_DND_UNSUPPORTED_TARGET"
+              glib:nick="dnd-unsupported-target">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="203">DND unsupported target</doc>
+      </member>
+      <member name="pointing_hand"
+              value="16"
+              c:identifier="META_CURSOR_POINTING_HAND"
+              glib:nick="pointing-hand">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="204">pointing hand</doc>
+      </member>
+      <member name="crosshair"
+              value="17"
+              c:identifier="META_CURSOR_CROSSHAIR"
+              glib:nick="crosshair">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="205">crosshair (action forbidden)</doc>
+      </member>
+      <member name="ibeam"
+              value="18"
+              c:identifier="META_CURSOR_IBEAM"
+              glib:nick="ibeam">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="206">I-beam (text input)</doc>
+      </member>
+      <member name="blank"
+              value="19"
+              c:identifier="META_CURSOR_BLANK"
+              glib:nick="blank">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="207">Invisible cursor</doc>
+      </member>
+      <member name="last"
+              value="20"
+              c:identifier="META_CURSOR_LAST"
+              glib:nick="last">
+      </member>
+    </enumeration>
+    <class name="CursorTracker"
+           c:symbol-prefix="cursor_tracker"
+           c:type="MetaCursorTracker"
+           parent="GObject.Object"
+           glib:type-name="MetaCursorTracker"
+           glib:get-type="meta_cursor_tracker_get_type"
+           glib:type-struct="CursorTrackerClass">
+      <source-position filename="../src/meta/meta-cursor-tracker.h" line="35"/>
+      <function name="get_for_display"
+                c:identifier="meta_cursor_tracker_get_for_display">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-cursor-tracker.c"
+             line="322">Retrieves the cursor tracker object for @display.</doc>
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-cursor-tracker.c"
+                 line="324">the #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_hot" c:identifier="meta_cursor_tracker_get_hot">
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tracker" transfer-ownership="none">
+            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+          </instance-parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer"
+              c:identifier="meta_cursor_tracker_get_pointer">
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tracker" transfer-ownership="none">
+            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="mods" transfer-ownership="none">
+            <type name="Clutter.ModifierType" c:type="ClutterModifierType*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer_visible"
+              c:identifier="meta_cursor_tracker_get_pointer_visible">
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tracker" transfer-ownership="none">
+            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sprite" c:identifier="meta_cursor_tracker_get_sprite">
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="49"/>
+        <return-value transfer-ownership="none">
+          <type name="Cogl.Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tracker" transfer-ownership="none">
+            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_pointer_visible"
+              c:identifier="meta_cursor_tracker_set_pointer_visible">
+        <source-position filename="../src/meta/meta-cursor-tracker.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="tracker" transfer-ownership="none">
+            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
+          </instance-parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="backend"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Backend"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="cursor-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-moved" when="last">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-cursor-tracker.c"
+             line="294">Notifies when the cursor has moved to a new location.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-cursor-tracker.c"
+                 line="297">The new X coordinate of the cursor</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-cursor-tracker.c"
+                 line="298">The new Y coordinate of the cursor</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="visibility-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="CursorTrackerClass"
+            c:type="MetaCursorTrackerClass"
+            disguised="1"
+            glib:is-gtype-struct-for="CursorTracker">
+      <source-position filename="../src/meta/meta-cursor-tracker.h" line="35"/>
+    </record>
+    <constant name="DEFAULT_ICON_NAME"
+              value="window"
+              c:type="META_DEFAULT_ICON_NAME">
+      <source-position filename="../src/meta/common.h" line="456"/>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <function-macro name="DISPLAY"
+                    c:identifier="META_DISPLAY"
+                    introspectable="0">
+      <source-position filename="../src/meta/display.h" line="69"/>
+      <parameters>
+        <parameter name="object">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DISPLAY_CLASS"
+                    c:identifier="META_DISPLAY_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/display.h" line="70"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="DISPLAY_GET_CLASS"
+                    c:identifier="META_DISPLAY_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/display.h" line="73"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <bitfield name="DebugPaintFlag"
+              glib:type-name="MetaDebugPaintFlag"
+              glib:get-type="meta_debug_paint_flag_get_type"
+              c:type="MetaDebugPaintFlag">
+      <member name="none"
+              value="0"
+              c:identifier="META_DEBUG_PAINT_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="121">default</doc>
+      </member>
+      <member name="opaque_region"
+              value="1"
+              c:identifier="META_DEBUG_PAINT_OPAQUE_REGION"
+              glib:nick="opaque-region">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="122">paint opaque regions</doc>
+      </member>
+    </bitfield>
+    <bitfield name="DebugTopic"
+              glib:type-name="MetaDebugTopic"
+              glib:get-type="meta_debug_topic_get_type"
+              c:type="MetaDebugTopic">
+      <member name="verbose"
+              value="-1"
+              c:identifier="META_DEBUG_VERBOSE"
+              glib:nick="verbose">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="66">verbose logging</doc>
+      </member>
+      <member name="focus"
+              value="1"
+              c:identifier="META_DEBUG_FOCUS"
+              glib:nick="focus">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="67">focus</doc>
+      </member>
+      <member name="workarea"
+              value="2"
+              c:identifier="META_DEBUG_WORKAREA"
+              glib:nick="workarea">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="68">workarea</doc>
+      </member>
+      <member name="stack"
+              value="4"
+              c:identifier="META_DEBUG_STACK"
+              glib:nick="stack">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="69">stack</doc>
+      </member>
+      <member name="themes"
+              value="8"
+              c:identifier="META_DEBUG_THEMES"
+              glib:nick="themes">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="70">themes</doc>
+      </member>
+      <member name="sm" value="16" c:identifier="META_DEBUG_SM" glib:nick="sm">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="71">session management</doc>
+      </member>
+      <member name="events"
+              value="32"
+              c:identifier="META_DEBUG_EVENTS"
+              glib:nick="events">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="72">events</doc>
+      </member>
+      <member name="window_state"
+              value="64"
+              c:identifier="META_DEBUG_WINDOW_STATE"
+              glib:nick="window-state">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="73">window state</doc>
+      </member>
+      <member name="window_ops"
+              value="128"
+              c:identifier="META_DEBUG_WINDOW_OPS"
+              glib:nick="window-ops">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="74">window operations</doc>
+      </member>
+      <member name="geometry"
+              value="256"
+              c:identifier="META_DEBUG_GEOMETRY"
+              glib:nick="geometry">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="75">geometry</doc>
+      </member>
+      <member name="placement"
+              value="512"
+              c:identifier="META_DEBUG_PLACEMENT"
+              glib:nick="placement">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="76">window placement</doc>
+      </member>
+      <member name="ping"
+              value="1024"
+              c:identifier="META_DEBUG_PING"
+              glib:nick="ping">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="77">ping</doc>
+      </member>
+      <member name="xinerama"
+              value="2048"
+              c:identifier="META_DEBUG_XINERAMA"
+              glib:nick="xinerama">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="78">Xinerama</doc>
+      </member>
+      <member name="keybindings"
+              value="4096"
+              c:identifier="META_DEBUG_KEYBINDINGS"
+              glib:nick="keybindings">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="79">keybindings</doc>
+      </member>
+      <member name="sync"
+              value="8192"
+              c:identifier="META_DEBUG_SYNC"
+              glib:nick="sync">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="80">sync</doc>
+      </member>
+      <member name="errors"
+              value="16384"
+              c:identifier="META_DEBUG_ERRORS"
+              glib:nick="errors">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="81">errors</doc>
+      </member>
+      <member name="startup"
+              value="32768"
+              c:identifier="META_DEBUG_STARTUP"
+              glib:nick="startup">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="82">startup</doc>
+      </member>
+      <member name="prefs"
+              value="65536"
+              c:identifier="META_DEBUG_PREFS"
+              glib:nick="prefs">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="83">preferences</doc>
+      </member>
+      <member name="groups"
+              value="131072"
+              c:identifier="META_DEBUG_GROUPS"
+              glib:nick="groups">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="84">groups</doc>
+      </member>
+      <member name="resizing"
+              value="262144"
+              c:identifier="META_DEBUG_RESIZING"
+              glib:nick="resizing">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="85">resizing</doc>
+      </member>
+      <member name="shapes"
+              value="524288"
+              c:identifier="META_DEBUG_SHAPES"
+              glib:nick="shapes">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="86">shapes</doc>
+      </member>
+      <member name="compositor"
+              value="1048576"
+              c:identifier="META_DEBUG_COMPOSITOR"
+              glib:nick="compositor">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="87">compositor</doc>
+      </member>
+      <member name="edge_resistance"
+              value="2097152"
+              c:identifier="META_DEBUG_EDGE_RESISTANCE"
+              glib:nick="edge-resistance">
+        <doc xml:space="preserve"
+             filename="../src/meta/util.h"
+             line="88">edge resistance</doc>
+      </member>
+      <member name="dbus"
+              value="4194304"
+              c:identifier="META_DEBUG_DBUS"
+              glib:nick="dbus">
+      </member>
+      <member name="input"
+              value="8388608"
+              c:identifier="META_DEBUG_INPUT"
+              glib:nick="input">
+      </member>
+    </bitfield>
+    <bitfield name="Direction"
+              glib:type-name="MetaDirection"
+              glib:get-type="meta_direction_get_type"
+              c:type="MetaDirection">
+      <member name="left"
+              value="1"
+              c:identifier="META_DIRECTION_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="289">Left</doc>
+      </member>
+      <member name="right"
+              value="2"
+              c:identifier="META_DIRECTION_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="290">Right</doc>
+      </member>
+      <member name="top"
+              value="4"
+              c:identifier="META_DIRECTION_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="291">Top</doc>
+      </member>
+      <member name="bottom"
+              value="8"
+              c:identifier="META_DIRECTION_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="292">Bottom</doc>
+      </member>
+      <member name="up"
+              value="4"
+              c:identifier="META_DIRECTION_UP"
+              glib:nick="up">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="293">Up</doc>
+      </member>
+      <member name="down"
+              value="8"
+              c:identifier="META_DIRECTION_DOWN"
+              glib:nick="down">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="294">Down</doc>
+      </member>
+      <member name="horizontal"
+              value="3"
+              c:identifier="META_DIRECTION_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="295">Horizontal</doc>
+      </member>
+      <member name="vertical"
+              value="12"
+              c:identifier="META_DIRECTION_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="296">Vertical</doc>
+      </member>
+    </bitfield>
+    <class name="Display"
+           c:symbol-prefix="display"
+           c:type="MetaDisplay"
+           parent="GObject.Object"
+           glib:type-name="MetaDisplay"
+           glib:get-type="meta_display_get_type"
+           glib:type-struct="DisplayClass">
+      <source-position filename="../src/meta/display.h" line="66"/>
+      <method name="add_ignored_crossing_serial"
+              c:identifier="meta_display_add_ignored_crossing_serial">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="1284">Save the specified serial and ignore crossing events with that
+serial for the purpose of focus-follows-mouse. This can be used
+for certain changes to the window hierarchy that we don't want
+to change the focus window, even if they cause the pointer to
+end up in a new window.</doc>
+        <source-position filename="../src/meta/display.h" line="178"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1286">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="serial" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1287">the serial to ignore</doc>
+            <type name="gulong" c:type="unsigned long"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_keybinding" c:identifier="meta_display_add_keybinding">
+        <doc xml:space="preserve"
+             filename="../src/core/keybindings.c"
+             line="1003">Add a keybinding at runtime. The key @name in @schema needs to be of
+type %G_VARIANT_TYPE_STRING_ARRAY, with each string describing a
+keybinding in the form of "&amp;lt;Control&amp;gt;a" or "&amp;lt;Shift&amp;gt;&amp;lt;Alt&amp;gt;F1". The 
parser
+is fairly liberal and allows lower or upper case, and also abbreviations
+such as "&amp;lt;Ctl&amp;gt;" and "&amp;lt;Ctrl&amp;gt;". If the key is set to the empty list or a
+list with a single element of either "" or "disabled", the keybinding is
+disabled.
+
+Use meta_display_remove_keybinding() to remove the binding.</doc>
+        <source-position filename="../src/meta/display.h" line="147"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="1023">the corresponding keybinding action if the keybinding was
+         added successfully, otherwise %META_KEYBINDING_ACTION_NONE</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1005">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1006">the binding's name</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1007">the #GSettings object where @name is stored</doc>
+            <type name="Gio.Settings" c:type="GSettings*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1008">flags to specify binding details</doc>
+            <type name="KeyBindingFlags" c:type="MetaKeyBindingFlags"/>
+          </parameter>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="4"
+                     destroy="5">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1009">function to run when the keybinding is invoked</doc>
+            <type name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1010">the data to pass to @handler</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="free_data" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1011">function to free @user_data</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="begin_grab_op" c:identifier="meta_display_begin_grab_op">
+        <source-position filename="../src/meta/display.h" line="128"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="op" transfer-ownership="none">
+            <type name="GrabOp" c:type="MetaGrabOp"/>
+          </parameter>
+          <parameter name="pointer_already_grabbed" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="frame_action" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="modmask" transfer-ownership="none">
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="root_x" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="root_y" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_mouse_mode"
+              c:identifier="meta_display_clear_mouse_mode">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2859">Sets the mouse-mode flag to %FALSE, which means that motion events are
+no longer ignored in mouse or sloppy focus.
+This is an internal function. It should be used only for reimplementing
+keybindings, and only in a manner compatible with core code.</doc>
+        <source-position filename="../src/meta/display.h" line="182"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2861">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="close" c:identifier="meta_display_close">
+        <source-position filename="../src/meta/display.h" line="84"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="end_grab_op" c:identifier="meta_display_end_grab_op">
+        <source-position filename="../src/meta/display.h" line="140"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="focus_default_window"
+              c:identifier="meta_display_focus_default_window">
+        <source-position filename="../src/meta/display.h" line="267"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="freeze_keyboard"
+              c:identifier="meta_display_freeze_keyboard">
+        <source-position filename="../src/meta/display.h" line="185"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_compositor"
+              c:identifier="meta_display_get_compositor"
+              introspectable="0">
+        <source-position filename="../src/meta/display.h" line="88"/>
+        <return-value>
+          <type name="Compositor" c:type="MetaCompositor*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2794">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_current_monitor"
+              c:identifier="meta_display_get_current_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3567">Gets the index of the monitor that currently has the mouse pointer.</doc>
+        <source-position filename="../src/meta/display.h" line="242"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3573">a monitor index</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3569">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_current_time"
+              c:identifier="meta_display_get_current_time">
+        <source-position filename="../src/meta/display.h" line="105"/>
+        <return-value transfer-ownership="none">
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_current_time_roundtrip"
+              c:identifier="meta_display_get_current_time_roundtrip">
+        <source-position filename="../src/meta/display.h" line="108"/>
+        <return-value transfer-ownership="none">
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_focus_window"
+              c:identifier="meta_display_get_focus_window">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2843">Get our best guess as to the "currently" focused window (that is,
+the window that we expect will be focused at the point when the X
+server processes our next request).</doc>
+        <source-position filename="../src/meta/display.h" line="94"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2851">The current focus window</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2845">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_grab_op" c:identifier="meta_display_get_grab_op">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2004">Gets the current grab operation, if any.</doc>
+        <source-position filename="../src/meta/display.h" line="144"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2010">the current grab operation, or %META_GRAB_OP_NONE if
+Mutter doesn't currently have a grab. %META_GRAB_OP_COMPOSITOR will
+be returned if a compositor-plugin modal operation is in effect
+(See mutter_begin_modal_for_plugin())</doc>
+          <type name="GrabOp" c:type="MetaGrabOp"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2006">The #MetaDisplay that the window is on</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_keybinding_action"
+              c:identifier="meta_display_get_keybinding_action">
+        <doc xml:space="preserve"
+             filename="../src/core/keybindings.c"
+             line="1109">Get the keybinding action bound to @keycode. Builtin keybindings
+have a fixed associated #MetaKeyBindingAction, for bindings added
+dynamically the function will return the keybinding action
+meta_display_add_keybinding() returns on registration.</doc>
+        <source-position filename="../src/meta/display.h" line="169"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="1120">The action that should be taken for the given key, or
+%META_KEYBINDING_ACTION_NONE.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1111">A #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1112">Raw keycode</doc>
+            <type name="guint" c:type="unsigned int"/>
+          </parameter>
+          <parameter name="mask" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1113">Event mask</doc>
+            <type name="gulong" c:type="unsigned long"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_last_user_time"
+              c:identifier="meta_display_get_last_user_time">
+        <source-position filename="../src/meta/display.h" line="102"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="1259">Timestamp of the last user interaction event with a window</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1257">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_geometry"
+              c:identifier="meta_display_get_monitor_geometry">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3636">Stores the location and size of the indicated @monitor in @geometry.</doc>
+        <source-position filename="../src/meta/display.h" line="245"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3638">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3639">the monitor number</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="geometry"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3640">location to store the monitor geometry</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_in_fullscreen"
+              c:identifier="meta_display_get_monitor_in_fullscreen">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3699">Determines whether there is a fullscreen window obscuring the specified
+monitor. If there is a fullscreen window, the desktop environment will
+typically hide any controls that might obscure the fullscreen window.
+
+You can get notification when this changes by connecting to
+MetaDisplay::in-fullscreen-changed.</doc>
+        <source-position filename="../src/meta/display.h" line="254"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3711">%TRUE if there is a fullscreen window covering the specified monitor.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3701">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3702">the monitor number</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_index_for_rect"
+              c:identifier="meta_display_get_monitor_index_for_rect">
+        <source-position filename="../src/meta/display.h" line="258"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_neighbor_index"
+              c:identifier="meta_display_get_monitor_neighbor_index">
+        <source-position filename="../src/meta/display.h" line="262"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="which_monitor" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="dir" transfer-ownership="none">
+            <type name="DisplayDirection" c:type="MetaDisplayDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_scale"
+              c:identifier="meta_display_get_monitor_scale">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3668">Gets the monitor scaling value for the given @monitor.</doc>
+        <source-position filename="../src/meta/display.h" line="250"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3675">the monitor scaling value</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3670">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3671">the monitor number</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_n_monitors" c:identifier="meta_display_get_n_monitors">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3590">Gets the number of monitors that are joined together to form @display.</doc>
+        <source-position filename="../src/meta/display.h" line="236"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3596">the number of monitors</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3592">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pad_action_label"
+              c:identifier="meta_display_get_pad_action_label">
+        <source-position filename="../src/meta/display.h" line="206"/>
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Clutter.InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+          <parameter name="action_type" transfer-ownership="none">
+            <type name="PadActionType" c:type="MetaPadActionType"/>
+          </parameter>
+          <parameter name="action_number" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_primary_monitor"
+              c:identifier="meta_display_get_primary_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="3610">Gets the index of the primary monitor on this @display.</doc>
+        <source-position filename="../src/meta/display.h" line="239"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3616">a monitor index</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3612">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_selection" c:identifier="meta_display_get_selection">
+        <source-position filename="../src/meta/display.h" line="298"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3839">The selection manager of the display</doc>
+          <type name="Selection" c:type="MetaSelection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3837">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_size" c:identifier="meta_display_get_size">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2814">Retrieve the size of the display.</doc>
+        <source-position filename="../src/meta/display.h" line="212"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2816">A #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2817">The width of the screen</doc>
+            <type name="gint" c:type="int*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2818">The height of the screen</doc>
+            <type name="gint" c:type="int*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sound_player"
+              c:identifier="meta_display_get_sound_player">
+        <source-position filename="../src/meta/display.h" line="295"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3827">The sound player of the display</doc>
+          <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3825">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_startup_notification"
+              c:identifier="meta_display_get_startup_notification"
+              introspectable="0">
+        <source-position filename="../src/meta/display.h" line="292"/>
+        <return-value>
+          <type name="StartupNotification" c:type="MetaStartupNotification*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_tab_current"
+              c:identifier="meta_display_get_tab_current">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2494">Determine the active window that should be displayed for Alt-TAB.</doc>
+        <source-position filename="../src/meta/display.h" line="123"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2502">Current window</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2496">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2497">type of tab list</doc>
+            <type name="TabList" c:type="MetaTabList"/>
+          </parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2498">origin workspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_tab_list" c:identifier="meta_display_get_tab_list">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2366">Determine the list of windows that should be displayed for Alt-TAB
+functionality.  The windows are returned in most recently used order.
+If @workspace is not %NULL, the list only contains windows that are on
+@workspace or have the demands-attention hint set; otherwise it contains
+all windows.</doc>
+        <source-position filename="../src/meta/display.h" line="111"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2378">List of windows</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Window"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2368">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2369">type of tab list</doc>
+            <type name="TabList" c:type="MetaTabList"/>
+          </parameter>
+          <parameter name="workspace"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2370">origin workspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_tab_next" c:identifier="meta_display_get_tab_next">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2442">Determine the next window that should be displayed for Alt-TAB
+functionality.</doc>
+        <source-position filename="../src/meta/display.h" line="116"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2453">Next window</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2444">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2445">type of tab list</doc>
+            <type name="TabList" c:type="MetaTabList"/>
+          </parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2446">origin workspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+          <parameter name="window"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2447">starting window</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="backward" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2448">If %TRUE, look for the previous window.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_workspace_manager"
+              c:identifier="meta_display_get_workspace_manager">
+        <source-position filename="../src/meta/display.h" line="286"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="3777">The workspace manager of the display</doc>
+          <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="3775">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_x11_display"
+              c:identifier="meta_display_get_x11_display"
+              introspectable="0">
+        <source-position filename="../src/meta/display.h" line="91"/>
+        <return-value>
+          <type name="X11Display" c:type="MetaX11Display*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2805">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="grab_accelerator"
+              c:identifier="meta_display_grab_accelerator">
+        <source-position filename="../src/meta/display.h" line="160"/>
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="accelerator" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="KeyBindingFlags" c:type="MetaKeyBindingFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_pointer_emulating_sequence"
+              c:identifier="meta_display_is_pointer_emulating_sequence">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2921">Tells whether the event sequence is the used for pointer emulation
+and single-touch interaction.</doc>
+        <source-position filename="../src/meta/display.h" line="197"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2929">#TRUE if the sequence emulates pointer behavior</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2923">the display</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="sequence"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2924">a #ClutterEventSequence</doc>
+            <type name="Clutter.EventSequence" c:type="ClutterEventSequence*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_keybinding"
+              c:identifier="meta_display_remove_keybinding">
+        <doc xml:space="preserve"
+             filename="../src/core/keybindings.c"
+             line="1044">Remove keybinding @name; the function will fail if @name is not a known
+keybinding or has not been added with meta_display_add_keybinding().</doc>
+        <source-position filename="../src/meta/display.h" line="156"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="1052">%TRUE if the binding has been removed successfully,
+         otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1046">the #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/keybindings.c"
+                 line="1047">name of the keybinding to remove</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="request_pad_osd"
+              c:identifier="meta_display_request_pad_osd">
+        <source-position filename="../src/meta/display.h" line="201"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Clutter.InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+          <parameter name="edition_mode" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor" c:identifier="meta_display_set_cursor">
+        <source-position filename="../src/meta/display.h" line="217"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="cursor" transfer-ownership="none">
+            <type name="Cursor" c:type="MetaCursor"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_input_focus"
+              c:identifier="meta_display_set_input_focus">
+        <source-position filename="../src/meta/display.h" line="301"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="focus_frame" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sort_windows_by_stacking"
+              c:identifier="meta_display_sort_windows_by_stacking">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2639">Sorts a set of windows according to their current stacking order. If windows
+from multiple screens are present in the set of input windows, then all the
+windows on screen 0 are sorted below all the windows on screen 1, and so forth.
+Since the stacking order of override-redirect windows isn't controlled by
+Metacity, if override-redirect windows are in the input, the result may not
+correspond to the actual stacking order in the X server.
+
+An example of using this would be to sort the list of transient dialogs for a
+window into their current stacking order.</doc>
+        <source-position filename="../src/meta/display.h" line="174"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2654">Input windows sorted by stacking order, from lowest to highest</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Window"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2641">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="windows" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2642">Set of windows</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="Window"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="supports_extended_barriers"
+              c:identifier="meta_display_supports_extended_barriers">
+        <source-position filename="../src/meta/display.h" line="81"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="2764">whether pointer barriers can be supported.
+
+When running as an X compositor the X server needs XInput 2
+version 2.3. When running as a display server it is supported
+when running on the native backend.
+
+Clients should use this method to determine whether their
+interfaces should depend on new barrier features.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="2762">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unfreeze_keyboard"
+              c:identifier="meta_display_unfreeze_keyboard">
+        <source-position filename="../src/meta/display.h" line="193"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ungrab_accelerator"
+              c:identifier="meta_display_ungrab_accelerator">
+        <source-position filename="../src/meta/display.h" line="165"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="action_id" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ungrab_keyboard"
+              c:identifier="meta_display_ungrab_keyboard">
+        <source-position filename="../src/meta/display.h" line="189"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset_input_focus"
+              c:identifier="meta_display_unset_input_focus">
+        <source-position filename="../src/meta/display.h" line="306"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="xserver_time_is_before"
+              c:identifier="meta_display_xserver_time_is_before">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="1230">Xserver time can wraparound, thus comparing two timestamps needs to take
+this into account. If no wraparound has occurred, this is equivalent to
+  time1 &lt; time2
+Otherwise, we need to account for the fact that wraparound can occur
+and the fact that a timestamp of 0 must be special-cased since it
+means "older than anything else".
+
+Note that this is NOT an equivalent for time1 &lt;= time2; if that's what
+you need then you'll need to swap the order of the arguments and negate
+the result.</doc>
+        <source-position filename="../src/meta/display.h" line="97"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1232">a #MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </instance-parameter>
+          <parameter name="time1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1233">An event timestamp</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="time2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="1234">An event timestamp</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="focus-window" transfer-ownership="none">
+        <type name="Window"/>
+      </property>
+      <glib:signal name="accelerator-activated" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Clutter.InputDevice"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="closing" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-updated" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="gl-video-memory-purged" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="grab-op-begin" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Display"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="GrabOp"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="grab-op-end" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Display"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="GrabOp"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="in-fullscreen-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="init-xserver" when="last">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Gio.Task"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="modifiers-accelerator-activated" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="282">The ::modifiers-accelerator-activated signal will be emitted when
+a special modifiers-only keybinding is activated.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="289">%TRUE means that the keyboard device should remain
+   frozen and %FALSE for the default behavior of unfreezing the
+   keyboard.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="overlay-key" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="pad-mode-switch" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Clutter.InputDevice"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="restacked" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="restart" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="378">The ::restart signal is emitted to indicate that compositor
+should reexec the process. This is
+emitted when meta_restart() is called, either by Mutter
+internally or by the embedding compositor. See also
+::show-restart-message.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="388">%FALSE to indicate that the compositor could not
+ be restarted. When the compositor is restarted, the signal
+ should not return.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-osd" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show-pad-osd" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="419">Requests the pad button mapping OSD to be shown.</doc>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="430">The OSD actor</doc>
+          <type name="Clutter.Actor"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="422">the pad device</doc>
+            <type name="Clutter.InputDevice"/>
+          </parameter>
+          <parameter name="settings" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="423">the pad device settings</doc>
+            <type name="Gio.Settings"/>
+          </parameter>
+          <parameter name="layout_path" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="424">path to the layout image</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="edition_mode" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="425">Whether the OSD should be shown in edition mode</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="monitor_idx" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="426">Monitor to show the OSD on</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show-resize-popup" when="last">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Rectangle"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p2" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show-restart-message" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="348">The ::show-restart-message signal will be emitted to indicate
+that the compositor should show a message during restart. This is
+emitted when meta_restart() is called, either by Mutter
+internally or by the embedding compositor.  The message should be
+immediately added to the Clutter stage in its final form -
+::restart will be emitted to exit the application and leave the
+stage contents frozen as soon as the the stage is painted again.
+
+On case of failure to restart, this signal will be emitted again
+with %NULL for @message.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/display.c"
+               line="365">%TRUE means the message was added to the stage; %FALSE
+  indicates that the compositor did not show the message.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="message"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/display.c"
+                 line="351">The message to display, or %NULL
+ to clear a previous restart message.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="showing-desktop-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="window-created" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="window-demands-attention" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="window-entered-monitor" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="window-left-monitor" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="window-marked-urgent" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="workareas-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="x11-display-closing" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="x11-display-opened" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="x11-display-setup" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="DisplayClass"
+            c:type="MetaDisplayClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Display">
+      <source-position filename="../src/meta/display.h" line="66"/>
+    </record>
+    <enumeration name="DisplayCorner"
+                 glib:type-name="MetaDisplayCorner"
+                 glib:get-type="meta_display_corner_get_type"
+                 c:type="MetaDisplayCorner">
+      <member name="topleft"
+              value="0"
+              c:identifier="META_DISPLAY_TOPLEFT"
+              glib:nick="topleft">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="272">top-left corner</doc>
+      </member>
+      <member name="topright"
+              value="1"
+              c:identifier="META_DISPLAY_TOPRIGHT"
+              glib:nick="topright">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="273">top-right corner</doc>
+      </member>
+      <member name="bottomleft"
+              value="2"
+              c:identifier="META_DISPLAY_BOTTOMLEFT"
+              glib:nick="bottomleft">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="274">bottom-left corner</doc>
+      </member>
+      <member name="bottomright"
+              value="3"
+              c:identifier="META_DISPLAY_BOTTOMRIGHT"
+              glib:nick="bottomright">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="275">bottom-right corner</doc>
+      </member>
+    </enumeration>
+    <enumeration name="DisplayDirection"
+                 glib:type-name="MetaDisplayDirection"
+                 glib:get-type="meta_display_direction_get_type"
+                 c:type="MetaDisplayDirection">
+      <member name="up"
+              value="0"
+              c:identifier="META_DISPLAY_UP"
+              glib:nick="up">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="222">up</doc>
+      </member>
+      <member name="down"
+              value="1"
+              c:identifier="META_DISPLAY_DOWN"
+              glib:nick="down">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="223">down</doc>
+      </member>
+      <member name="left"
+              value="2"
+              c:identifier="META_DISPLAY_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="224">left</doc>
+      </member>
+      <member name="right"
+              value="3"
+              c:identifier="META_DISPLAY_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="225">right</doc>
+      </member>
+    </enumeration>
+    <class name="Dnd"
+           c:symbol-prefix="dnd"
+           c:type="MetaDnd"
+           parent="GObject.Object"
+           glib:type-name="MetaDnd"
+           glib:get-type="meta_dnd_get_type"
+           glib:type-struct="DndClass">
+      <source-position filename="../src/meta/meta-dnd.h" line="32"/>
+      <glib:signal name="dnd-enter" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="dnd-leave" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="dnd-position-change" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DndClass"
+            c:type="MetaDndClass"
+            glib:is-gtype-struct-for="Dnd">
+      <source-position filename="../src/meta/meta-dnd.h" line="32"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <record name="Edge" c:type="MetaEdge">
+      <source-position filename="../src/meta/boxes.h" line="94"/>
+      <field name="rect" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="84">#MetaRectangle with the bounds of the edge</doc>
+        <type name="Rectangle" c:type="MetaRectangle"/>
+      </field>
+      <field name="side_type" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="85">Side</doc>
+        <type name="Side" c:type="MetaSide"/>
+      </field>
+      <field name="edge_type" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="86">To what belongs the edge</doc>
+        <type name="EdgeType" c:type="MetaEdgeType"/>
+      </field>
+    </record>
+    <enumeration name="EdgeType"
+                 glib:type-name="MetaEdgeType"
+                 glib:get-type="meta_edge_type_get_type"
+                 c:type="MetaEdgeType">
+      <member name="window"
+              value="0"
+              c:identifier="META_EDGE_WINDOW"
+              glib:nick="window">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="71">Whether the edge belongs to a window</doc>
+      </member>
+      <member name="monitor"
+              value="1"
+              c:identifier="META_EDGE_MONITOR"
+              glib:nick="monitor">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="72">Whether the edge belongs to a monitor</doc>
+      </member>
+      <member name="screen"
+              value="2"
+              c:identifier="META_EDGE_SCREEN"
+              glib:nick="screen">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="73">Whether the edge belongs to a screen</doc>
+      </member>
+    </enumeration>
+    <enumeration name="ExitCode"
+                 glib:type-name="MetaExitCode"
+                 glib:get-type="meta_exit_code_get_type"
+                 c:type="MetaExitCode">
+      <member name="success"
+              value="0"
+              c:identifier="META_EXIT_SUCCESS"
+              glib:nick="success">
+        <doc xml:space="preserve"
+             filename="../src/meta/main.h"
+             line="61">Success</doc>
+      </member>
+      <member name="error"
+              value="1"
+              c:identifier="META_EXIT_ERROR"
+              glib:nick="error">
+        <doc xml:space="preserve"
+             filename="../src/meta/main.h"
+             line="62">Error</doc>
+      </member>
+    </enumeration>
+    <record name="Frame" c:type="MetaFrame" disguised="1">
+      <source-position filename="../src/meta/types.h" line="31"/>
+    </record>
+    <record name="FrameBorders" c:type="MetaFrameBorders">
+      <source-position filename="../src/meta/common.h" line="444"/>
+      <field name="visible" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="428">inner visible portion of frame border</doc>
+        <type name="Gtk.Border" c:type="GtkBorder"/>
+      </field>
+      <field name="invisible" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="429">outer invisible portion of frame border</doc>
+        <type name="Gtk.Border" c:type="GtkBorder"/>
+      </field>
+      <field name="total" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="430">sum of the two borders above</doc>
+        <type name="Gtk.Border" c:type="GtkBorder"/>
+      </field>
+      <method name="clear" c:identifier="meta_frame_borders_clear">
+        <source-position filename="../src/meta/common.h" line="448"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="FrameBorders" c:type="MetaFrameBorders*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="FrameFlags"
+              glib:type-name="MetaFrameFlags"
+              glib:get-type="meta_frame_flags_get_type"
+              c:type="MetaFrameFlags">
+      <member name="allows_delete"
+              value="1"
+              c:identifier="META_FRAME_ALLOWS_DELETE"
+              glib:nick="allows-delete">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="53">frame allows delete</doc>
+      </member>
+      <member name="allows_menu"
+              value="2"
+              c:identifier="META_FRAME_ALLOWS_MENU"
+              glib:nick="allows-menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="54">frame allows menu</doc>
+      </member>
+      <member name="allows_minimize"
+              value="4"
+              c:identifier="META_FRAME_ALLOWS_MINIMIZE"
+              glib:nick="allows-minimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="55">frame allows minimize</doc>
+      </member>
+      <member name="allows_maximize"
+              value="8"
+              c:identifier="META_FRAME_ALLOWS_MAXIMIZE"
+              glib:nick="allows-maximize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="56">frame allows maximize</doc>
+      </member>
+      <member name="allows_vertical_resize"
+              value="16"
+              c:identifier="META_FRAME_ALLOWS_VERTICAL_RESIZE"
+              glib:nick="allows-vertical-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="57">frame allows vertical resize</doc>
+      </member>
+      <member name="allows_horizontal_resize"
+              value="32"
+              c:identifier="META_FRAME_ALLOWS_HORIZONTAL_RESIZE"
+              glib:nick="allows-horizontal-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="58">frame allows horizontal resize</doc>
+      </member>
+      <member name="has_focus"
+              value="64"
+              c:identifier="META_FRAME_HAS_FOCUS"
+              glib:nick="has-focus">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="59">frame has focus</doc>
+      </member>
+      <member name="shaded"
+              value="128"
+              c:identifier="META_FRAME_SHADED"
+              glib:nick="shaded">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="60">frame is shaded</doc>
+      </member>
+      <member name="stuck"
+              value="256"
+              c:identifier="META_FRAME_STUCK"
+              glib:nick="stuck">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="61">frame is stuck</doc>
+      </member>
+      <member name="maximized"
+              value="512"
+              c:identifier="META_FRAME_MAXIMIZED"
+              glib:nick="maximized">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="62">frame is maximized</doc>
+      </member>
+      <member name="allows_shade"
+              value="1024"
+              c:identifier="META_FRAME_ALLOWS_SHADE"
+              glib:nick="allows-shade">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="63">frame allows shade</doc>
+      </member>
+      <member name="allows_move"
+              value="2048"
+              c:identifier="META_FRAME_ALLOWS_MOVE"
+              glib:nick="allows-move">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="64">frame allows move</doc>
+      </member>
+      <member name="fullscreen"
+              value="4096"
+              c:identifier="META_FRAME_FULLSCREEN"
+              glib:nick="fullscreen">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="65">frame allows fullscreen</doc>
+      </member>
+      <member name="above"
+              value="8192"
+              c:identifier="META_FRAME_ABOVE"
+              glib:nick="above">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="66">frame is above</doc>
+      </member>
+      <member name="tiled_left"
+              value="16384"
+              c:identifier="META_FRAME_TILED_LEFT"
+              glib:nick="tiled-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="67">frame is tiled to the left</doc>
+      </member>
+      <member name="tiled_right"
+              value="32768"
+              c:identifier="META_FRAME_TILED_RIGHT"
+              glib:nick="tiled-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="68">frame is tiled to the right</doc>
+      </member>
+    </bitfield>
+    <enumeration name="FrameType"
+                 glib:type-name="MetaFrameType"
+                 glib:get-type="meta_frame_type_get_type"
+                 c:type="MetaFrameType">
+      <member name="normal"
+              value="0"
+              c:identifier="META_FRAME_TYPE_NORMAL"
+              glib:nick="normal">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="236">Normal frame</doc>
+      </member>
+      <member name="dialog"
+              value="1"
+              c:identifier="META_FRAME_TYPE_DIALOG"
+              glib:nick="dialog">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="237">Dialog frame</doc>
+      </member>
+      <member name="modal_dialog"
+              value="2"
+              c:identifier="META_FRAME_TYPE_MODAL_DIALOG"
+              glib:nick="modal-dialog">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="238">Modal dialog frame</doc>
+      </member>
+      <member name="utility"
+              value="3"
+              c:identifier="META_FRAME_TYPE_UTILITY"
+              glib:nick="utility">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="239">Utility frame</doc>
+      </member>
+      <member name="menu"
+              value="4"
+              c:identifier="META_FRAME_TYPE_MENU"
+              glib:nick="menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="240">Menu frame</doc>
+      </member>
+      <member name="border"
+              value="5"
+              c:identifier="META_FRAME_TYPE_BORDER"
+              glib:nick="border">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="241">Border frame</doc>
+      </member>
+      <member name="attached"
+              value="6"
+              c:identifier="META_FRAME_TYPE_ATTACHED"
+              glib:nick="attached">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="242">Attached frame</doc>
+      </member>
+      <member name="last"
+              value="7"
+              c:identifier="META_FRAME_TYPE_LAST"
+              glib:nick="last">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="243">Marks the end of the #MetaFrameType enumeration</doc>
+      </member>
+      <function name="to_string" c:identifier="meta_frame_type_to_string">
+        <doc xml:space="preserve"
+             filename="../src/ui/theme.c"
+             line="1360">Converts a frame type enum value to the name string that would
+appear in the theme definition file.</doc>
+        <source-position filename="../src/meta/util.h" line="155"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/ui/theme.c"
+               line="1367">the string value</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/ui/theme.c"
+                 line="1362">a #MetaFrameType</doc>
+            <type name="FrameType" c:type="MetaFrameType"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <enumeration name="GrabOp"
+                 glib:type-name="MetaGrabOp"
+                 glib:get-type="meta_grab_op_get_type"
+                 c:type="MetaGrabOp">
+      <member name="none"
+              value="0"
+              c:identifier="META_GRAB_OP_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="92">None</doc>
+      </member>
+      <member name="window_base"
+              value="1"
+              c:identifier="META_GRAB_OP_WINDOW_BASE"
+              glib:nick="window-base">
+      </member>
+      <member name="compositor"
+              value="2"
+              c:identifier="META_GRAB_OP_COMPOSITOR"
+              glib:nick="compositor">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="112">Compositor asked for grab</doc>
+      </member>
+      <member name="wayland_popup"
+              value="3"
+              c:identifier="META_GRAB_OP_WAYLAND_POPUP"
+              glib:nick="wayland-popup">
+      </member>
+      <member name="frame_button"
+              value="4"
+              c:identifier="META_GRAB_OP_FRAME_BUTTON"
+              glib:nick="frame-button">
+      </member>
+      <member name="moving"
+              value="1"
+              c:identifier="META_GRAB_OP_MOVING"
+              glib:nick="moving">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="93">Moving with pointer</doc>
+      </member>
+      <member name="resizing_nw"
+              value="36865"
+              c:identifier="META_GRAB_OP_RESIZING_NW"
+              glib:nick="resizing-nw">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="99">Resizing NW with pointer</doc>
+      </member>
+      <member name="resizing_n"
+              value="32769"
+              c:identifier="META_GRAB_OP_RESIZING_N"
+              glib:nick="resizing-n">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="97">Resizing N with pointer</doc>
+      </member>
+      <member name="resizing_ne"
+              value="40961"
+              c:identifier="META_GRAB_OP_RESIZING_NE"
+              glib:nick="resizing-ne">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="98">Resizing NE with pointer</doc>
+      </member>
+      <member name="resizing_e"
+              value="8193"
+              c:identifier="META_GRAB_OP_RESIZING_E"
+              glib:nick="resizing-e">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="101">Resizing E with pointer</doc>
+      </member>
+      <member name="resizing_sw"
+              value="20481"
+              c:identifier="META_GRAB_OP_RESIZING_SW"
+              glib:nick="resizing-sw">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="96">Resizing SW with pointer</doc>
+      </member>
+      <member name="resizing_s"
+              value="16385"
+              c:identifier="META_GRAB_OP_RESIZING_S"
+              glib:nick="resizing-s">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="95">Resizing S with pointer</doc>
+      </member>
+      <member name="resizing_se"
+              value="24577"
+              c:identifier="META_GRAB_OP_RESIZING_SE"
+              glib:nick="resizing-se">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="94">Resizing SE with pointer</doc>
+      </member>
+      <member name="resizing_w"
+              value="4097"
+              c:identifier="META_GRAB_OP_RESIZING_W"
+              glib:nick="resizing-w">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="100">Resizing W with pointer</doc>
+      </member>
+      <member name="keyboard_moving"
+              value="257"
+              c:identifier="META_GRAB_OP_KEYBOARD_MOVING"
+              glib:nick="keyboard-moving">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="102">Moving with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_unknown"
+              value="769"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN"
+              glib:nick="keyboard-resizing-unknown">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="103">Resizing with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_nw"
+              value="37121"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_NW"
+              glib:nick="keyboard-resizing-nw">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="111">Resizing NS with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_n"
+              value="33025"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_N"
+              glib:nick="keyboard-resizing-n">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="105">Resizing N with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_ne"
+              value="41217"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_NE"
+              glib:nick="keyboard-resizing-ne">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="109">Resizing NE with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_e"
+              value="8449"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_E"
+              glib:nick="keyboard-resizing-e">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="107">Resizing E with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_sw"
+              value="20737"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_SW"
+              glib:nick="keyboard-resizing-sw">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="110">Resizing SW with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_s"
+              value="16641"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_S"
+              glib:nick="keyboard-resizing-s">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="104">Resizing S with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_se"
+              value="24833"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_SE"
+              glib:nick="keyboard-resizing-se">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="108">Resizing SE with keyboard</doc>
+      </member>
+      <member name="keyboard_resizing_w"
+              value="4353"
+              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_W"
+              glib:nick="keyboard-resizing-w">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="106">Resizing W with keyboard</doc>
+      </member>
+    </enumeration>
+    <enumeration name="Gravity"
+                 glib:type-name="MetaGravity"
+                 glib:get-type="meta_gravity_get_type"
+                 c:type="MetaGravity">
+      <member name="none"
+              value="0"
+              c:identifier="META_GRAVITY_NONE"
+              glib:nick="none">
+      </member>
+      <member name="north_west"
+              value="1"
+              c:identifier="META_GRAVITY_NORTH_WEST"
+              glib:nick="north-west">
+      </member>
+      <member name="north"
+              value="2"
+              c:identifier="META_GRAVITY_NORTH"
+              glib:nick="north">
+      </member>
+      <member name="north_east"
+              value="3"
+              c:identifier="META_GRAVITY_NORTH_EAST"
+              glib:nick="north-east">
+      </member>
+      <member name="west"
+              value="4"
+              c:identifier="META_GRAVITY_WEST"
+              glib:nick="west">
+      </member>
+      <member name="center"
+              value="5"
+              c:identifier="META_GRAVITY_CENTER"
+              glib:nick="center">
+      </member>
+      <member name="east"
+              value="6"
+              c:identifier="META_GRAVITY_EAST"
+              glib:nick="east">
+      </member>
+      <member name="south_west"
+              value="7"
+              c:identifier="META_GRAVITY_SOUTH_WEST"
+              glib:nick="south-west">
+      </member>
+      <member name="south"
+              value="8"
+              c:identifier="META_GRAVITY_SOUTH"
+              glib:nick="south">
+      </member>
+      <member name="south_east"
+              value="9"
+              c:identifier="META_GRAVITY_SOUTH_EAST"
+              glib:nick="south-east">
+      </member>
+      <member name="static"
+              value="10"
+              c:identifier="META_GRAVITY_STATIC"
+              glib:nick="static">
+      </member>
+      <function name="to_string" c:identifier="meta_gravity_to_string">
+        <source-position filename="../src/meta/util.h" line="157"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <parameter name="gravity" transfer-ownership="none">
+            <type name="Gravity" c:type="MetaGravity"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <record name="Group" c:type="MetaGroup" disguised="1" introspectable="0">
+      <source-position filename="../src/meta/types.h" line="38"/>
+      <method name="get_size" c:identifier="meta_group_get_size">
+        <source-position filename="../src/meta/group.h" line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <type name="Group" c:type="MetaGroup*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_startup_id" c:identifier="meta_group_get_startup_id">
+        <source-position filename="../src/meta/group.h" line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <type name="Group" c:type="MetaGroup*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_windows" c:identifier="meta_group_list_windows">
+        <source-position filename="../src/meta/group.h" line="50"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../src/x11/group.c"
+               line="255">List of windows</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Window"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="253">A #MetaGroup</doc>
+            <type name="Group" c:type="MetaGroup*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="property_notify"
+              c:identifier="meta_group_property_notify"
+              introspectable="0">
+        <source-position filename="../src/meta/group.h" line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="309">a #MetaGroup</doc>
+            <type name="Group" c:type="MetaGroup*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="310">a X event</doc>
+            <type c:type="XEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_layers" c:identifier="meta_group_update_layers">
+        <source-position filename="../src/meta/group.h" line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="group" transfer-ownership="none">
+            <type name="Group" c:type="MetaGroup*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <constant name="ICON_HEIGHT" value="96" c:type="META_ICON_HEIGHT">
+      <source-position filename="../src/meta/common.h" line="452"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ICON_WIDTH" value="96" c:type="META_ICON_WIDTH">
+      <source-position filename="../src/meta/common.h" line="451"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="IDLE_MONITOR"
+                    c:identifier="META_IDLE_MONITOR"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="27"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IDLE_MONITOR_CLASS"
+                    c:identifier="META_IDLE_MONITOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="28"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IDLE_MONITOR_GET_CLASS"
+                    c:identifier="META_IDLE_MONITOR_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="31"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BARRIER"
+                    c:identifier="META_IS_BARRIER"
+                    introspectable="0">
+      <source-position filename="../src/meta/barrier.h" line="15"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_BARRIER_CLASS"
+                    c:identifier="META_IS_BARRIER_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/barrier.h" line="16"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DISPLAY"
+                    c:identifier="META_IS_DISPLAY"
+                    introspectable="0">
+      <source-position filename="../src/meta/display.h" line="71"/>
+      <parameters>
+        <parameter name="object">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_DISPLAY_CLASS"
+                    c:identifier="META_IS_DISPLAY_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/display.h" line="72"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IDLE_MONITOR"
+                    c:identifier="META_IS_IDLE_MONITOR"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="29"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_IDLE_MONITOR_CLASS"
+                    c:identifier="META_IS_IDLE_MONITOR_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="30"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_WINDOW"
+                    c:identifier="META_IS_WINDOW"
+                    introspectable="0">
+      <source-position filename="../src/meta/window.h" line="98"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_WINDOW_CLASS"
+                    c:identifier="META_IS_WINDOW_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/window.h" line="99"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_WORKSPACE"
+                    c:identifier="META_IS_WORKSPACE"
+                    introspectable="0">
+      <source-position filename="../src/meta/workspace.h" line="30"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="IS_WORKSPACE_CLASS"
+                    c:identifier="META_IS_WORKSPACE_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/workspace.h" line="31"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="IdleMonitor"
+           c:symbol-prefix="idle_monitor"
+           c:type="MetaIdleMonitor"
+           parent="GObject.Object"
+           glib:type-name="MetaIdleMonitor"
+           glib:get-type="meta_idle_monitor_get_type"
+           glib:type-struct="IdleMonitorClass">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="34"/>
+      <function name="get_core" c:identifier="meta_idle_monitor_get_core">
+        <source-position filename="../src/meta/meta-idle-monitor.h" line="44"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-idle-monitor.c"
+               line="272">the #MetaIdleMonitor that tracks the server-global
+idletime for all devices.</doc>
+          <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+        </return-value>
+      </function>
+      <method name="add_idle_watch"
+              c:identifier="meta_idle_monitor_add_idle_watch">
+        <source-position filename="../src/meta/meta-idle-monitor.h" line="47"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-idle-monitor.c"
+               line="374">a watch id
+
+Adds a watch for a specific idle time. The callback will be called
+when the user has accumulated @interval_msec milliseconds of idle time.
+This function will return an ID that can either be passed to
+meta_idle_monitor_remove_watch(), or can be used to tell idle time
+watches apart if you have more than one.
+
+Also note that this function will only care about positive transitions
+(user's idle time exceeding a certain time). If you want to know about
+when the user has become active, use
+meta_idle_monitor_add_user_active_watch().</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="367">A #MetaIdleMonitor</doc>
+            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+          </instance-parameter>
+          <parameter name="interval_msec" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="368">The idletime interval, in milliseconds</doc>
+            <type name="guint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="369">The callback to call when the user has
+    accumulated @interval_msec milliseconds of idle time.</doc>
+            <type name="IdleMonitorWatchFunc"
+                  c:type="MetaIdleMonitorWatchFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="371">The user data to pass to the callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="372">A #GDestroyNotify</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_user_active_watch"
+              c:identifier="meta_idle_monitor_add_user_active_watch">
+        <source-position filename="../src/meta/meta-idle-monitor.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-idle-monitor.c"
+               line="416">a watch id
+
+Add a one-time watch to know when the user is active again.
+Note that this watch is one-time and will de-activate after the
+function is called, for efficiency purposes. It's most convenient
+to call this when an idle watch, as added by
+meta_idle_monitor_add_idle_watch(), has triggered.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="410">A #MetaIdleMonitor</doc>
+            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+          </instance-parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="notified"
+                     closure="1"
+                     destroy="2">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="411">The callback to call when the user is
+    active again.</doc>
+            <type name="IdleMonitorWatchFunc"
+                  c:type="MetaIdleMonitorWatchFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="413">The user data to pass to the callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="414">A #GDestroyNotify</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_idletime"
+              c:identifier="meta_idle_monitor_get_idletime">
+        <source-position filename="../src/meta/meta-idle-monitor.h" line="64"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-idle-monitor.c"
+               line="468">The current idle time, in milliseconds, or -1 for not supported</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="466">A #MetaIdleMonitor</doc>
+            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="remove_watch"
+              c:identifier="meta_idle_monitor_remove_watch">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-idle-monitor.c"
+             line="443">Removes an idle time watcher, previously added by
+meta_idle_monitor_add_idle_watch() or
+meta_idle_monitor_add_user_active_watch().</doc>
+        <source-position filename="../src/meta/meta-idle-monitor.h" line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="445">A #MetaIdleMonitor</doc>
+            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+          </instance-parameter>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-idle-monitor.c"
+                 line="446">A watch ID</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="device"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-idle-monitor.c"
+             line="138">The device to listen to idletime on.</doc>
+        <type name="Clutter.InputDevice"/>
+      </property>
+    </class>
+    <record name="IdleMonitorClass"
+            c:type="MetaIdleMonitorClass"
+            disguised="1"
+            glib:is-gtype-struct-for="IdleMonitor">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="34"/>
+    </record>
+    <callback name="IdleMonitorWatchFunc" c:type="MetaIdleMonitorWatchFunc">
+      <source-position filename="../src/meta/meta-idle-monitor.h" line="39"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="monitor" transfer-ownership="none">
+          <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
+        </parameter>
+        <parameter name="watch_id" transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="2">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <interface name="InhibitShortcutsDialog"
+               c:symbol-prefix="inhibit_shortcuts_dialog"
+               c:type="MetaInhibitShortcutsDialog"
+               glib:type-name="MetaInhibitShortcutsDialog"
+               glib:get-type="meta_inhibit_shortcuts_dialog_get_type"
+               glib:type-struct="InhibitShortcutsDialogInterface">
+      <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                       line="43"/>
+      <virtual-method name="hide" invoker="hide">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+             line="72">Hides the inhibit shortcuts dialog.</doc>
+        <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                         line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="74">a #MetaInhibitShortcutsDialog</doc>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show" invoker="show">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+             line="55">Shows the inhibit shortcuts dialog.</doc>
+        <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                         line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="57">a #MetaInhibitShortcutsDialog</doc>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="hide" c:identifier="meta_inhibit_shortcuts_dialog_hide">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+             line="72">Hides the inhibit shortcuts dialog.</doc>
+        <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                         line="49"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="74">a #MetaInhibitShortcutsDialog</doc>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="response"
+              c:identifier="meta_inhibit_shortcuts_dialog_response">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+             line="89">Responds and closes the dialog. To be called by #MetaInhibitShortcutsDialog
+implementations.</doc>
+        <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                         line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="91">a #MetaInhibitShortcutsDialog</doc>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </instance-parameter>
+          <parameter name="response" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="92">a #MetaInhibitShortcutsDialogResponse</doc>
+            <type name="InhibitShortcutsDialogResponse"
+                  c:type="MetaInhibitShortcutsDialogResponse"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show" c:identifier="meta_inhibit_shortcuts_dialog_show">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+             line="55">Shows the inhibit shortcuts dialog.</doc>
+        <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                         line="46"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dialog" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                 line="57">a #MetaInhibitShortcutsDialog</doc>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="window"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Window"/>
+      </property>
+      <glib:signal name="response" when="last" action="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="InhibitShortcutsDialogResponse"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="InhibitShortcutsDialogInterface"
+            c:type="MetaInhibitShortcutsDialogInterface"
+            glib:is-gtype-struct-for="InhibitShortcutsDialog">
+      <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                       line="43"/>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="show">
+        <callback name="show">
+          <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                           line="41"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="dialog" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                   line="57">a #MetaInhibitShortcutsDialog</doc>
+              <type name="InhibitShortcutsDialog"
+                    c:type="MetaInhibitShortcutsDialog*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide">
+        <callback name="hide">
+          <source-position filename="../src/meta/meta-inhibit-shortcuts-dialog.h"
+                           line="42"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="dialog" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-inhibit-shortcuts-dialog.c"
+                   line="74">a #MetaInhibitShortcutsDialog</doc>
+              <type name="InhibitShortcutsDialog"
+                    c:type="MetaInhibitShortcutsDialog*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="InhibitShortcutsDialogResponse"
+                 glib:type-name="MetaInhibitShortcutsDialogResponse"
+                 glib:get-type="meta_inhibit_shortcuts_dialog_response_get_type"
+                 c:type="MetaInhibitShortcutsDialogResponse">
+      <member name="allow"
+              value="0"
+              c:identifier="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_ALLOW"
+              glib:nick="allow">
+      </member>
+      <member name="deny"
+              value="1"
+              c:identifier="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_DENY"
+              glib:nick="deny">
+      </member>
+    </enumeration>
+    <record name="KeyBinding"
+            c:type="MetaKeyBinding"
+            glib:type-name="MetaKeyBinding"
+            glib:get-type="meta_key_binding_get_type"
+            c:symbol-prefix="key_binding">
+      <source-position filename="../src/meta/types.h" line="39"/>
+      <method name="get_mask" c:identifier="meta_key_binding_get_mask">
+        <source-position filename="../src/meta/keybindings.h" line="33"/>
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_modifiers"
+              c:identifier="meta_key_binding_get_modifiers">
+        <source-position filename="../src/meta/keybindings.h" line="30"/>
+        <return-value transfer-ownership="none">
+          <type name="VirtualModifier" c:type="MetaVirtualModifier"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="meta_key_binding_get_name">
+        <source-position filename="../src/meta/keybindings.h" line="27"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_builtin" c:identifier="meta_key_binding_is_builtin">
+        <source-position filename="../src/meta/keybindings.h" line="36"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_reversed" c:identifier="meta_key_binding_is_reversed">
+        <source-position filename="../src/meta/keybindings.h" line="39"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="binding" transfer-ownership="none">
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="KeyBindingAction"
+                 glib:type-name="MetaKeyBindingAction"
+                 glib:get-type="meta_key_binding_action_get_type"
+                 c:type="MetaKeyBindingAction">
+      <member name="none"
+              value="0"
+              c:identifier="META_KEYBINDING_ACTION_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="241">FILLME</doc>
+      </member>
+      <member name="workspace_1"
+              value="1"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_1"
+              glib:nick="workspace-1">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="242">FILLME</doc>
+      </member>
+      <member name="workspace_2"
+              value="2"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_2"
+              glib:nick="workspace-2">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="243">FILLME</doc>
+      </member>
+      <member name="workspace_3"
+              value="3"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_3"
+              glib:nick="workspace-3">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="244">FILLME</doc>
+      </member>
+      <member name="workspace_4"
+              value="4"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_4"
+              glib:nick="workspace-4">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="245">FILLME</doc>
+      </member>
+      <member name="workspace_5"
+              value="5"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_5"
+              glib:nick="workspace-5">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="246">FILLME</doc>
+      </member>
+      <member name="workspace_6"
+              value="6"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_6"
+              glib:nick="workspace-6">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="247">FILLME</doc>
+      </member>
+      <member name="workspace_7"
+              value="7"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_7"
+              glib:nick="workspace-7">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="248">FILLME</doc>
+      </member>
+      <member name="workspace_8"
+              value="8"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_8"
+              glib:nick="workspace-8">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="249">FILLME</doc>
+      </member>
+      <member name="workspace_9"
+              value="9"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_9"
+              glib:nick="workspace-9">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="250">FILLME</doc>
+      </member>
+      <member name="workspace_10"
+              value="10"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_10"
+              glib:nick="workspace-10">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="251">FILLME</doc>
+      </member>
+      <member name="workspace_11"
+              value="11"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_11"
+              glib:nick="workspace-11">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="252">FILLME</doc>
+      </member>
+      <member name="workspace_12"
+              value="12"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_12"
+              glib:nick="workspace-12">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="253">FILLME</doc>
+      </member>
+      <member name="workspace_left"
+              value="13"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_LEFT"
+              glib:nick="workspace-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="254">FILLME</doc>
+      </member>
+      <member name="workspace_right"
+              value="14"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_RIGHT"
+              glib:nick="workspace-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="255">FILLME</doc>
+      </member>
+      <member name="workspace_up"
+              value="15"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_UP"
+              glib:nick="workspace-up">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="256">FILLME</doc>
+      </member>
+      <member name="workspace_down"
+              value="16"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_DOWN"
+              glib:nick="workspace-down">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="257">FILLME</doc>
+      </member>
+      <member name="workspace_last"
+              value="17"
+              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_LAST"
+              glib:nick="workspace-last">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="258">FILLME</doc>
+      </member>
+      <member name="switch_applications"
+              value="18"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS"
+              glib:nick="switch-applications">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="259">FILLME</doc>
+      </member>
+      <member name="switch_applications_backward"
+              value="19"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD"
+              glib:nick="switch-applications-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="260">FILLME</doc>
+      </member>
+      <member name="switch_group"
+              value="20"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_GROUP"
+              glib:nick="switch-group">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="261">FILLME</doc>
+      </member>
+      <member name="switch_group_backward"
+              value="21"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD"
+              glib:nick="switch-group-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="262">FILLME</doc>
+      </member>
+      <member name="switch_windows"
+              value="22"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_WINDOWS"
+              glib:nick="switch-windows">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="263">FILLME</doc>
+      </member>
+      <member name="switch_windows_backward"
+              value="23"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD"
+              glib:nick="switch-windows-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="264">FILLME</doc>
+      </member>
+      <member name="switch_panels"
+              value="24"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_PANELS"
+              glib:nick="switch-panels">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="265">FILLME</doc>
+      </member>
+      <member name="switch_panels_backward"
+              value="25"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD"
+              glib:nick="switch-panels-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="266">FILLME</doc>
+      </member>
+      <member name="cycle_group"
+              value="26"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_GROUP"
+              glib:nick="cycle-group">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="267">FILLME</doc>
+      </member>
+      <member name="cycle_group_backward"
+              value="27"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD"
+              glib:nick="cycle-group-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="268">FILLME</doc>
+      </member>
+      <member name="cycle_windows"
+              value="28"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_WINDOWS"
+              glib:nick="cycle-windows">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="269">FILLME</doc>
+      </member>
+      <member name="cycle_windows_backward"
+              value="29"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD"
+              glib:nick="cycle-windows-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="270">FILLME</doc>
+      </member>
+      <member name="cycle_panels"
+              value="30"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_PANELS"
+              glib:nick="cycle-panels">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="271">FILLME</doc>
+      </member>
+      <member name="cycle_panels_backward"
+              value="31"
+              c:identifier="META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD"
+              glib:nick="cycle-panels-backward">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="272">FILLME</doc>
+      </member>
+      <member name="show_desktop"
+              value="32"
+              c:identifier="META_KEYBINDING_ACTION_SHOW_DESKTOP"
+              glib:nick="show-desktop">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="273">FILLME</doc>
+      </member>
+      <member name="panel_main_menu"
+              value="33"
+              c:identifier="META_KEYBINDING_ACTION_PANEL_MAIN_MENU"
+              glib:nick="panel-main-menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="274">FILLME</doc>
+      </member>
+      <member name="panel_run_dialog"
+              value="34"
+              c:identifier="META_KEYBINDING_ACTION_PANEL_RUN_DIALOG"
+              glib:nick="panel-run-dialog">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="275">FILLME</doc>
+      </member>
+      <member name="toggle_recording"
+              value="35"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_RECORDING"
+              glib:nick="toggle-recording">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="276">FILLME</doc>
+      </member>
+      <member name="set_spew_mark"
+              value="36"
+              c:identifier="META_KEYBINDING_ACTION_SET_SPEW_MARK"
+              glib:nick="set-spew-mark">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="277">FILLME</doc>
+      </member>
+      <member name="activate_window_menu"
+              value="37"
+              c:identifier="META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU"
+              glib:nick="activate-window-menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="278">FILLME</doc>
+      </member>
+      <member name="toggle_fullscreen"
+              value="38"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN"
+              glib:nick="toggle-fullscreen">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="279">FILLME</doc>
+      </member>
+      <member name="toggle_maximized"
+              value="39"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED"
+              glib:nick="toggle-maximized">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="280">FILLME</doc>
+      </member>
+      <member name="toggle_tiled_left"
+              value="40"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT"
+              glib:nick="toggle-tiled-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="281">FILLME</doc>
+      </member>
+      <member name="toggle_tiled_right"
+              value="41"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT"
+              glib:nick="toggle-tiled-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="282">FILLME</doc>
+      </member>
+      <member name="toggle_above"
+              value="42"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_ABOVE"
+              glib:nick="toggle-above">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="283">FILLME</doc>
+      </member>
+      <member name="maximize"
+              value="43"
+              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE"
+              glib:nick="maximize">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="284">FILLME</doc>
+      </member>
+      <member name="unmaximize"
+              value="44"
+              c:identifier="META_KEYBINDING_ACTION_UNMAXIMIZE"
+              glib:nick="unmaximize">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="285">FILLME</doc>
+      </member>
+      <member name="toggle_shaded"
+              value="45"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_SHADED"
+              glib:nick="toggle-shaded">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="286">FILLME</doc>
+      </member>
+      <member name="minimize"
+              value="46"
+              c:identifier="META_KEYBINDING_ACTION_MINIMIZE"
+              glib:nick="minimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="287">FILLME</doc>
+      </member>
+      <member name="close"
+              value="47"
+              c:identifier="META_KEYBINDING_ACTION_CLOSE"
+              glib:nick="close">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="288">FILLME</doc>
+      </member>
+      <member name="begin_move"
+              value="48"
+              c:identifier="META_KEYBINDING_ACTION_BEGIN_MOVE"
+              glib:nick="begin-move">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="289">FILLME</doc>
+      </member>
+      <member name="begin_resize"
+              value="49"
+              c:identifier="META_KEYBINDING_ACTION_BEGIN_RESIZE"
+              glib:nick="begin-resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="290">FILLME</doc>
+      </member>
+      <member name="toggle_on_all_workspaces"
+              value="50"
+              c:identifier="META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES"
+              glib:nick="toggle-on-all-workspaces">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="291">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_1"
+              value="51"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1"
+              glib:nick="move-to-workspace-1">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="292">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_2"
+              value="52"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2"
+              glib:nick="move-to-workspace-2">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="293">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_3"
+              value="53"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3"
+              glib:nick="move-to-workspace-3">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="294">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_4"
+              value="54"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4"
+              glib:nick="move-to-workspace-4">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="295">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_5"
+              value="55"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5"
+              glib:nick="move-to-workspace-5">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="296">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_6"
+              value="56"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6"
+              glib:nick="move-to-workspace-6">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="297">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_7"
+              value="57"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7"
+              glib:nick="move-to-workspace-7">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="298">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_8"
+              value="58"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8"
+              glib:nick="move-to-workspace-8">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="299">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_9"
+              value="59"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9"
+              glib:nick="move-to-workspace-9">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="300">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_10"
+              value="60"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10"
+              glib:nick="move-to-workspace-10">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="301">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_11"
+              value="61"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11"
+              glib:nick="move-to-workspace-11">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="302">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_12"
+              value="62"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12"
+              glib:nick="move-to-workspace-12">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="303">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_left"
+              value="63"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT"
+              glib:nick="move-to-workspace-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="304">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_right"
+              value="64"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT"
+              glib:nick="move-to-workspace-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="305">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_up"
+              value="65"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP"
+              glib:nick="move-to-workspace-up">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="306">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_down"
+              value="66"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN"
+              glib:nick="move-to-workspace-down">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="307">FILLME</doc>
+      </member>
+      <member name="move_to_workspace_last"
+              value="67"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LAST"
+              glib:nick="move-to-workspace-last">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="308">FILLME</doc>
+      </member>
+      <member name="move_to_monitor_left"
+              value="68"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT"
+              glib:nick="move-to-monitor-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="309">FILLME</doc>
+      </member>
+      <member name="move_to_monitor_right"
+              value="69"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT"
+              glib:nick="move-to-monitor-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="310">FILLME</doc>
+      </member>
+      <member name="move_to_monitor_up"
+              value="70"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP"
+              glib:nick="move-to-monitor-up">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="311">FILLME</doc>
+      </member>
+      <member name="move_to_monitor_down"
+              value="71"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN"
+              glib:nick="move-to-monitor-down">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="312">FILLME</doc>
+      </member>
+      <member name="raise_or_lower"
+              value="72"
+              c:identifier="META_KEYBINDING_ACTION_RAISE_OR_LOWER"
+              glib:nick="raise-or-lower">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="313">FILLME</doc>
+      </member>
+      <member name="raise"
+              value="73"
+              c:identifier="META_KEYBINDING_ACTION_RAISE"
+              glib:nick="raise">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="314">FILLME</doc>
+      </member>
+      <member name="lower"
+              value="74"
+              c:identifier="META_KEYBINDING_ACTION_LOWER"
+              glib:nick="lower">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="315">FILLME</doc>
+      </member>
+      <member name="maximize_vertically"
+              value="75"
+              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY"
+              glib:nick="maximize-vertically">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="316">FILLME</doc>
+      </member>
+      <member name="maximize_horizontally"
+              value="76"
+              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY"
+              glib:nick="maximize-horizontally">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="317">FILLME</doc>
+      </member>
+      <member name="move_to_corner_nw"
+              value="77"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW"
+              glib:nick="move-to-corner-nw">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="318">FILLME</doc>
+      </member>
+      <member name="move_to_corner_ne"
+              value="78"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE"
+              glib:nick="move-to-corner-ne">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="319">FILLME</doc>
+      </member>
+      <member name="move_to_corner_sw"
+              value="79"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW"
+              glib:nick="move-to-corner-sw">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="320">FILLME</doc>
+      </member>
+      <member name="move_to_corner_se"
+              value="80"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE"
+              glib:nick="move-to-corner-se">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="321">FILLME</doc>
+      </member>
+      <member name="move_to_side_n"
+              value="81"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_N"
+              glib:nick="move-to-side-n">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="322">FILLME</doc>
+      </member>
+      <member name="move_to_side_s"
+              value="82"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_S"
+              glib:nick="move-to-side-s">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="323">FILLME</doc>
+      </member>
+      <member name="move_to_side_e"
+              value="83"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_E"
+              glib:nick="move-to-side-e">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="324">FILLME</doc>
+      </member>
+      <member name="move_to_side_w"
+              value="84"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_W"
+              glib:nick="move-to-side-w">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="325">FILLME</doc>
+      </member>
+      <member name="move_to_center"
+              value="85"
+              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CENTER"
+              glib:nick="move-to-center">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="326">FILLME</doc>
+      </member>
+      <member name="overlay_key"
+              value="86"
+              c:identifier="META_KEYBINDING_ACTION_OVERLAY_KEY"
+              glib:nick="overlay-key">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="327">FILLME</doc>
+      </member>
+      <member name="locate_pointer_key"
+              value="87"
+              c:identifier="META_KEYBINDING_ACTION_LOCATE_POINTER_KEY"
+              glib:nick="locate-pointer-key">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="328">FILLME</doc>
+      </member>
+      <member name="iso_next_group"
+              value="88"
+              c:identifier="META_KEYBINDING_ACTION_ISO_NEXT_GROUP"
+              glib:nick="iso-next-group">
+      </member>
+      <member name="always_on_top"
+              value="89"
+              c:identifier="META_KEYBINDING_ACTION_ALWAYS_ON_TOP"
+              glib:nick="always-on-top">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="329">FILLME</doc>
+      </member>
+      <member name="switch_monitor"
+              value="90"
+              c:identifier="META_KEYBINDING_ACTION_SWITCH_MONITOR"
+              glib:nick="switch-monitor">
+      </member>
+      <member name="rotate_monitor"
+              value="91"
+              c:identifier="META_KEYBINDING_ACTION_ROTATE_MONITOR"
+              glib:nick="rotate-monitor">
+      </member>
+      <member name="last"
+              value="92"
+              c:identifier="META_KEYBINDING_ACTION_LAST"
+              glib:nick="last">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="330">FILLME</doc>
+      </member>
+    </enumeration>
+    <bitfield name="KeyBindingFlags"
+              glib:type-name="MetaKeyBindingFlags"
+              glib:get-type="meta_key_binding_flags_get_type"
+              c:type="MetaKeyBindingFlags">
+      <member name="none"
+              value="0"
+              c:identifier="META_KEY_BINDING_NONE"
+              glib:nick="none">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="437">none</doc>
+      </member>
+      <member name="per_window"
+              value="1"
+              c:identifier="META_KEY_BINDING_PER_WINDOW"
+              glib:nick="per-window">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="438">per-window</doc>
+      </member>
+      <member name="builtin"
+              value="2"
+              c:identifier="META_KEY_BINDING_BUILTIN"
+              glib:nick="builtin">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="439">built-in</doc>
+      </member>
+      <member name="is_reversed"
+              value="4"
+              c:identifier="META_KEY_BINDING_IS_REVERSED"
+              glib:nick="is-reversed">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="440">is reversed</doc>
+      </member>
+      <member name="non_maskable"
+              value="8"
+              c:identifier="META_KEY_BINDING_NON_MASKABLE"
+              glib:nick="non-maskable">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="441">always active</doc>
+      </member>
+      <member name="ignore_autorepeat"
+              value="16"
+              c:identifier="META_KEY_BINDING_IGNORE_AUTOREPEAT"
+              glib:nick="ignore-autorepeat">
+      </member>
+      <member name="no_auto_grab"
+              value="32"
+              c:identifier="META_KEY_BINDING_NO_AUTO_GRAB"
+              glib:nick="no-auto-grab">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="442">not grabbed automatically</doc>
+      </member>
+    </bitfield>
+    <callback name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc">
+      <source-position filename="../src/meta/prefs.h" line="464"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/prefs.h"
+               line="457">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+        <parameter name="window" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/prefs.h"
+               line="458">a #MetaWindow</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </parameter>
+        <parameter name="event"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/meta/prefs.h"
+               line="459">a #ClutterKeyEvent</doc>
+          <type name="gpointer" c:type="ClutterKeyEvent*"/>
+        </parameter>
+        <parameter name="binding" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/prefs.h"
+               line="460">a #MetaKeyBinding</doc>
+          <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="4">
+          <doc xml:space="preserve"
+               filename="../src/meta/prefs.h"
+               line="461">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="LaterType"
+                 glib:type-name="MetaLaterType"
+                 glib:get-type="meta_later_type_get_type"
+                 c:type="MetaLaterType">
+      <member name="resize"
+              value="0"
+              c:identifier="META_LATER_RESIZE"
+              glib:nick="resize">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="25">call in a resize processing phase that is done
+  before GTK+ repainting (including window borders) is done.</doc>
+      </member>
+      <member name="calc_showing"
+              value="1"
+              c:identifier="META_LATER_CALC_SHOWING"
+              glib:nick="calc-showing">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="27">used by Mutter to compute which windows should be mapped</doc>
+      </member>
+      <member name="check_fullscreen"
+              value="2"
+              c:identifier="META_LATER_CHECK_FULLSCREEN"
+              glib:nick="check-fullscreen">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="28">used by Mutter to see if there's a fullscreen window</doc>
+      </member>
+      <member name="sync_stack"
+              value="3"
+              c:identifier="META_LATER_SYNC_STACK"
+              glib:nick="sync-stack">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="29">used by Mutter to send it's idea of the stacking order to the server</doc>
+      </member>
+      <member name="before_redraw"
+              value="4"
+              c:identifier="META_LATER_BEFORE_REDRAW"
+              glib:nick="before-redraw">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="30">call before the stage is redrawn</doc>
+      </member>
+      <member name="idle"
+              value="5"
+              c:identifier="META_LATER_IDLE"
+              glib:nick="idle">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-later.h"
+             line="31">call at a very low priority (can be blocked
+   by running animations or redrawing applications)</doc>
+      </member>
+    </enumeration>
+    <class name="LaunchContext"
+           c:symbol-prefix="launch_context"
+           c:type="MetaLaunchContext"
+           parent="Gio.AppLaunchContext"
+           glib:type-name="MetaLaunchContext"
+           glib:get-type="meta_launch_context_get_type"
+           glib:type-struct="LaunchContextClass">
+      <source-position filename="../src/meta/meta-launch-context.h" line="27"/>
+      <method name="set_timestamp"
+              c:identifier="meta_launch_context_set_timestamp">
+        <source-position filename="../src/meta/meta-launch-context.h"
+                         line="32"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <type name="LaunchContext" c:type="MetaLaunchContext*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="uint32_t"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_workspace"
+              c:identifier="meta_launch_context_set_workspace">
+        <source-position filename="../src/meta/meta-launch-context.h"
+                         line="36"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <type name="LaunchContext" c:type="MetaLaunchContext*"/>
+          </instance-parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <property name="timestamp" writable="1" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="workspace" writable="1" transfer-ownership="none">
+        <type name="Workspace"/>
+      </property>
+    </class>
+    <record name="LaunchContextClass"
+            c:type="MetaLaunchContextClass"
+            glib:is-gtype-struct-for="LaunchContext">
+      <source-position filename="../src/meta/meta-launch-context.h" line="27"/>
+      <field name="parent_class">
+        <type name="Gio.AppLaunchContextClass"
+              c:type="GAppLaunchContextClass"/>
+      </field>
+    </record>
+    <enumeration name="LocaleDirection"
+                 glib:type-name="MetaLocaleDirection"
+                 glib:get-type="meta_locale_direction_get_type"
+                 c:type="MetaLocaleDirection">
+      <member name="ltr"
+              value="0"
+              c:identifier="META_LOCALE_DIRECTION_LTR"
+              glib:nick="ltr">
+      </member>
+      <member name="rtl"
+              value="1"
+              c:identifier="META_LOCALE_DIRECTION_RTL"
+              glib:nick="rtl">
+      </member>
+    </enumeration>
+    <constant name="MAJOR_VERSION" value="3" c:type="META_MAJOR_VERSION">
+      <source-position filename="../src/meta/meta-version.h" line="23"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MICRO_VERSION" value="4" c:type="META_MICRO_VERSION">
+      <source-position filename="../src/meta/meta-version.h" line="25"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINI_ICON_HEIGHT"
+              value="16"
+              c:type="META_MINI_ICON_HEIGHT">
+      <source-position filename="../src/meta/common.h" line="454"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINI_ICON_WIDTH" value="16" c:type="META_MINI_ICON_WIDTH">
+      <source-position filename="../src/meta/common.h" line="453"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINOR_VERSION" value="38" c:type="META_MINOR_VERSION">
+      <source-position filename="../src/meta/meta-version.h" line="24"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="MaximizeFlags"
+              glib:type-name="MetaMaximizeFlags"
+              glib:get-type="meta_maximize_flags_get_type"
+              c:type="MetaMaximizeFlags">
+      <member name="horizontal"
+              value="1"
+              c:identifier="META_MAXIMIZE_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="73">Horizontal</doc>
+      </member>
+      <member name="vertical"
+              value="2"
+              c:identifier="META_MAXIMIZE_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="74">Vertical</doc>
+      </member>
+      <member name="both"
+              value="3"
+              c:identifier="META_MAXIMIZE_BOTH"
+              glib:nick="both">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="75">Both</doc>
+      </member>
+    </bitfield>
+    <bitfield name="ModalOptions"
+              glib:type-name="MetaModalOptions"
+              glib:get-type="meta_modal_options_get_type"
+              c:type="MetaModalOptions">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-plugin.h"
+           line="371">Options that can be provided when calling meta_plugin_begin_modal().</doc>
+      <member name="pointer_already_grabbed"
+              value="1"
+              c:identifier="META_MODAL_POINTER_ALREADY_GRABBED"
+              glib:nick="pointer-already-grabbed">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="373">if set the pointer is already
+  grabbed by the plugin and should not be grabbed again.</doc>
+      </member>
+      <member name="keyboard_already_grabbed"
+              value="2"
+              c:identifier="META_MODAL_KEYBOARD_ALREADY_GRABBED"
+              glib:nick="keyboard-already-grabbed">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="375">if set the keyboard is already
+  grabbed by the plugin and should not be grabbed again.</doc>
+      </member>
+    </bitfield>
+    <class name="MonitorManager"
+           c:symbol-prefix="monitor_manager"
+           c:type="MetaMonitorManager"
+           parent="GObject.Object"
+           glib:type-name="MetaMonitorManager"
+           glib:get-type="meta_monitor_manager_get_type"
+           glib:type-struct="MonitorManagerClass">
+      <source-position filename="../src/meta/meta-monitor-manager.h"
+                       line="36"/>
+      <function name="get" c:identifier="meta_monitor_manager_get">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-monitor-manager.c"
+             line="2428">Accessor for the singleton MetaMonitorManager.</doc>
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="43"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-monitor-manager.c"
+               line="2433">The only #MetaMonitorManager there is.</doc>
+          <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+        </return-value>
+      </function>
+      <function name="get_display_configuration_timeout"
+                c:identifier="meta_monitor_manager_get_display_configuration_timeout">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="63"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </function>
+      <method name="can_switch_config"
+              c:identifier="meta_monitor_manager_can_switch_config">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_is_builtin_display_on"
+              c:identifier="meta_monitor_manager_get_is_builtin_display_on">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-monitor-manager.c"
+             line="3117">Returns whether the built-in display (i.e. a laptop panel) is turned on.</doc>
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="50"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-monitor-manager.c"
+                 line="3119">A #MetaMonitorManager object</doc>
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor_for_connector"
+              c:identifier="meta_monitor_manager_get_monitor_for_connector">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="46"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/backends/meta-monitor-manager.c"
+               line="3096">The monitor index or -1 if @id isn't valid or the connector
+isn't associated with a logical monitor.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-monitor-manager.c"
+                 line="3093">A #MetaMonitorManager</doc>
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+          <parameter name="connector" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-monitor-manager.c"
+                 line="3094">A valid connector name</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_panel_orientation_managed"
+              c:identifier="meta_monitor_manager_get_panel_orientation_managed">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_switch_config"
+              c:identifier="meta_monitor_manager_get_switch_config">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="MonitorSwitchConfigType"
+                c:type="MetaMonitorSwitchConfigType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="switch_config"
+              c:identifier="meta_monitor_manager_switch_config">
+        <source-position filename="../src/meta/meta-monitor-manager.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="manager" transfer-ownership="none">
+            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
+          </instance-parameter>
+          <parameter name="config_type" transfer-ownership="none">
+            <type name="MonitorSwitchConfigType"
+                  c:type="MetaMonitorSwitchConfigType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="backend"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Backend"/>
+      </property>
+      <property name="panel-orientation-managed" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <glib:signal name="confirm-display-change" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="monitors-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="monitors-changed-internal" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="power-save-mode-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="MonitorManagerClass"
+            c:type="MetaMonitorManagerClass"
+            disguised="1"
+            glib:is-gtype-struct-for="MonitorManager">
+      <source-position filename="../src/meta/meta-monitor-manager.h"
+                       line="36"/>
+    </record>
+    <enumeration name="MonitorSwitchConfigType"
+                 glib:type-name="MetaMonitorSwitchConfigType"
+                 glib:get-type="meta_monitor_switch_config_type_get_type"
+                 c:type="MetaMonitorSwitchConfigType">
+      <member name="all_mirror"
+              value="0"
+              c:identifier="META_MONITOR_SWITCH_CONFIG_ALL_MIRROR"
+              glib:nick="all-mirror">
+      </member>
+      <member name="all_linear"
+              value="1"
+              c:identifier="META_MONITOR_SWITCH_CONFIG_ALL_LINEAR"
+              glib:nick="all-linear">
+      </member>
+      <member name="external"
+              value="2"
+              c:identifier="META_MONITOR_SWITCH_CONFIG_EXTERNAL"
+              glib:nick="external">
+      </member>
+      <member name="builtin"
+              value="3"
+              c:identifier="META_MONITOR_SWITCH_CONFIG_BUILTIN"
+              glib:nick="builtin">
+      </member>
+      <member name="unknown"
+              value="4"
+              c:identifier="META_MONITOR_SWITCH_CONFIG_UNKNOWN"
+              glib:nick="unknown">
+      </member>
+    </enumeration>
+    <enumeration name="MotionDirection"
+                 glib:type-name="MetaMotionDirection"
+                 glib:get-type="meta_motion_direction_get_type"
+                 c:type="MetaMotionDirection">
+      <member name="up"
+              value="-1"
+              c:identifier="META_MOTION_UP"
+              glib:nick="up">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="323">Upwards motion</doc>
+      </member>
+      <member name="down"
+              value="-2"
+              c:identifier="META_MOTION_DOWN"
+              glib:nick="down">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="324">Downwards motion</doc>
+      </member>
+      <member name="left"
+              value="-3"
+              c:identifier="META_MOTION_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="325">Motion to the left</doc>
+      </member>
+      <member name="right"
+              value="-4"
+              c:identifier="META_MOTION_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="326">Motion to the right</doc>
+      </member>
+      <member name="up_left"
+              value="-5"
+              c:identifier="META_MOTION_UP_LEFT"
+              glib:nick="up-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="327">Motion up and to the left</doc>
+      </member>
+      <member name="up_right"
+              value="-6"
+              c:identifier="META_MOTION_UP_RIGHT"
+              glib:nick="up-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="328">Motion up and to the right</doc>
+      </member>
+      <member name="down_left"
+              value="-7"
+              c:identifier="META_MOTION_DOWN_LEFT"
+              glib:nick="down-left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="329">Motion down and to the left</doc>
+      </member>
+      <member name="down_right"
+              value="-8"
+              c:identifier="META_MOTION_DOWN_RIGHT"
+              glib:nick="down-right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="330">Motion down and to the right</doc>
+      </member>
+    </enumeration>
+    <constant name="PLUGIN_API_VERSION"
+              value="3"
+              c:type="META_PLUGIN_API_VERSION">
+      <source-position filename="../src/meta/meta-version.h" line="26"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function-macro name="PLUGIN_DECLARE"
+                    c:identifier="META_PLUGIN_DECLARE"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-plugin.h" line="334"/>
+      <parameters>
+        <parameter name="ObjectName">
+        </parameter>
+        <parameter name="object_name">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="PLUGIN_DECLARE_WITH_CODE"
+                    c:identifier="META_PLUGIN_DECLARE_WITH_CODE"
+                    introspectable="0">
+      <source-position filename="../src/meta/meta-plugin.h" line="303"/>
+      <parameters>
+        <parameter name="ObjectName">
+        </parameter>
+        <parameter name="object_name">
+        </parameter>
+        <parameter name="CODE">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <constant name="PRIORITY_BEFORE_REDRAW"
+              value="40"
+              c:type="META_PRIORITY_BEFORE_REDRAW">
+      <source-position filename="../src/meta/common.h" line="492"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PRIORITY_PREFS_NOTIFY"
+              value="10"
+              c:type="META_PRIORITY_PREFS_NOTIFY">
+      <source-position filename="../src/meta/common.h" line="506"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PRIORITY_REDRAW" value="50" c:type="META_PRIORITY_REDRAW">
+      <source-position filename="../src/meta/common.h" line="498"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PRIORITY_RESIZE" value="15" c:type="META_PRIORITY_RESIZE">
+      <source-position filename="../src/meta/common.h" line="489"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="PadActionType"
+                 glib:type-name="MetaPadActionType"
+                 glib:get-type="meta_pad_action_type_get_type"
+                 c:type="MetaPadActionType">
+      <member name="button"
+              value="0"
+              c:identifier="META_PAD_ACTION_BUTTON"
+              glib:nick="button">
+      </member>
+      <member name="ring"
+              value="1"
+              c:identifier="META_PAD_ACTION_RING"
+              glib:nick="ring">
+      </member>
+      <member name="strip"
+              value="2"
+              c:identifier="META_PAD_ACTION_STRIP"
+              glib:nick="strip">
+      </member>
+    </enumeration>
+    <class name="Plugin"
+           c:symbol-prefix="plugin"
+           c:type="MetaPlugin"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="MetaPlugin"
+           glib:get-type="meta_plugin_get_type"
+           glib:type-struct="PluginClass">
+      <source-position filename="../src/meta/meta-plugin.h" line="252"/>
+      <function name="manager_set_plugin_type"
+                c:identifier="meta_plugin_manager_set_plugin_type">
+        <source-position filename="../src/meta/meta-plugin.h" line="404"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gtype" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="confirm_display_change">
+        <source-position filename="../src/meta/meta-plugin.h" line="209"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_close_dialog" introspectable="0">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="221">Virtual function called to create a "force quit" dialog
+on non-responsive clients.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="229"/>
+        <return-value>
+          <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="223">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="224">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_inhibit_shortcuts_dialog"
+                      introspectable="0">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="232">Virtual function called to create a "inhibit shortcuts" dialog
+when a client requests compositor shortcuts to be inhibited.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="240"/>
+        <return-value>
+          <type name="InhibitShortcutsDialog"
+                c:type="MetaInhibitShortcutsDialog*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="234">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="235">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="destroy">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="113">Virtual function called when the window represented by @actor is destroyed.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="115">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_tile_preview">
+        <source-position filename="../src/meta/meta-plugin.h" line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="keybinding_filter">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="185">Virtual function called when handling each keybinding.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="193"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/meta-plugin.h"
+               line="191">%TRUE if the plugin handled the keybinding.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="binding" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="187">a #MetaKeyBinding</doc>
+            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="kill_switch_workspace">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="163">Virtual function called when the workspace-switching effect needs to be
+killed prematurely.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="169"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="kill_window_effects">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="152">Virtual function called when the effects on @actor need to be killed
+prematurely; the plugin must call the completed() callback as if the effect
+terminated naturally.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="160"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="154">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="locate_pointer">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="243">Virtual function called when the user triggered the "locate-pointer"
+mechanism.
+The common way to implement this function is to show some animation
+on screen to draw user attention on the pointer location.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="251"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="map">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="104">Virtual function called when the window represented by @actor is mapped.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="110"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="106">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="minimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="77">Virtual function called when the window represented by @actor is minimized.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="83"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="79">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="plugin_info">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="211">Virtual function that returns information about the #MetaPlugin.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="219"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/meta-plugin.h"
+               line="217">a #MetaPluginInfo.</doc>
+          <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="213">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_tile_preview">
+        <source-position filename="../src/meta/meta-plugin.h" line="135"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="tile_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="tile_monitor_number" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_window_menu">
+        <source-position filename="../src/meta/meta-plugin.h" line="141"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="menu" transfer-ownership="none">
+            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_window_menu_for_rect">
+        <source-position filename="../src/meta/meta-plugin.h" line="147"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="menu" transfer-ownership="none">
+            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+          </parameter>
+          <parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="size_change">
+        <source-position filename="../src/meta/meta-plugin.h" line="98"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+          <parameter name="which_change" transfer-ownership="none">
+            <type name="SizeChange" c:type="MetaSizeChange"/>
+          </parameter>
+          <parameter name="old_frame_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="old_buffer_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="size_changed">
+        <source-position filename="../src/meta/meta-plugin.h" line="95"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="start">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="70">Virtual function called when the compositor starts managing a screen</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="75"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="switch_workspace">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="122">Virtual function called when the window represented by @actor is destroyed.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="130"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="from" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="124">origin workspace</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="to" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="125">destination workspace</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="126">a #MetaMotionDirection</doc>
+            <type name="MotionDirection" c:type="MetaMotionDirection"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unminimize">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="86">Virtual function called when the window represented by @actor is unminimized.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="92"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="88">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="xevent_filter">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="171">Virtual function called when handling each event.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="182"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/meta/meta-plugin.h"
+               line="177">%TRUE if the plugin handled the event type (i.e., if the return
+value is %FALSE, there will be no subsequent call to the manager
+completed() callback, and the compositor must ensure that any appropriate
+post-effect cleanup is carried out.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="xlib.XEvent" c:type="XEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="begin_modal" c:identifier="meta_plugin_begin_modal">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-plugin.c"
+             line="138">This function is used to grab the keyboard and mouse for the exclusive
+use of the plugin. Correct operation requires that both the keyboard
+and mouse are grabbed, or thing will break. (In particular, other
+passive X grabs in Meta can trigger but not be handled by the normal
+keybinding handling code.) However, the plugin can establish the keyboard
+and/or mouse grabs ahead of time and pass in the
+%META_MODAL_POINTER_ALREADY_GRABBED and/or %META_MODAL_KEYBOARD_ALREADY_GRABBED
+options. This facility is provided for two reasons: first to allow using
+this function to establish modality after a passive grab, and second to
+allow using obscure features of XGrabPointer() and XGrabKeyboard() without
+having to add them to this API.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="388"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-plugin.c"
+               line="156">whether we successfully grabbed the keyboard and
+ mouse and made the plugin modal.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="140">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="141">flags that modify the behavior of the modal grab</doc>
+            <type name="ModalOptions" c:type="MetaModalOptions"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="142">the timestamp used for establishing grabs</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="complete_display_change"
+              c:identifier="meta_plugin_complete_display_change">
+        <source-position filename="../src/meta/meta-plugin.h" line="368"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="ok" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy_completed"
+              c:identifier="meta_plugin_destroy_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="363"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="end_modal" c:identifier="meta_plugin_end_modal">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-plugin.c"
+             line="170">Ends the modal operation begun with meta_plugin_begin_modal(). This
+ungrabs both the mouse and keyboard even when
+%META_MODAL_POINTER_ALREADY_GRABBED or
+%META_MODAL_KEYBOARD_ALREADY_GRABBED were provided as options
+when beginnning the modal operation.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="394"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="172">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="173">the time used for releasing grabs</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_display" c:identifier="meta_plugin_get_display">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-plugin.c"
+             line="190">Gets the #MetaDisplay corresponding to a plugin.</doc>
+        <source-position filename="../src/meta/meta-plugin.h" line="398"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-plugin.c"
+               line="196">the #MetaDisplay for the plugin</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-plugin.c"
+                 line="192">a #MetaPlugin</doc>
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_info" c:identifier="meta_plugin_get_info">
+        <source-position filename="../src/meta/meta-plugin.h" line="272"/>
+        <return-value transfer-ownership="none">
+          <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="map_completed" c:identifier="meta_plugin_map_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="358"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="minimize_completed"
+              c:identifier="meta_plugin_minimize_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="343"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="size_change_completed"
+              c:identifier="meta_plugin_size_change_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="353"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="switch_workspace_completed"
+              c:identifier="meta_plugin_switch_workspace_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="339"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unminimize_completed"
+              c:identifier="meta_plugin_unminimize_completed">
+        <source-position filename="../src/meta/meta-plugin.h" line="348"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="MetaPlugin*"/>
+          </instance-parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+    </class>
+    <record name="PluginClass"
+            c:type="MetaPluginClass"
+            glib:is-gtype-struct-for="Plugin">
+      <source-position filename="../src/meta/meta-plugin.h" line="252"/>
+      <field name="parent_class" readable="0" private="1">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="start">
+        <callback name="start">
+          <source-position filename="../src/meta/meta-plugin.h" line="75"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="minimize">
+        <callback name="minimize">
+          <source-position filename="../src/meta/meta-plugin.h" line="83"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="79">a #MetaWindowActor</doc>
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unminimize">
+        <callback name="unminimize">
+          <source-position filename="../src/meta/meta-plugin.h" line="92"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="88">a #MetaWindowActor</doc>
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="size_changed">
+        <callback name="size_changed">
+          <source-position filename="../src/meta/meta-plugin.h" line="95"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="size_change">
+        <callback name="size_change">
+          <source-position filename="../src/meta/meta-plugin.h" line="98"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+            <parameter name="which_change" transfer-ownership="none">
+              <type name="SizeChange" c:type="MetaSizeChange"/>
+            </parameter>
+            <parameter name="old_frame_rect" transfer-ownership="none">
+              <type name="Rectangle" c:type="MetaRectangle*"/>
+            </parameter>
+            <parameter name="old_buffer_rect" transfer-ownership="none">
+              <type name="Rectangle" c:type="MetaRectangle*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="map">
+        <callback name="map">
+          <source-position filename="../src/meta/meta-plugin.h" line="110"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="106">a #MetaWindowActor</doc>
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy">
+        <callback name="destroy">
+          <source-position filename="../src/meta/meta-plugin.h" line="119"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="115">a #MetaWindowActor</doc>
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="switch_workspace">
+        <callback name="switch_workspace">
+          <source-position filename="../src/meta/meta-plugin.h" line="130"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="from" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="124">origin workspace</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="to" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="125">destination workspace</doc>
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="126">a #MetaMotionDirection</doc>
+              <type name="MotionDirection" c:type="MetaMotionDirection"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_tile_preview">
+        <callback name="show_tile_preview">
+          <source-position filename="../src/meta/meta-plugin.h" line="135"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="window" transfer-ownership="none">
+              <type name="Window" c:type="MetaWindow*"/>
+            </parameter>
+            <parameter name="tile_rect" transfer-ownership="none">
+              <type name="Rectangle" c:type="MetaRectangle*"/>
+            </parameter>
+            <parameter name="tile_monitor_number" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_tile_preview">
+        <callback name="hide_tile_preview">
+          <source-position filename="../src/meta/meta-plugin.h" line="139"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_window_menu">
+        <callback name="show_window_menu">
+          <source-position filename="../src/meta/meta-plugin.h" line="141"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="window" transfer-ownership="none">
+              <type name="Window" c:type="MetaWindow*"/>
+            </parameter>
+            <parameter name="menu" transfer-ownership="none">
+              <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_window_menu_for_rect">
+        <callback name="show_window_menu_for_rect">
+          <source-position filename="../src/meta/meta-plugin.h" line="147"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="window" transfer-ownership="none">
+              <type name="Window" c:type="MetaWindow*"/>
+            </parameter>
+            <parameter name="menu" transfer-ownership="none">
+              <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
+            </parameter>
+            <parameter name="rect" transfer-ownership="none">
+              <type name="Rectangle" c:type="MetaRectangle*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="kill_window_effects">
+        <callback name="kill_window_effects">
+          <source-position filename="../src/meta/meta-plugin.h" line="160"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="154">a #MetaWindowActor</doc>
+              <type name="WindowActor" c:type="MetaWindowActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="kill_switch_workspace">
+        <callback name="kill_switch_workspace">
+          <source-position filename="../src/meta/meta-plugin.h" line="169"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="xevent_filter">
+        <callback name="xevent_filter">
+          <source-position filename="../src/meta/meta-plugin.h" line="182"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="177">%TRUE if the plugin handled the event type (i.e., if the return
+value is %FALSE, there will be no subsequent call to the manager
+completed() callback, and the compositor must ensure that any appropriate
+post-effect cleanup is carried out.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="xlib.XEvent" c:type="XEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="keybinding_filter">
+        <callback name="keybinding_filter">
+          <source-position filename="../src/meta/meta-plugin.h" line="193"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="191">%TRUE if the plugin handled the keybinding.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="binding" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="187">a #MetaKeyBinding</doc>
+              <type name="KeyBinding" c:type="MetaKeyBinding*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="confirm_display_change">
+        <callback name="confirm_display_change">
+          <source-position filename="../src/meta/meta-plugin.h" line="209"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="plugin_info">
+        <callback name="plugin_info">
+          <source-position filename="../src/meta/meta-plugin.h" line="219"/>
+          <return-value transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/meta/meta-plugin.h"
+                 line="217">a #MetaPluginInfo.</doc>
+            <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="213">a #MetaPlugin</doc>
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_close_dialog" introspectable="0">
+        <callback name="create_close_dialog" introspectable="0">
+          <source-position filename="../src/meta/meta-plugin.h" line="229"/>
+          <return-value>
+            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="223">a #MetaPlugin</doc>
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="window" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="224">a #MetaWindow</doc>
+              <type name="Window" c:type="MetaWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_inhibit_shortcuts_dialog" introspectable="0">
+        <callback name="create_inhibit_shortcuts_dialog" introspectable="0">
+          <source-position filename="../src/meta/meta-plugin.h" line="240"/>
+          <return-value>
+            <type name="InhibitShortcutsDialog"
+                  c:type="MetaInhibitShortcutsDialog*"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="234">a #MetaPlugin</doc>
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+            <parameter name="window" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/meta/meta-plugin.h"
+                   line="235">a #MetaWindow</doc>
+              <type name="Window" c:type="MetaWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="locate_pointer">
+        <callback name="locate_pointer">
+          <source-position filename="../src/meta/meta-plugin.h" line="251"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="MetaPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="PluginInfo" c:type="MetaPluginInfo">
+      <source-position filename="../src/meta/meta-plugin.h" line="269"/>
+      <field name="name" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="256">name of the plugin</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+      <field name="version" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="257">version of the plugin</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+      <field name="author" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="258">author of the plugin</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+      <field name="license" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="259">license of the plugin</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="260">description of the plugin</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </field>
+    </record>
+    <record name="PluginVersion" c:type="MetaPluginVersion">
+      <source-position filename="../src/meta/meta-plugin.h" line="298"/>
+      <field name="version_major" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="276">major component of the version number of Meta with which the plugin was 
compiled</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="version_minor" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="277">minor component of the version number of Meta with which the plugin was 
compiled</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="version_micro" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="278">micro component of the version number of Meta with which the plugin was 
compiled</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="version_api" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-plugin.h"
+             line="279">version of the plugin API</doc>
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <enumeration name="Preference"
+                 glib:type-name="MetaPreference"
+                 glib:get-type="meta_preference_get_type"
+                 c:type="MetaPreference">
+      <member name="mouse_button_mods"
+              value="0"
+              c:identifier="META_PREF_MOUSE_BUTTON_MODS"
+              glib:nick="mouse-button-mods">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="35">mouse button modifiers</doc>
+      </member>
+      <member name="focus_mode"
+              value="1"
+              c:identifier="META_PREF_FOCUS_MODE"
+              glib:nick="focus-mode">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="36">focus mode</doc>
+      </member>
+      <member name="focus_new_windows"
+              value="2"
+              c:identifier="META_PREF_FOCUS_NEW_WINDOWS"
+              glib:nick="focus-new-windows">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="37">focus new windows</doc>
+      </member>
+      <member name="attach_modal_dialogs"
+              value="3"
+              c:identifier="META_PREF_ATTACH_MODAL_DIALOGS"
+              glib:nick="attach-modal-dialogs">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="38">attach modal dialogs</doc>
+      </member>
+      <member name="raise_on_click"
+              value="4"
+              c:identifier="META_PREF_RAISE_ON_CLICK"
+              glib:nick="raise-on-click">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="39">raise on click</doc>
+      </member>
+      <member name="action_double_click_titlebar"
+              value="5"
+              c:identifier="META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR"
+              glib:nick="action-double-click-titlebar">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="40">action double click titlebar</doc>
+      </member>
+      <member name="action_middle_click_titlebar"
+              value="6"
+              c:identifier="META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR"
+              glib:nick="action-middle-click-titlebar">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="41">action middle click titlebar</doc>
+      </member>
+      <member name="action_right_click_titlebar"
+              value="7"
+              c:identifier="META_PREF_ACTION_RIGHT_CLICK_TITLEBAR"
+              glib:nick="action-right-click-titlebar">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="42">action right click titlebar</doc>
+      </member>
+      <member name="auto_raise"
+              value="8"
+              c:identifier="META_PREF_AUTO_RAISE"
+              glib:nick="auto-raise">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="43">auto-raise</doc>
+      </member>
+      <member name="auto_raise_delay"
+              value="9"
+              c:identifier="META_PREF_AUTO_RAISE_DELAY"
+              glib:nick="auto-raise-delay">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="44">auto-raise delay</doc>
+      </member>
+      <member name="focus_change_on_pointer_rest"
+              value="10"
+              c:identifier="META_PREF_FOCUS_CHANGE_ON_POINTER_REST"
+              glib:nick="focus-change-on-pointer-rest">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="45">focus change on pointer rest</doc>
+      </member>
+      <member name="titlebar_font"
+              value="11"
+              c:identifier="META_PREF_TITLEBAR_FONT"
+              glib:nick="titlebar-font">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="46">title-bar font</doc>
+      </member>
+      <member name="num_workspaces"
+              value="12"
+              c:identifier="META_PREF_NUM_WORKSPACES"
+              glib:nick="num-workspaces">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="47">number of workspaces</doc>
+      </member>
+      <member name="dynamic_workspaces"
+              value="13"
+              c:identifier="META_PREF_DYNAMIC_WORKSPACES"
+              glib:nick="dynamic-workspaces">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="48">dynamic workspaces</doc>
+      </member>
+      <member name="keybindings"
+              value="14"
+              c:identifier="META_PREF_KEYBINDINGS"
+              glib:nick="keybindings">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="49">keybindings</doc>
+      </member>
+      <member name="disable_workarounds"
+              value="15"
+              c:identifier="META_PREF_DISABLE_WORKAROUNDS"
+              glib:nick="disable-workarounds">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="50">disable workarounds</doc>
+      </member>
+      <member name="button_layout"
+              value="16"
+              c:identifier="META_PREF_BUTTON_LAYOUT"
+              glib:nick="button-layout">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="51">button layout</doc>
+      </member>
+      <member name="workspace_names"
+              value="17"
+              c:identifier="META_PREF_WORKSPACE_NAMES"
+              glib:nick="workspace-names">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="52">workspace names</doc>
+      </member>
+      <member name="visual_bell"
+              value="18"
+              c:identifier="META_PREF_VISUAL_BELL"
+              glib:nick="visual-bell">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="53">visual bell</doc>
+      </member>
+      <member name="audible_bell"
+              value="19"
+              c:identifier="META_PREF_AUDIBLE_BELL"
+              glib:nick="audible-bell">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="54">audible bell</doc>
+      </member>
+      <member name="visual_bell_type"
+              value="20"
+              c:identifier="META_PREF_VISUAL_BELL_TYPE"
+              glib:nick="visual-bell-type">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="55">visual bell type</doc>
+      </member>
+      <member name="gnome_accessibility"
+              value="21"
+              c:identifier="META_PREF_GNOME_ACCESSIBILITY"
+              glib:nick="gnome-accessibility">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="56">GNOME accessibility</doc>
+      </member>
+      <member name="gnome_animations"
+              value="22"
+              c:identifier="META_PREF_GNOME_ANIMATIONS"
+              glib:nick="gnome-animations">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="57">GNOME animations</doc>
+      </member>
+      <member name="cursor_theme"
+              value="23"
+              c:identifier="META_PREF_CURSOR_THEME"
+              glib:nick="cursor-theme">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="58">cursor theme</doc>
+      </member>
+      <member name="cursor_size"
+              value="24"
+              c:identifier="META_PREF_CURSOR_SIZE"
+              glib:nick="cursor-size">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="59">cursor size</doc>
+      </member>
+      <member name="resize_with_right_button"
+              value="25"
+              c:identifier="META_PREF_RESIZE_WITH_RIGHT_BUTTON"
+              glib:nick="resize-with-right-button">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="60">resize with right button</doc>
+      </member>
+      <member name="edge_tiling"
+              value="26"
+              c:identifier="META_PREF_EDGE_TILING"
+              glib:nick="edge-tiling">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="61">edge tiling</doc>
+      </member>
+      <member name="force_fullscreen"
+              value="27"
+              c:identifier="META_PREF_FORCE_FULLSCREEN"
+              glib:nick="force-fullscreen">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="62">force fullscreen</doc>
+      </member>
+      <member name="workspaces_only_on_primary"
+              value="28"
+              c:identifier="META_PREF_WORKSPACES_ONLY_ON_PRIMARY"
+              glib:nick="workspaces-only-on-primary">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="63">workspaces only on primary</doc>
+      </member>
+      <member name="draggable_border_width"
+              value="29"
+              c:identifier="META_PREF_DRAGGABLE_BORDER_WIDTH"
+              glib:nick="draggable-border-width">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="64">draggable border width</doc>
+      </member>
+      <member name="auto_maximize"
+              value="30"
+              c:identifier="META_PREF_AUTO_MAXIMIZE"
+              glib:nick="auto-maximize">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="65">auto-maximize</doc>
+      </member>
+      <member name="center_new_windows"
+              value="31"
+              c:identifier="META_PREF_CENTER_NEW_WINDOWS"
+              glib:nick="center-new-windows">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="66">center new windows</doc>
+      </member>
+      <member name="drag_threshold"
+              value="32"
+              c:identifier="META_PREF_DRAG_THRESHOLD"
+              glib:nick="drag-threshold">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="67">drag threshold</doc>
+      </member>
+      <member name="locate_pointer"
+              value="33"
+              c:identifier="META_PREF_LOCATE_POINTER"
+              glib:nick="locate-pointer">
+        <doc xml:space="preserve"
+             filename="../src/meta/prefs.h"
+             line="68">show pointer location</doc>
+      </member>
+      <member name="check_alive_timeout"
+              value="34"
+              c:identifier="META_PREF_CHECK_ALIVE_TIMEOUT"
+              glib:nick="check-alive-timeout">
+      </member>
+      <function name="to_string" c:identifier="meta_preference_to_string">
+        <source-position filename="../src/meta/prefs.h" line="126"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pref" transfer-ownership="none">
+            <type name="Preference" c:type="MetaPreference"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <callback name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc">
+      <source-position filename="../src/meta/prefs.h" line="111"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pref" transfer-ownership="none">
+          <type name="Preference" c:type="MetaPreference"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="Rectangle"
+            c:type="MetaRectangle"
+            glib:type-name="MetaRectangle"
+            glib:get-type="meta_rectangle_get_type"
+            c:symbol-prefix="rectangle">
+      <source-position filename="../src/meta/boxes.h" line="51"/>
+      <field name="x" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="32">X coordinate of the top-left corner</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="y" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="33">Y coordinate of the top-left corner</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="width" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="34">Width of the rectangle</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="height" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="35">Height of the rectangle</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <method name="area" c:identifier="meta_rectangle_area">
+        <source-position filename="../src/meta/boxes.h" line="111"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="contains_rect" c:identifier="meta_rectangle_contains_rect">
+        <source-position filename="../src/meta/boxes.h" line="156"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="outer_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="inner_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="meta_rectangle_copy">
+        <source-position filename="../src/meta/boxes.h" line="100"/>
+        <return-value transfer-ownership="full">
+          <type name="Rectangle" c:type="MetaRectangle*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="could_fit_rect"
+              c:identifier="meta_rectangle_could_fit_rect">
+        <source-position filename="../src/meta/boxes.h" line="152"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="outer_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="inner_rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="equal" c:identifier="meta_rectangle_equal">
+        <source-position filename="../src/meta/boxes.h" line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src1" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="src2" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="meta_rectangle_free">
+        <source-position filename="../src/meta/boxes.h" line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect" transfer-ownership="none">
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="horiz_overlap" c:identifier="meta_rectangle_horiz_overlap">
+        <source-position filename="../src/meta/boxes.h" line="145"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect1" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="rect2" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="intersect" c:identifier="meta_rectangle_intersect">
+        <source-position filename="../src/meta/boxes.h" line="114"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/boxes.c"
+               line="188">TRUE is some intersection exists and is not degenerate, FALSE
+  otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="src1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="183">a #MetaRectangle</doc>
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="src2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="184">another #MetaRectangle</doc>
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+          <parameter name="dest"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="185">an empty #MetaRectangle, to be filled
+  with the coordinates of the intersection.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="overlap" c:identifier="meta_rectangle_overlap">
+        <source-position filename="../src/meta/boxes.h" line="132"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect1" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="rect2" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union" c:identifier="meta_rectangle_union">
+        <source-position filename="../src/meta/boxes.h" line="124"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect1" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="240">a #MetaRectangle</doc>
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="rect2" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="241">another #MetaRectangle</doc>
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+          <parameter name="dest"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/boxes.c"
+                 line="242">an empty #MetaRectangle, to be filled
+  with the coordinates of the bounding box.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="vert_overlap" c:identifier="meta_rectangle_vert_overlap">
+        <source-position filename="../src/meta/boxes.h" line="141"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="rect1" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </instance-parameter>
+          <parameter name="rect2" transfer-ownership="none">
+            <type name="Rectangle" c:type="const MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="RemoteAccessController"
+           c:symbol-prefix="remote_access_controller"
+           c:type="MetaRemoteAccessController"
+           parent="GObject.Object"
+           glib:type-name="MetaRemoteAccessController"
+           glib:get-type="meta_remote_access_controller_get_type"
+           glib:type-struct="RemoteAccessControllerClass">
+      <source-position filename="../src/meta/meta-remote-access-controller.h"
+                       line="52"/>
+      <method name="inhibit_remote_access"
+              c:identifier="meta_remote_access_controller_inhibit_remote_access">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-remote-access-controller.c"
+             line="146">Inhibits remote access sessions from being created and running. Any active
+remote access session will be terminated.</doc>
+        <source-position filename="../src/meta/meta-remote-access-controller.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="controller" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-remote-access-controller.c"
+                 line="148">a #MetaRemoteAccessController</doc>
+            <type name="RemoteAccessController"
+                  c:type="MetaRemoteAccessController*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="uninhibit_remote_access"
+              c:identifier="meta_remote_access_controller_uninhibit_remote_access">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-remote-access-controller.c"
+             line="162">Uninhibits remote access sessions from being created and running. If this was
+the last inhibitation that was inhibited, new remote access sessions can now
+be created.</doc>
+        <source-position filename="../src/meta/meta-remote-access-controller.h"
+                         line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="controller" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-remote-access-controller.c"
+                 line="164">a #MetaRemoteAccessController</doc>
+            <type name="RemoteAccessController"
+                  c:type="MetaRemoteAccessController*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <glib:signal name="new-handle" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="RemoteAccessHandle"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="RemoteAccessControllerClass"
+            c:type="MetaRemoteAccessControllerClass"
+            glib:is-gtype-struct-for="RemoteAccessController">
+      <source-position filename="../src/meta/meta-remote-access-controller.h"
+                       line="52"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="RemoteAccessHandle"
+           c:symbol-prefix="remote_access_handle"
+           c:type="MetaRemoteAccessHandle"
+           parent="GObject.Object"
+           glib:type-name="MetaRemoteAccessHandle"
+           glib:get-type="meta_remote_access_handle_get_type"
+           glib:type-struct="RemoteAccessHandleClass">
+      <source-position filename="../src/meta/meta-remote-access-controller.h"
+                       line="41"/>
+      <virtual-method name="stop" invoker="stop">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-remote-access-controller.c"
+             line="84">Stop the associated remote access session.</doc>
+        <source-position filename="../src/meta/meta-remote-access-controller.h"
+                         line="40"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="handle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-remote-access-controller.c"
+                 line="86">A #MetaRemoteAccessHandle</doc>
+            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_disable_animations"
+              c:identifier="meta_remote_access_handle_get_disable_animations">
+        <source-position filename="../src/meta/meta-remote-access-controller.h"
+                         line="47"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="handle" transfer-ownership="none">
+            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="stop" c:identifier="meta_remote_access_handle_stop">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-remote-access-controller.c"
+             line="84">Stop the associated remote access session.</doc>
+        <source-position filename="../src/meta/meta-remote-access-controller.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="handle" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/backends/meta-remote-access-controller.c"
+                 line="86">A #MetaRemoteAccessHandle</doc>
+            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="is-recording"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="stopped" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="RemoteAccessHandleClass"
+            c:type="MetaRemoteAccessHandleClass"
+            glib:is-gtype-struct-for="RemoteAccessHandle">
+      <source-position filename="../src/meta/meta-remote-access-controller.h"
+                       line="41"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="stop">
+        <callback name="stop">
+          <source-position filename="../src/meta/meta-remote-access-controller.h"
+                           line="40"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="handle" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/backends/meta-remote-access-controller.c"
+                   line="86">A #MetaRemoteAccessHandle</doc>
+              <type name="RemoteAccessHandle"
+                    c:type="MetaRemoteAccessHandle*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="Selection"
+           c:symbol-prefix="selection"
+           c:type="MetaSelection"
+           parent="GObject.Object"
+           glib:type-name="MetaSelection"
+           glib:get-type="meta_selection_get_type"
+           glib:type-struct="SelectionClass">
+      <source-position filename="../src/meta/meta-selection.h" line="34"/>
+      <constructor name="new" c:identifier="meta_selection_new">
+        <source-position filename="../src/meta/meta-selection.h" line="41"/>
+        <return-value transfer-ownership="full">
+          <type name="Selection" c:type="MetaSelection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_mimetypes" c:identifier="meta_selection_get_mimetypes">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection.c"
+             line="155">Returns the list of supported mimetypes for the given selection type.</doc>
+        <source-position filename="../src/meta/meta-selection.h" line="53"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection.c"
+               line="162">The supported mimetypes</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="157">The selection manager</doc>
+            <type name="Selection" c:type="MetaSelection*"/>
+          </instance-parameter>
+          <parameter name="selection_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="158">Selection to query</doc>
+            <type name="SelectionType" c:type="MetaSelectionType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_owner" c:identifier="meta_selection_set_owner">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection.c"
+             line="101">Sets @owner as the owner of the selection given by @selection_type,
+unsets any previous owner there was.</doc>
+        <source-position filename="../src/meta/meta-selection.h" line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="103">The selection manager</doc>
+            <type name="Selection" c:type="MetaSelection*"/>
+          </instance-parameter>
+          <parameter name="selection_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="104">Selection type</doc>
+            <type name="SelectionType" c:type="MetaSelectionType"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="105">New selection owner</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transfer_async"
+              c:identifier="meta_selection_transfer_async">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection.c"
+             line="341">Requests a transfer of @mimetype on the selection given by
+@selection_type.</doc>
+        <source-position filename="../src/meta/meta-selection.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="343">The selection manager</doc>
+            <type name="Selection" c:type="MetaSelection*"/>
+          </instance-parameter>
+          <parameter name="selection_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="344">Selection type</doc>
+            <type name="SelectionType" c:type="MetaSelectionType"/>
+          </parameter>
+          <parameter name="mimetype" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="345">Mimetype to transfer</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="346">Maximum size to transfer, -1 for unlimited</doc>
+            <type name="gssize" c:type="gssize"/>
+          </parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="347">Output stream to write contents to</doc>
+            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="348">Cancellable</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="async"
+                     closure="6">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="349">User callback</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/core/meta-selection.c"
+                 line="350">User data</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transfer_finish"
+              c:identifier="meta_selection_transfer_finish"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection.c"
+             line="385">Finishes the transfer of a queried mimetype.</doc>
+        <source-position filename="../src/meta/meta-selection.h" line="66"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection.c"
+               line="393">#TRUE if the transfer was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="387">The selection manager</doc>
+            <type name="Selection" c:type="MetaSelection*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="388">The async result</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset_owner" c:identifier="meta_selection_unset_owner">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection.c"
+             line="129">Unsets @owner as the owner the selection given by @selection_type. If
+@owner does not own the selection, nothing is done.</doc>
+        <source-position filename="../src/meta/meta-selection.h" line="48"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="selection" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="131">The selection manager</doc>
+            <type name="Selection" c:type="MetaSelection*"/>
+          </instance-parameter>
+          <parameter name="selection_type" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="132">Selection type</doc>
+            <type name="SelectionType" c:type="MetaSelectionType"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection.c"
+                 line="133">Owner to unset</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="owner-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="SelectionSource"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="SelectionClass"
+            c:type="MetaSelectionClass"
+            glib:is-gtype-struct-for="Selection">
+      <source-position filename="../src/meta/meta-selection.h" line="34"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="SelectionSource"
+           c:symbol-prefix="selection_source"
+           c:type="MetaSelectionSource"
+           parent="GObject.Object"
+           glib:type-name="MetaSelectionSource"
+           glib:get-type="meta_selection_source_get_type"
+           glib:type-struct="SelectionSourceClass">
+      <source-position filename="../src/meta/meta-selection-source.h"
+                       line="65"/>
+      <virtual-method name="activated">
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="deactivated">
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_mimetypes" invoker="get_mimetypes">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection-source.c"
+             line="133">Returns the list of supported mimetypes.</doc>
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="55"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection-source.c"
+               line="139">The supported mimetypes</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="135">The selection source</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="read_async" invoker="read_async">
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+          <parameter name="mimetype" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     closure="3">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="read_finish" invoker="read_finish" throws="1">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection-source.c"
+             line="110">Finishes a read from the selection source.</doc>
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="62"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection-source.c"
+               line="118">The resulting #GInputStream</doc>
+          <type name="Gio.InputStream" c:type="GInputStream*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="112">The selection source</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="113">The async result</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_mimetypes"
+              c:identifier="meta_selection_source_get_mimetypes">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection-source.c"
+             line="133">Returns the list of supported mimetypes.</doc>
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="80"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection-source.c"
+               line="139">The supported mimetypes</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="135">The selection source</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_active" c:identifier="meta_selection_source_is_active">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection-source.c"
+             line="149">Returns #TRUE if the source is active on a selection.</doc>
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="83"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection-source.c"
+               line="155">#TRUE if the source owns a selection.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="151">the selection source</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="read_async"
+              c:identifier="meta_selection_source_read_async">
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+          <parameter name="mimetype" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_finish"
+              c:identifier="meta_selection_source_read_finish"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-selection-source.c"
+             line="110">Finishes a read from the selection source.</doc>
+        <source-position filename="../src/meta/meta-selection-source.h"
+                         line="75"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-selection-source.c"
+               line="118">The resulting #GInputStream</doc>
+          <type name="Gio.InputStream" c:type="GInputStream*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="source" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="112">The selection source</doc>
+            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="113">The async result</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="activated" when="last" action="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="deactivated" when="last" action="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="SelectionSourceClass"
+            c:type="MetaSelectionSourceClass"
+            glib:is-gtype-struct-for="SelectionSource">
+      <source-position filename="../src/meta/meta-selection-source.h"
+                       line="65"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="activated">
+        <callback name="activated">
+          <source-position filename="../src/meta/meta-selection-source.h"
+                           line="52"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="source" transfer-ownership="none">
+              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deactivated">
+        <callback name="deactivated">
+          <source-position filename="../src/meta/meta-selection-source.h"
+                           line="53"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="source" transfer-ownership="none">
+              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_mimetypes">
+        <callback name="get_mimetypes">
+          <source-position filename="../src/meta/meta-selection-source.h"
+                           line="55"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="139">The supported mimetypes</doc>
+            <type name="GLib.List" c:type="GList*">
+              <type name="utf8"/>
+            </type>
+          </return-value>
+          <parameters>
+            <parameter name="source" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-selection-source.c"
+                   line="135">The selection source</doc>
+              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read_async">
+        <callback name="read_async">
+          <source-position filename="../src/meta/meta-selection-source.h"
+                           line="57"/>
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="source" transfer-ownership="none">
+              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+            </parameter>
+            <parameter name="mimetype" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="cancellable"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1">
+              <type name="Gio.Cancellable" c:type="GCancellable*"/>
+            </parameter>
+            <parameter name="callback"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1"
+                       scope="async"
+                       closure="4">
+              <type name="Gio.AsyncReadyCallback"
+                    c:type="GAsyncReadyCallback"/>
+            </parameter>
+            <parameter name="user_data"
+                       transfer-ownership="none"
+                       nullable="1"
+                       allow-none="1"
+                       closure="4">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read_finish">
+        <callback name="read_finish" throws="1">
+          <source-position filename="../src/meta/meta-selection-source.h"
+                           line="62"/>
+          <return-value transfer-ownership="full">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-selection-source.c"
+                 line="118">The resulting #GInputStream</doc>
+            <type name="Gio.InputStream" c:type="GInputStream*"/>
+          </return-value>
+          <parameters>
+            <parameter name="source" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-selection-source.c"
+                   line="112">The selection source</doc>
+              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+            </parameter>
+            <parameter name="result" transfer-ownership="none">
+              <doc xml:space="preserve"
+                   filename="../src/core/meta-selection-source.c"
+                   line="113">The async result</doc>
+              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="SelectionSourceMemory"
+           c:symbol-prefix="selection_source_memory"
+           c:type="MetaSelectionSourceMemory"
+           parent="SelectionSource"
+           glib:type-name="MetaSelectionSourceMemory"
+           glib:get-type="meta_selection_source_memory_get_type"
+           glib:type-struct="SelectionSourceMemoryClass">
+      <source-position filename="../src/meta/meta-selection-source-memory.h"
+                       line="30"/>
+      <constructor name="new" c:identifier="meta_selection_source_memory_new">
+        <source-position filename="../src/meta/meta-selection-source-memory.h"
+                         line="36"/>
+        <return-value transfer-ownership="full">
+          <type name="SelectionSource" c:type="MetaSelectionSource*"/>
+        </return-value>
+        <parameters>
+          <parameter name="mimetype" transfer-ownership="none">
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="content" transfer-ownership="none">
+            <type name="GLib.Bytes" c:type="GBytes*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </class>
+    <record name="SelectionSourceMemoryClass"
+            c:type="MetaSelectionSourceMemoryClass"
+            glib:is-gtype-struct-for="SelectionSourceMemory">
+      <source-position filename="../src/meta/meta-selection-source-memory.h"
+                       line="30"/>
+      <field name="parent_class">
+        <type name="SelectionSourceClass" c:type="MetaSelectionSourceClass"/>
+      </field>
+    </record>
+    <enumeration name="SelectionType"
+                 glib:type-name="MetaSelectionType"
+                 glib:get-type="meta_selection_type_get_type"
+                 c:type="MetaSelectionType">
+      <member name="selection_primary"
+              value="0"
+              c:identifier="META_SELECTION_PRIMARY"
+              glib:nick="selection-primary">
+      </member>
+      <member name="selection_clipboard"
+              value="1"
+              c:identifier="META_SELECTION_CLIPBOARD"
+              glib:nick="selection-clipboard">
+      </member>
+      <member name="selection_dnd"
+              value="2"
+              c:identifier="META_SELECTION_DND"
+              glib:nick="selection-dnd">
+      </member>
+      <member name="n_selection_types"
+              value="3"
+              c:identifier="META_N_SELECTION_TYPES"
+              glib:nick="n-selection-types">
+      </member>
+    </enumeration>
+    <record name="Settings" c:type="MetaSettings" disguised="1">
+      <source-position filename="../src/meta/types.h" line="43"/>
+      <method name="get_font_dpi" c:identifier="meta_settings_get_font_dpi">
+        <source-position filename="../src/meta/meta-settings.h" line="32"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="settings" transfer-ownership="none">
+            <type name="Settings" c:type="MetaSettings*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_ui_scaling_factor"
+              c:identifier="meta_settings_get_ui_scaling_factor">
+        <source-position filename="../src/meta/meta-settings.h" line="29"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="settings" transfer-ownership="none">
+            <type name="Settings" c:type="MetaSettings*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="Shadow"
+            c:type="MetaShadow"
+            glib:type-name="MetaShadow"
+            glib:get-type="meta_shadow_get_type"
+            c:symbol-prefix="shadow">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-shadow-factory.h"
+           line="91">#MetaShadow holds a shadow texture along with information about how to
+apply that texture to draw a window texture. (E.g., it knows how big the
+unscaled borders are on each side of the shadow texture.)</doc>
+      <source-position filename="../src/meta/meta-shadow-factory.h" line="97"/>
+      <method name="get_bounds" c:identifier="meta_shadow_get_bounds">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shadow-factory.c"
+             line="361">Computes the bounds of the pixels that will be affected by
+meta_shadow_paint()</doc>
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="117"/>
+        <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/compositor/meta-shadow-factory.c"
+                 line="363">a #MetaShadow</doc>
+            <type name="Shadow" c:type="MetaShadow*"/>
+          </instance-parameter>
+          <parameter name="window_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="364">x position of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="365">y position of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="366">actual width of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="367">actual height of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="bounds" transfer-ownership="none">
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paint" c:identifier="meta_shadow_paint">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shadow-factory.c"
+             line="183">Paints the shadow at the given position, for the specified actual
+size of the region. (Since a #MetaShadow can be shared between
+different sizes with the same extracted #MetaWindowShape the
+size needs to be passed in here.)</doc>
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="106"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shadow" transfer-ownership="none">
+            <type name="Shadow" c:type="MetaShadow*"/>
+          </instance-parameter>
+          <parameter name="framebuffer" transfer-ownership="none">
+            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
+          </parameter>
+          <parameter name="window_x" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="185">x position of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_y" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="186">y position of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="187">actual width of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="window_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="188">actual height of the region to paint a shadow for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="opacity" transfer-ownership="none">
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="clip"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="189">if non-%NULL specifies the visible portion
+  of the shadow.</doc>
+            <type name="cairo.Region" c:type="cairo_region_t*"/>
+          </parameter>
+          <parameter name="clip_strictly" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="191">if %TRUE, drawing will be clipped strictly
+  to @clip, otherwise, it will be only used to optimize
+  drawing.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="meta_shadow_ref">
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="100"/>
+        <return-value transfer-ownership="full">
+          <type name="Shadow" c:type="MetaShadow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shadow" transfer-ownership="none">
+            <type name="Shadow" c:type="MetaShadow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="meta_shadow_unref">
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="103"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shadow" transfer-ownership="none">
+            <type name="Shadow" c:type="MetaShadow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="ShadowFactory"
+           c:symbol-prefix="shadow_factory"
+           c:type="MetaShadowFactory"
+           parent="GObject.Object"
+           glib:type-name="MetaShadowFactory"
+           glib:get-type="meta_shadow_factory_get_type"
+           glib:type-struct="ShadowFactoryClass">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-shadow-factory.h"
+           line="69">#MetaShadowFactory is used to create window shadows. It caches shadows internally
+so that multiple shadows created for the same shape with the same radius will
+share the same MetaShadow.</doc>
+      <source-position filename="../src/meta/meta-shadow-factory.h" line="64"/>
+      <constructor name="new" c:identifier="meta_shadow_factory_new">
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="125"/>
+        <return-value transfer-ownership="full">
+          <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
+        </return-value>
+      </constructor>
+      <function name="get_default"
+                c:identifier="meta_shadow_factory_get_default">
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="77"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-shadow-factory.c"
+               line="465">the global singleton shadow factory</doc>
+          <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
+        </return-value>
+      </function>
+      <method name="get_params" c:identifier="meta_shadow_factory_get_params">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shadow-factory.c"
+             line="1036">Gets the shadow parameters for a particular class of shadows
+for either the focused or unfocused state. If the class name
+does not name an existing class, default values will be returned
+without printing an error.</doc>
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="86"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1038">a #MetaShadowFactory</doc>
+            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
+          </instance-parameter>
+          <parameter name="class_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1039">name of the class of shadow to get the params for</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="focused" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1040">whether the shadow is for a focused window</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="params"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1041">location to store the current parameter values</doc>
+            <type name="ShadowParams" c:type="MetaShadowParams*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_shadow" c:identifier="meta_shadow_factory_get_shadow">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shadow-factory.c"
+             line="859">Gets the appropriate shadow object for drawing shadows for the
+specified window shape. The region that we are shadowing is specified
+as a combination of a size-invariant extracted shape and the size.
+In some cases, the same shadow object can be shared between sizes;
+in other cases a different shadow object is used for each size.</doc>
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="128"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-shadow-factory.c"
+               line="874">a newly referenced #MetaShadow; unref with
+ meta_shadow_unref()</doc>
+          <type name="Shadow" c:type="MetaShadow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="861">a #MetaShadowFactory</doc>
+            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
+          </instance-parameter>
+          <parameter name="shape" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="862">the size-invariant shape of the window's region</doc>
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="863">the actual width of the window's region</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="864">the actual height of the window's region</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="class_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="865">name of the class of window shadows</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="focused" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="866">whether the shadow is for a focused window</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_params" c:identifier="meta_shadow_factory_set_params">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shadow-factory.c"
+             line="999">Updates the shadow parameters for a particular class of shadows
+for either the focused or unfocused state. If the class name
+does not name an existing class, a new class will be created
+(the other focus state for that class will have default values
+assigned to it.)</doc>
+        <source-position filename="../src/meta/meta-shadow-factory.h"
+                         line="80"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1001">a #MetaShadowFactory</doc>
+            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
+          </instance-parameter>
+          <parameter name="class_name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1002">name of the class of shadow to set the params for.
+ the default shadow classes are the names of the different
+ theme frame types (normal, dialog, modal_dialog, utility,
+ border, menu, attached) and in addition, popup-menu
+ and dropdown-menu.</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="focused" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1007">whether the shadow is for a focused window</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="params" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shadow-factory.c"
+                 line="1008">new parameter values</doc>
+            <type name="ShadowParams" c:type="MetaShadowParams*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ShadowFactoryClass"
+            c:type="MetaShadowFactoryClass"
+            glib:is-gtype-struct-for="ShadowFactory">
+      <source-position filename="../src/meta/meta-shadow-factory.h" line="64"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="ShadowMode"
+                 glib:type-name="MetaShadowMode"
+                 glib:get-type="meta_shadow_mode_get_type"
+                 c:type="MetaShadowMode">
+      <member name="auto"
+              value="0"
+              c:identifier="META_SHADOW_MODE_AUTO"
+              glib:nick="auto">
+      </member>
+      <member name="forced_off"
+              value="1"
+              c:identifier="META_SHADOW_MODE_FORCED_OFF"
+              glib:nick="forced-off">
+      </member>
+      <member name="forced_on"
+              value="2"
+              c:identifier="META_SHADOW_MODE_FORCED_ON"
+              glib:nick="forced-on">
+      </member>
+    </enumeration>
+    <record name="ShadowParams" c:type="MetaShadowParams">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-shadow-factory.h"
+           line="35">The #MetaShadowParams structure holds information about how to draw
+a particular style of shadow.</doc>
+      <source-position filename="../src/meta/meta-shadow-factory.h" line="59"/>
+      <field name="radius" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-shadow-factory.h"
+             line="37">the radius (gaussian standard deviation) of the shadow</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="top_fade" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-shadow-factory.h"
+             line="38">if &gt;= 0, the shadow doesn't extend above the top
+ of the shape, and fades out over the given number of pixels</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="x_offset" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-shadow-factory.h"
+             line="40">horizontal offset of the shadow with respect to the
+ shape being shadowed, in pixels</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="y_offset" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-shadow-factory.h"
+             line="42">vertical offset of the shadow with respect to the
+ shape being shadowed, in pixels</doc>
+        <type name="gint" c:type="int"/>
+      </field>
+      <field name="opacity" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/meta-shadow-factory.h"
+             line="44">opacity of the shadow, from 0 to 255</doc>
+        <type name="guint8" c:type="guint8"/>
+      </field>
+    </record>
+    <class name="ShapedTexture"
+           c:symbol-prefix="shaped_texture"
+           c:type="MetaShapedTexture"
+           parent="GObject.Object"
+           glib:type-name="MetaShapedTexture"
+           glib:get-type="meta_shaped_texture_get_type"
+           glib:type-struct="ShapedTextureClass">
+      <source-position filename="../src/meta/meta-shaped-texture.h" line="37"/>
+      <implements name="Clutter.Content"/>
+      <method name="get_image" c:identifier="meta_shaped_texture_get_image">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-shaped-texture.c"
+             line="1451">Flattens the two layers of the shaped texture into one ARGB32
+image by alpha blending the two images, and returns the flattened
+image.</doc>
+        <source-position filename="../src/meta/meta-shaped-texture.h"
+                         line="55"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-shaped-texture.c"
+               line="1462">a new cairo surface to be freed with
+cairo_surface_destroy().</doc>
+          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stex" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shaped-texture.c"
+                 line="1453">A #MetaShapedTexture</doc>
+            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
+          </instance-parameter>
+          <parameter name="clip"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shaped-texture.c"
+                 line="1454">A clipping rectangle, to help prevent extra processing.
+In the case that the clipping rectangle is partially or fully
+outside the bounds of the texture, the rectangle will be clipped.</doc>
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_texture"
+              c:identifier="meta_shaped_texture_get_texture">
+        <source-position filename="../src/meta/meta-shaped-texture.h"
+                         line="48"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-shaped-texture.c"
+               line="1138">the unshaped texture</doc>
+          <type name="Cogl.Texture" c:type="CoglTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stex" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-shaped-texture.c"
+                 line="1136">The #MetaShapedTexture</doc>
+            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_create_mipmaps"
+              c:identifier="meta_shaped_texture_set_create_mipmaps">
+        <source-position filename="../src/meta/meta-shaped-texture.h"
+                         line="44"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stex" transfer-ownership="none">
+            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
+          </instance-parameter>
+          <parameter name="create_mipmaps" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mask_texture"
+              c:identifier="meta_shaped_texture_set_mask_texture">
+        <source-position filename="../src/meta/meta-shaped-texture.h"
+                         line="51"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="stex" transfer-ownership="none">
+            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
+          </instance-parameter>
+          <parameter name="mask_texture" transfer-ownership="none">
+            <type name="Cogl.Texture" c:type="CoglTexture*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="size-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ShapedTextureClass"
+            c:type="MetaShapedTextureClass"
+            glib:is-gtype-struct-for="ShapedTexture">
+      <source-position filename="../src/meta/meta-shaped-texture.h" line="37"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="Side"
+                 glib:type-name="MetaSide"
+                 glib:get-type="meta_side_get_type"
+                 c:type="MetaSide">
+      <member name="left"
+              value="1"
+              c:identifier="META_SIDE_LEFT"
+              glib:nick="left">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="351">Left side</doc>
+      </member>
+      <member name="right"
+              value="2"
+              c:identifier="META_SIDE_RIGHT"
+              glib:nick="right">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="352">Right side</doc>
+      </member>
+      <member name="top"
+              value="4"
+              c:identifier="META_SIDE_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="353">Top side</doc>
+      </member>
+      <member name="bottom"
+              value="8"
+              c:identifier="META_SIDE_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="354">Bottom side</doc>
+      </member>
+    </enumeration>
+    <enumeration name="SizeChange"
+                 glib:type-name="MetaSizeChange"
+                 glib:get-type="meta_size_change_get_type"
+                 c:type="MetaSizeChange">
+      <member name="maximize"
+              value="0"
+              c:identifier="META_SIZE_CHANGE_MAXIMIZE"
+              glib:nick="maximize">
+      </member>
+      <member name="unmaximize"
+              value="1"
+              c:identifier="META_SIZE_CHANGE_UNMAXIMIZE"
+              glib:nick="unmaximize">
+      </member>
+      <member name="fullscreen"
+              value="2"
+              c:identifier="META_SIZE_CHANGE_FULLSCREEN"
+              glib:nick="fullscreen">
+      </member>
+      <member name="unfullscreen"
+              value="3"
+              c:identifier="META_SIZE_CHANGE_UNFULLSCREEN"
+              glib:nick="unfullscreen">
+      </member>
+    </enumeration>
+    <class name="SoundPlayer"
+           c:symbol-prefix="sound_player"
+           c:type="MetaSoundPlayer"
+           parent="GObject.Object"
+           glib:type-name="MetaSoundPlayer"
+           glib:get-type="meta_sound_player_get_type"
+           glib:type-struct="SoundPlayerClass">
+      <source-position filename="../src/meta/meta-sound-player.h" line="31"/>
+      <method name="play_from_file"
+              c:identifier="meta_sound_player_play_from_file">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-sound-player.c"
+             line="263">Plays a sound from a file.</doc>
+        <source-position filename="../src/meta/meta-sound-player.h" line="41"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="player" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="265">a #MetaSoundPlayer</doc>
+            <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
+          </instance-parameter>
+          <parameter name="file" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="266">file to play</doc>
+            <type name="Gio.File" c:type="GFile*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="267">description of the played sound</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="268">cancellable for the request</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="play_from_theme"
+              c:identifier="meta_sound_player_play_from_theme">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-sound-player.c"
+             line="229">Plays a sound from the sound theme.</doc>
+        <source-position filename="../src/meta/meta-sound-player.h" line="35"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="player" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="231">a #MetaSoundPlayer</doc>
+            <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="232">sound theme name of the event</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="233">description of the event</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-sound-player.c"
+                 line="234">cancellable for the request</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <record name="SoundPlayerClass"
+            c:type="MetaSoundPlayerClass"
+            glib:is-gtype-struct-for="SoundPlayer">
+      <source-position filename="../src/meta/meta-sound-player.h" line="31"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="StackLayer"
+                 glib:type-name="MetaStackLayer"
+                 glib:get-type="meta_stack_layer_get_type"
+                 c:type="MetaStackLayer">
+      <doc xml:space="preserve"
+           filename="../src/meta/common.h"
+           line="510">Layers a window can be in.
+These MUST be in the order of stacking.</doc>
+      <member name="desktop"
+              value="0"
+              c:identifier="META_LAYER_DESKTOP"
+              glib:nick="desktop">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="512">Desktop layer</doc>
+      </member>
+      <member name="bottom"
+              value="1"
+              c:identifier="META_LAYER_BOTTOM"
+              glib:nick="bottom">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="513">Bottom layer</doc>
+      </member>
+      <member name="normal"
+              value="2"
+              c:identifier="META_LAYER_NORMAL"
+              glib:nick="normal">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="514">Normal layer</doc>
+      </member>
+      <member name="top"
+              value="4"
+              c:identifier="META_LAYER_TOP"
+              glib:nick="top">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="515">Top layer</doc>
+      </member>
+      <member name="dock"
+              value="4"
+              c:identifier="META_LAYER_DOCK"
+              glib:nick="dock">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="516">Dock layer</doc>
+      </member>
+      <member name="override_redirect"
+              value="7"
+              c:identifier="META_LAYER_OVERRIDE_REDIRECT"
+              glib:nick="override-redirect">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="517">Override-redirect layer</doc>
+      </member>
+      <member name="last"
+              value="8"
+              c:identifier="META_LAYER_LAST"
+              glib:nick="last">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="518">Marks the end of the #MetaStackLayer enumeration</doc>
+      </member>
+    </enumeration>
+    <class name="Stage"
+           c:symbol-prefix="stage"
+           c:type="MetaStage"
+           parent="Clutter.Stage"
+           glib:type-name="MetaStage"
+           glib:get-type="meta_stage_get_type"
+           glib:type-struct="StageClass">
+      <source-position filename="../src/meta/meta-stage.h" line="30"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+      <function name="is_focused" c:identifier="meta_stage_is_focused">
+        <source-position filename="../src/meta/compositor-mutter.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="display" transfer-ownership="none">
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <glib:signal name="actors-painted" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="StageClass"
+            c:type="MetaStageClass"
+            glib:is-gtype-struct-for="Stage">
+      <source-position filename="../src/meta/meta-stage.h" line="30"/>
+      <field name="parent_class">
+        <type name="Clutter.StageClass" c:type="ClutterStageClass"/>
+      </field>
+    </record>
+    <class name="StartupNotification"
+           c:symbol-prefix="startup_notification"
+           c:type="MetaStartupNotification"
+           parent="GObject.Object"
+           glib:type-name="MetaStartupNotification"
+           glib:get-type="meta_startup_notification_get_type"
+           glib:type-struct="StartupNotificationClass">
+      <source-position filename="../src/meta/meta-startup-notification.h"
+                       line="28"/>
+      <method name="create_launcher"
+              c:identifier="meta_startup_notification_create_launcher">
+        <doc xml:space="preserve"
+             filename="../src/core/startup-notification.c"
+             line="670">Creates an app launch context.</doc>
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="47"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/core/startup-notification.c"
+               line="676">a launch context.</doc>
+          <type name="LaunchContext" c:type="MetaLaunchContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sn" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/startup-notification.c"
+                 line="672">a #MetaStartupNotification</doc>
+            <type name="StartupNotification"
+                  c:type="MetaStartupNotification*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sequences"
+              c:identifier="meta_startup_notification_get_sequences"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="43"/>
+        <return-value>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sn" transfer-ownership="none">
+            <type name="StartupNotification"
+                  c:type="MetaStartupNotification*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="display"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Display"/>
+      </property>
+      <glib:signal name="changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="StartupNotificationClass"
+            c:type="MetaStartupNotificationClass"
+            glib:is-gtype-struct-for="StartupNotification">
+      <source-position filename="../src/meta/meta-startup-notification.h"
+                       line="28"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="StartupSequence"
+           c:symbol-prefix="startup_sequence"
+           c:type="MetaStartupSequence"
+           parent="GObject.Object"
+           glib:type-name="MetaStartupSequence"
+           glib:get-type="meta_startup_sequence_get_type"
+           glib:type-struct="StartupSequenceClass">
+      <source-position filename="../src/meta/meta-startup-notification.h"
+                       line="34"/>
+      <method name="complete" c:identifier="meta_startup_sequence_complete">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="74"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_application_id"
+              c:identifier="meta_startup_sequence_get_application_id">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="68"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_completed"
+              c:identifier="meta_startup_sequence_get_completed">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="53"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_icon_name"
+              c:identifier="meta_startup_sequence_get_icon_name">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="65"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_id" c:identifier="meta_startup_sequence_get_id">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="50"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="meta_startup_sequence_get_name">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="56"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_timestamp"
+              c:identifier="meta_startup_sequence_get_timestamp">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="guint64" c:type="uint64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_wmclass"
+              c:identifier="meta_startup_sequence_get_wmclass">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_workspace"
+              c:identifier="meta_startup_sequence_get_workspace">
+        <source-position filename="../src/meta/meta-startup-notification.h"
+                         line="59"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="sequence" transfer-ownership="none">
+            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="application-id"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="icon-name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="id"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="timestamp"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="guint64" c:type="guint64"/>
+      </property>
+      <property name="wmclass"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="workspace"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <glib:signal name="complete" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="StartupSequenceClass"
+            c:type="MetaStartupSequenceClass"
+            disguised="1"
+            glib:is-gtype-struct-for="StartupSequence">
+      <source-position filename="../src/meta/meta-startup-notification.h"
+                       line="34"/>
+    </record>
+    <record name="Strut" c:type="MetaStrut">
+      <source-position filename="../src/meta/boxes.h" line="67"/>
+      <field name="rect" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="59">#MetaRectangle the #MetaStrut is on</doc>
+        <type name="Rectangle" c:type="MetaRectangle"/>
+      </field>
+      <field name="side" writable="1">
+        <doc xml:space="preserve"
+             filename="../src/meta/boxes.h"
+             line="60">#MetaSide the #MetaStrut is on</doc>
+        <type name="Side" c:type="MetaSide"/>
+      </field>
+    </record>
+    <enumeration name="TabList"
+                 glib:type-name="MetaTabList"
+                 glib:get-type="meta_tab_list_get_type"
+                 c:type="MetaTabList">
+      <member name="normal"
+              value="0"
+              c:identifier="META_TAB_LIST_NORMAL"
+              glib:nick="normal">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="35">Normal windows</doc>
+      </member>
+      <member name="docks"
+              value="1"
+              c:identifier="META_TAB_LIST_DOCKS"
+              glib:nick="docks">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="36">Dock windows</doc>
+      </member>
+      <member name="group"
+              value="2"
+              c:identifier="META_TAB_LIST_GROUP"
+              glib:nick="group">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="37">Groups</doc>
+      </member>
+      <member name="normal_all"
+              value="3"
+              c:identifier="META_TAB_LIST_NORMAL_ALL"
+              glib:nick="normal-all">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="38">All windows</doc>
+      </member>
+    </enumeration>
+    <enumeration name="TabShowType"
+                 glib:type-name="MetaTabShowType"
+                 glib:get-type="meta_tab_show_type_get_type"
+                 c:type="MetaTabShowType">
+      <member name="icon"
+              value="0"
+              c:identifier="META_TAB_SHOW_ICON"
+              glib:nick="icon">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="50">Show icon (Alt-Tab mode)</doc>
+      </member>
+      <member name="instantly"
+              value="1"
+              c:identifier="META_TAB_SHOW_INSTANTLY"
+              glib:nick="instantly">
+        <doc xml:space="preserve"
+             filename="../src/meta/display.h"
+             line="51">Show instantly (Alt-Esc mode)</doc>
+      </member>
+    </enumeration>
+    <record name="Theme" c:type="MetaTheme" disguised="1">
+      <source-position filename="../src/meta/theme.h" line="31"/>
+      <method name="free" c:identifier="meta_theme_free">
+        <source-position filename="../src/meta/theme.h" line="40"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="theme" transfer-ownership="none">
+            <type name="Theme" c:type="MetaTheme*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <function name="get_default"
+                c:identifier="meta_theme_get_default"
+                introspectable="0">
+        <source-position filename="../src/meta/theme.h" line="34"/>
+        <return-value>
+          <type name="Theme" c:type="MetaTheme*"/>
+        </return-value>
+      </function>
+      <function name="new" c:identifier="meta_theme_new" introspectable="0">
+        <source-position filename="../src/meta/theme.h" line="37"/>
+        <return-value>
+          <type name="Theme" c:type="MetaTheme*"/>
+        </return-value>
+      </function>
+    </record>
+    <constant name="VIRTUAL_CORE_KEYBOARD_ID"
+              value="3"
+              c:type="META_VIRTUAL_CORE_KEYBOARD_ID">
+      <source-position filename="../src/meta/common.h" line="44"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VIRTUAL_CORE_POINTER_ID"
+              value="2"
+              c:type="META_VIRTUAL_CORE_POINTER_ID">
+      <source-position filename="../src/meta/common.h" line="43"/>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="VirtualModifier"
+              glib:type-name="MetaVirtualModifier"
+              glib:get-type="meta_virtual_modifier_get_type"
+              c:type="MetaVirtualModifier">
+      <member name="shift_mask"
+              value="32"
+              c:identifier="META_VIRTUAL_SHIFT_MASK"
+              glib:nick="shift-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="259">Shift mask</doc>
+      </member>
+      <member name="control_mask"
+              value="64"
+              c:identifier="META_VIRTUAL_CONTROL_MASK"
+              glib:nick="control-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="260">Control mask</doc>
+      </member>
+      <member name="alt_mask"
+              value="128"
+              c:identifier="META_VIRTUAL_ALT_MASK"
+              glib:nick="alt-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="261">Alt mask</doc>
+      </member>
+      <member name="meta_mask"
+              value="256"
+              c:identifier="META_VIRTUAL_META_MASK"
+              glib:nick="meta-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="262">Meta mask</doc>
+      </member>
+      <member name="super_mask"
+              value="512"
+              c:identifier="META_VIRTUAL_SUPER_MASK"
+              glib:nick="super-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="263">Super mask</doc>
+      </member>
+      <member name="hyper_mask"
+              value="1024"
+              c:identifier="META_VIRTUAL_HYPER_MASK"
+              glib:nick="hyper-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="264">Hyper mask</doc>
+      </member>
+      <member name="mod2_mask"
+              value="2048"
+              c:identifier="META_VIRTUAL_MOD2_MASK"
+              glib:nick="mod2-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="265">Mod2 mask</doc>
+      </member>
+      <member name="mod3_mask"
+              value="4096"
+              c:identifier="META_VIRTUAL_MOD3_MASK"
+              glib:nick="mod3-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="266">Mod3 mask</doc>
+      </member>
+      <member name="mod4_mask"
+              value="8192"
+              c:identifier="META_VIRTUAL_MOD4_MASK"
+              glib:nick="mod4-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="267">Mod4 mask</doc>
+      </member>
+      <member name="mod5_mask"
+              value="16384"
+              c:identifier="META_VIRTUAL_MOD5_MASK"
+              glib:nick="mod5-mask">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="268">Mod5 mask</doc>
+      </member>
+    </bitfield>
+    <function-macro name="WINDOW"
+                    c:identifier="META_WINDOW"
+                    introspectable="0">
+      <source-position filename="../src/meta/window.h" line="96"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WINDOW_CLASS"
+                    c:identifier="META_WINDOW_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/window.h" line="97"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WINDOW_GET_CLASS"
+                    c:identifier="META_WINDOW_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/window.h" line="100"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WORKSPACE"
+                    c:identifier="META_WORKSPACE"
+                    introspectable="0">
+      <source-position filename="../src/meta/workspace.h" line="28"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WORKSPACE_CLASS"
+                    c:identifier="META_WORKSPACE_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/workspace.h" line="29"/>
+      <parameters>
+        <parameter name="klass">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function-macro name="WORKSPACE_GET_CLASS"
+                    c:identifier="META_WORKSPACE_GET_CLASS"
+                    introspectable="0">
+      <source-position filename="../src/meta/workspace.h" line="32"/>
+      <parameters>
+        <parameter name="obj">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <class name="WaylandClient"
+           c:symbol-prefix="wayland_client"
+           c:type="MetaWaylandClient"
+           parent="GObject.Object"
+           glib:type-name="MetaWaylandClient"
+           glib:get-type="meta_wayland_client_get_type"
+           glib:type-struct="WaylandClientClass">
+      <source-position filename="../src/meta/meta-wayland-client.h" line="34"/>
+      <constructor name="new"
+                   c:identifier="meta_wayland_client_new"
+                   throws="1">
+        <doc xml:space="preserve"
+             filename="../src/wayland/meta-wayland-client.c"
+             line="95">Creates a new #MetaWaylandClient. The GSubprocesslauncher passed is
+stored internally and will be used to launch the subprocess.</doc>
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="37"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/wayland/meta-wayland-client.c"
+               line="103">A #MetaWaylandClient or %NULL if %error is set. Free with
+g_object_unref().</doc>
+          <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+        </return-value>
+        <parameters>
+          <parameter name="launcher" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="97">a GSubprocessLauncher to use to launch the subprocess</doc>
+            <type name="Gio.SubprocessLauncher" c:type="GSubprocessLauncher*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="hide_from_window_list"
+              c:identifier="meta_wayland_client_hide_from_window_list">
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="client" transfer-ownership="none">
+            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="owns_window"
+              c:identifier="meta_wayland_client_owns_window">
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="54"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="client" transfer-ownership="none">
+            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_in_window_list"
+              c:identifier="meta_wayland_client_show_in_window_list">
+        <doc xml:space="preserve"
+             filename="../src/wayland/meta-wayland-client.c"
+             line="316">Shows again this window in window lists, like taskbars, pagers...</doc>
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="client" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="318">a #MetaWaylandClient</doc>
+            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+          </instance-parameter>
+          <parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="319">a MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="spawn"
+              c:identifier="meta_wayland_client_spawn"
+              introspectable="0">
+        <doc xml:space="preserve"
+             filename="../src/wayland/meta-wayland-client.c"
+             line="219">Creates a #GSubprocess given a provided varargs list of arguments. It also
+sets up a new Wayland socket and sets the environment variable WAYLAND_SOCKET
+to make the new process to use it.</doc>
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="41"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/wayland/meta-wayland-client.c"
+               line="231">A new #GSubprocess, or %NULL on error (and @error
+will be set)</doc>
+          <type name="Gio.Subprocess" c:type="GSubprocess*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="client" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="221">a #MetaWaylandClient</doc>
+            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+          </instance-parameter>
+          <parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="222">the current MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+          <parameter name="error"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="223">Error</doc>
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="argv0" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="224">Command line arguments</doc>
+            <type name="utf8" c:type="const char*"/>
+          </parameter>
+          <parameter name="..." transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="225">Continued arguments, %NULL terminated</doc>
+            <varargs/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="spawnv"
+              c:identifier="meta_wayland_client_spawnv"
+              throws="1">
+        <doc xml:space="preserve"
+             filename="../src/wayland/meta-wayland-client.c"
+             line="137">Creates a #GSubprocess given a provided array of arguments, launching a new
+process with the binary specified in the first element of argv, and with the
+rest of elements as parameters. It also sets up a new Wayland socket and sets
+the environment variable WAYLAND_SOCKET to make the new process to use it.</doc>
+        <source-position filename="../src/meta/meta-wayland-client.h"
+                         line="48"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/wayland/meta-wayland-client.c"
+               line="149">A new #GSubprocess, or %NULL on error (and @error
+will be set)</doc>
+          <type name="Gio.Subprocess" c:type="GSubprocess*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="client" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="139">a #MetaWaylandClient</doc>
+            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
+          </instance-parameter>
+          <parameter name="display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="140">the current MetaDisplay</doc>
+            <type name="Display" c:type="MetaDisplay*"/>
+          </parameter>
+          <parameter name="argv" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/wayland/meta-wayland-client.c"
+                 line="141">Command line arguments</doc>
+            <array c:type="const char* const*">
+              <type name="filename"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <record name="WaylandClientClass"
+            c:type="MetaWaylandClientClass"
+            glib:is-gtype-struct-for="WaylandClient">
+      <source-position filename="../src/meta/meta-wayland-client.h" line="34"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="Window"
+           c:symbol-prefix="window"
+           c:type="MetaWindow"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="MetaWindow"
+           glib:get-type="meta_window_get_type"
+           glib:type-struct="WindowClass">
+      <source-position filename="../src/meta/window.h" line="104"/>
+      <method name="activate" c:identifier="meta_window_activate">
+        <source-position filename="../src/meta/window.h" line="169"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="current_time" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="activate_with_workspace"
+              c:identifier="meta_window_activate_with_workspace">
+        <source-position filename="../src/meta/window.h" line="172"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="current_time" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allows_move" c:identifier="meta_window_allows_move">
+        <source-position filename="../src/meta/window.h" line="429"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="allows_resize" c:identifier="meta_window_allows_resize">
+        <source-position filename="../src/meta/window.h" line="432"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="appears_focused"
+              c:identifier="meta_window_appears_focused">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7262">Determines if the window should be drawn with a focused appearance. This is
+true for focused windows but also true for windows with a focused modal
+dialog attached.</doc>
+        <source-position filename="../src/meta/window.h" line="116"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7270">%TRUE if the window should be drawn with a focused frame</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7264">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="begin_grab_op" c:identifier="meta_window_begin_grab_op">
+        <source-position filename="../src/meta/window.h" line="405"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="op" transfer-ownership="none">
+            <type name="GrabOp" c:type="MetaGrabOp"/>
+          </parameter>
+          <parameter name="frame_action" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="can_close" c:identifier="meta_window_can_close">
+        <source-position filename="../src/meta/window.h" line="420"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="can_maximize" c:identifier="meta_window_can_maximize">
+        <source-position filename="../src/meta/window.h" line="411"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="can_minimize" c:identifier="meta_window_can_minimize">
+        <source-position filename="../src/meta/window.h" line="414"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="can_shade" c:identifier="meta_window_can_shade">
+        <source-position filename="../src/meta/window.h" line="417"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="change_workspace"
+              c:identifier="meta_window_change_workspace">
+        <source-position filename="../src/meta/window.h" line="236"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="change_workspace_by_index"
+              c:identifier="meta_window_change_workspace_by_index">
+        <source-position filename="../src/meta/window.h" line="231"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="space_index" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="append" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="check_alive" c:identifier="meta_window_check_alive">
+        <source-position filename="../src/meta/window.h" line="388"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="client_rect_to_frame_rect"
+              c:identifier="meta_window_client_rect_to_frame_rect">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4535">Converts a desired bounds of the client window into the corresponding bounds
+of the window frame (excluding invisible borders and client side shadows.)</doc>
+        <source-position filename="../src/meta/window.h" line="134"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4537">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="client_rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4538">client rectangle in root coordinates</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="frame_rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4539">location to store the computed corresponding frame bounds.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="compute_group" c:identifier="meta_window_compute_group">
+        <source-position filename="../src/meta/group.h" line="36"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="delete" c:identifier="meta_window_delete">
+        <source-position filename="../src/meta/window.h" line="321"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_root_ancestor"
+              c:identifier="meta_window_find_root_ancestor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="5076">Follow the chain of parents of @window, skipping transient windows,
+and return the "root" window which has no non-transient parent.</doc>
+        <source-position filename="../src/meta/window.h" line="252"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="5083">The root ancestor window</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="5078">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="focus" c:identifier="meta_window_focus">
+        <source-position filename="../src/meta/window.h" line="384"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach_ancestor"
+              c:identifier="meta_window_foreach_ancestor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6762">If @window is transient, call @func with the window for which it's transient,
+repeatedly until either we find a non-transient window, or @func returns %FALSE.</doc>
+        <source-position filename="../src/meta/window.h" line="267"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6764">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6765">Called for each window which is a transient parent of @window</doc>
+            <type name="WindowForeachFunc" c:type="MetaWindowForeachFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6766">User data</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach_transient"
+              c:identifier="meta_window_foreach_transient">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6723">Call @func for every window which is either transient for @window, or is
+a transient of a window which is in turn transient for @window.
+The order of window enumeration is not defined.
+
+Iteration will stop if @func at any point returns %FALSE.</doc>
+        <source-position filename="../src/meta/window.h" line="262"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6725">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6726">Called for each window which is a transient of @window (transitively)</doc>
+            <type name="WindowForeachFunc" c:type="MetaWindowForeachFunc"/>
+          </parameter>
+          <parameter name="user_data"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6727">User data</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="frame_rect_to_client_rect"
+              c:identifier="meta_window_frame_rect_to_client_rect">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4582">Converts a desired frame bounds for a window into the bounds of the client
+window.</doc>
+        <source-position filename="../src/meta/window.h" line="139"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4584">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="frame_rect" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4585">desired frame bounds for the window</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+          <parameter name="client_rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4586">location to store the computed corresponding client rectangle.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_buffer_rect"
+              c:identifier="meta_window_get_buffer_rect">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4515">Gets the rectangle that the pixmap or buffer of @window occupies.
+
+For X11 windows, this is the server-side geometry of the toplevel
+window.
+
+For Wayland windows, this is the bounding rectangle of the attached
+buffer.</doc>
+        <source-position filename="../src/meta/window.h" line="128"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4517">a #MetaWindow</doc>
+            <type name="Window" c:type="const MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4518">pointer to an allocated #MetaRectangle</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_client_machine"
+              c:identifier="meta_window_get_client_machine">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7626">Returns name of the client machine from which this windows was created,
+if known (obtained from the WM_CLIENT_MACHINE property).</doc>
+        <source-position filename="../src/meta/window.h" line="334"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7633">the machine name, or NULL; the string is
+owned by the window manager and should not be freed or modified by the
+caller.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7628">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_client_type"
+              c:identifier="meta_window_get_client_type">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="8618">Returns the #MetaWindowClientType of the window.</doc>
+        <source-position filename="../src/meta/window.h" line="447"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="8624">The root ancestor window</doc>
+          <type name="WindowClientType" c:type="MetaWindowClientType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="8620">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_compositor_private"
+              c:identifier="meta_window_get_compositor_private">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7522">Gets the compositor's wrapper object for @window.</doc>
+        <source-position filename="../src/meta/window.h" line="240"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7528">the wrapper object.</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7524">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="meta_window_get_description">
+        <source-position filename="../src/meta/window.h" line="177"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_display" c:identifier="meta_window_get_display">
+        <source-position filename="../src/meta/window.h" line="144"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7324">The display for @window</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7322">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame"
+              c:identifier="meta_window_get_frame"
+              introspectable="0">
+        <source-position filename="../src/meta/window.h" line="110"/>
+        <return-value>
+          <type name="Frame" c:type="MetaFrame*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7253">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_bounds"
+              c:identifier="meta_window_get_frame_bounds">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7754">Gets a region representing the outer bounds of the window's frame.</doc>
+        <source-position filename="../src/meta/window.h" line="349"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7760">a #cairo_region_t
+ holding the outer bounds of the window, or %NULL if the window
+ doesn't have a frame.</doc>
+          <type name="cairo.Region" c:type="cairo_region_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7756">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_rect" c:identifier="meta_window_get_frame_rect">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4621">Gets the rectangle that bounds @window that is what the user thinks of
+as the edge of the window. This doesn't include any extra reactive
+area that we or the client adds to the window, or any area that the
+client adds to draw a client-side shadow.</doc>
+        <source-position filename="../src/meta/window.h" line="131"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4623">a #MetaWindow</doc>
+            <type name="Window" c:type="const MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4624">pointer to an allocated #MetaRectangle</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_frame_type" c:identifier="meta_window_get_frame_type">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7684">Gets the type of window decorations that should be used for this window.</doc>
+        <source-position filename="../src/meta/window.h" line="346"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7690">the frame type</doc>
+          <type name="FrameType" c:type="MetaFrameType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7686">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_group"
+              c:identifier="meta_window_get_group"
+              introspectable="0">
+        <source-position filename="../src/meta/group.h" line="33"/>
+        <return-value>
+          <type name="Group" c:type="MetaGroup*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="130">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_app_menu_object_path"
+              c:identifier="meta_window_get_gtk_app_menu_object_path">
+        <source-position filename="../src/meta/window.h" line="207"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7502">the object path</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7500">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_application_id"
+              c:identifier="meta_window_get_gtk_application_id">
+        <source-position filename="../src/meta/window.h" line="195"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7454">the application ID</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7452">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_application_object_path"
+              c:identifier="meta_window_get_gtk_application_object_path">
+        <source-position filename="../src/meta/window.h" line="201"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7478">the object path</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7476">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_menubar_object_path"
+              c:identifier="meta_window_get_gtk_menubar_object_path">
+        <source-position filename="../src/meta/window.h" line="210"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7514">the object path</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7512">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_theme_variant"
+              c:identifier="meta_window_get_gtk_theme_variant">
+        <source-position filename="../src/meta/window.h" line="192"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7442">the theme variant or %NULL</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7440">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_unique_bus_name"
+              c:identifier="meta_window_get_gtk_unique_bus_name">
+        <source-position filename="../src/meta/window.h" line="198"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7466">the unique name</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7464">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_gtk_window_object_path"
+              c:identifier="meta_window_get_gtk_window_object_path">
+        <source-position filename="../src/meta/window.h" line="204"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7490">the object path</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7488">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_icon_geometry"
+              c:identifier="meta_window_get_icon_geometry">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="5365">Gets the location of the icon corresponding to the window. The location
+will be provided set by the task bar or other user interface element
+displaying the icon, and is relative to the root window.</doc>
+        <source-position filename="../src/meta/window.h" line="287"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="5374">%TRUE if the icon geometry was successfully retrieved.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="5367">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="5368">rectangle into which to store the returned geometry.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_id" c:identifier="meta_window_get_id">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="8604">Returns the window id associated with window.</doc>
+        <source-position filename="../src/meta/window.h" line="444"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="8610">The window id</doc>
+          <type name="guint64" c:type="uint64_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="8606">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layer" c:identifier="meta_window_get_layer">
+        <source-position filename="../src/meta/window.h" line="249"/>
+        <return-value transfer-ownership="none">
+          <type name="StackLayer" c:type="MetaStackLayer"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_maximized" c:identifier="meta_window_get_maximized">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="2930">Gets the current maximization state of the window, as combination
+of the %META_MAXIMIZE_HORIZONTAL and %META_MAXIMIZE_VERTICAL flags;</doc>
+        <source-position filename="../src/meta/window.h" line="272"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="2937">current maximization state</doc>
+          <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="2932">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_monitor" c:identifier="meta_window_get_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="3835">Gets index of the monitor that this window is on.</doc>
+        <source-position filename="../src/meta/window.h" line="156"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="3841">The index of the monitor in the screens monitor list, or -1
+if the window has been recently unmanaged and does not have a monitor.</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="3837">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_mutter_hints"
+              c:identifier="meta_window_get_mutter_hints">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7658">Gets the current value of the _MUTTER_HINTS property.
+
+The purpose of the hints is to allow fine-tuning of the Window Manager and
+Compositor behaviour on per-window basis, and is intended primarily for
+hints that are plugin-specific.
+
+The property is a list of colon-separated key=value pairs. The key names for
+any plugin-specific hints must be suitably namespaced to allow for shared
+use; 'mutter-' key prefix is reserved for internal use, and must not be used
+by plugins.</doc>
+        <source-position filename="../src/meta/window.h" line="343"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7673">the _MUTTER_HINTS string, or %NULL if no hints
+are set.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7660">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_pid" c:identifier="meta_window_get_pid">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7603">Returns the pid of the process that created this window, if available
+to the windowing system.
+
+Note that the value returned by this is vulnerable to spoofing attacks
+by the client.</doc>
+        <source-position filename="../src/meta/window.h" line="331"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7613">the pid, or 0 if not known.</doc>
+          <type name="gint" c:type="pid_t"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7605">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_role" c:identifier="meta_window_get_role">
+        <source-position filename="../src/meta/window.h" line="246"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sandboxed_app_id"
+              c:identifier="meta_window_get_sandboxed_app_id">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7421">Gets an unique id for a sandboxed app (currently flatpaks and snaps are
+supported).</doc>
+        <source-position filename="../src/meta/window.h" line="189"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7428">the sandboxed application ID or %NULL</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7423">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_stable_sequence"
+              c:identifier="meta_window_get_stable_sequence">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7144">The stable sequence number is a monotonicially increasing
+unique integer assigned to each #MetaWindow upon creation.
+
+This number can be useful for sorting windows in a stable
+fashion.</doc>
+        <source-position filename="../src/meta/window.h" line="325"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7154">Internal sequence number for this window</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7146">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_startup_id" c:identifier="meta_window_get_startup_id">
+        <source-position filename="../src/meta/window.h" line="228"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_tile_match" c:identifier="meta_window_get_tile_match">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7792">Returns the matching tiled window on the same monitor as @window. This is
+the topmost tiled window in a complementary tile mode that is:
+
+ - on the same monitor;
+ - on the same workspace;
+ - spanning the remaining monitor width;
+ - there is no 3rd window stacked between both tiled windows that's
+   partially visible in the common edge.</doc>
+        <source-position filename="../src/meta/window.h" line="352"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7805">the matching tiled window or
+%NULL if it doesn't exist.</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7794">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_title" c:identifier="meta_window_get_title">
+        <source-position filename="../src/meta/window.h" line="315"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7559">the current title of the window.</doc>
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7557">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_transient_for"
+              c:identifier="meta_window_get_transient_for">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7575">Returns the #MetaWindow for the window that is pointed to by the
+WM_TRANSIENT_FOR hint on this window (see XGetTransientForHint()
+or XSetTransientForHint()). Metacity keeps transient windows above their
+parents. A typical usage of this hint is for a dialog that wants to stay
+above its associated window.</doc>
+        <source-position filename="../src/meta/window.h" line="318"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7585">the window this window is transient for, or
+%NULL if the WM_TRANSIENT_FOR hint is unset or does not point to a toplevel
+window that Metacity knows about.</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7577">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_user_time" c:identifier="meta_window_get_user_time">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7082">The user time represents a timestamp for the last time the user
+interacted with this window.  Note this property is only available
+for non-override-redirect windows.
+
+The property is set by Mutter initially upon window creation,
+and updated thereafter on input events (key and button presses) seen by Mutter,
+client updates to the _NET_WM_USER_TIME property (if later than the current time)
+and when focusing the window.</doc>
+        <source-position filename="../src/meta/window.h" line="328"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7095">The last time the user interacted with this window.</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7084">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_window_type"
+              c:identifier="meta_window_get_window_type">
+        <source-position filename="../src/meta/window.h" line="150"/>
+        <return-value transfer-ownership="none">
+          <type name="WindowType" c:type="MetaWindowType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_wm_class" c:identifier="meta_window_get_wm_class">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7391">Return the current value of the name part of WM_CLASS X property.</doc>
+        <source-position filename="../src/meta/window.h" line="180"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7393">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_wm_class_instance"
+              c:identifier="meta_window_get_wm_class_instance">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7406">Return the current value of the instance part of WM_CLASS X property.</doc>
+        <source-position filename="../src/meta/window.h" line="183"/>
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7408">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_work_area_all_monitors"
+              c:identifier="meta_window_get_work_area_all_monitors">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6607">Get the work area for all monitors for @window.</doc>
+        <source-position filename="../src/meta/window.h" line="401"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6609">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="area"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6610">a location to store the work area</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_work_area_current_monitor"
+              c:identifier="meta_window_get_work_area_current_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6564">Get the work area for the monitor @window is currently on.</doc>
+        <source-position filename="../src/meta/window.h" line="392"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6566">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="area"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6567">a location to store the work area</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_work_area_for_monitor"
+              c:identifier="meta_window_get_work_area_for_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6580">Get the work area for @window, given the monitor index
+@which_monitor.</doc>
+        <source-position filename="../src/meta/window.h" line="396"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6582">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="which_monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6583">a moniotr to get the work area for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="area"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6584">a location to store the work area</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_workspace" c:identifier="meta_window_get_workspace">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7349">Gets the #MetaWorkspace that the window is currently displayed on.
+If the window is on all workspaces, returns the currently active
+workspace.</doc>
+        <source-position filename="../src/meta/window.h" line="153"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7357">the #MetaWorkspace for the window</doc>
+          <type name="Workspace" c:type="MetaWorkspace*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7351">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_xwindow"
+              c:identifier="meta_window_get_xwindow"
+              introspectable="0">
+        <source-position filename="../src/meta/window.h" line="147"/>
+        <return-value transfer-ownership="none">
+          <type name="xlib.Window" c:type="Window"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7334">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="group_leader_changed"
+              c:identifier="meta_window_group_leader_changed">
+        <source-position filename="../src/meta/group.h" line="42"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_focus" c:identifier="meta_window_has_focus">
+        <source-position filename="../src/meta/window.h" line="113"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_above" c:identifier="meta_window_is_above">
+        <source-position filename="../src/meta/window.h" line="426"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_always_on_all_workspaces"
+              c:identifier="meta_window_is_always_on_all_workspaces">
+        <source-position filename="../src/meta/window.h" line="423"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_ancestor_of_transient"
+              c:identifier="meta_window_is_ancestor_of_transient">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6810">The function determines whether @window is an ancestor of @transient; it does
+so by traversing the @transient's ancestors until it either locates @window
+or reaches an ancestor that is not transient.</doc>
+        <source-position filename="../src/meta/window.h" line="255"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="6819">%TRUE if window is an ancestor of transient.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6812">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="transient" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="6813">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_attached_dialog"
+              c:identifier="meta_window_is_attached_dialog">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7776">Tests if @window is should be attached to its parent window.
+(If the "attach_modal_dialogs" option is not enabled, this will
+always return %FALSE.)</doc>
+        <source-position filename="../src/meta/window.h" line="340"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7784">whether @window should be attached to its parent</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7778">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_client_decorated"
+              c:identifier="meta_window_is_client_decorated">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="6695">Check if if the window has decorations drawn by the client.
+(window-&gt;decorated refers only to whether we should add decorations)</doc>
+        <source-position filename="../src/meta/window.h" line="435"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_fullscreen" c:identifier="meta_window_is_fullscreen">
+        <source-position filename="../src/meta/window.h" line="275"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="2950">%TRUE if the window is currently fullscreen</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="2948">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_hidden" c:identifier="meta_window_is_hidden">
+        <source-position filename="../src/meta/window.h" line="166"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_monitor_sized"
+              c:identifier="meta_window_is_monitor_sized">
+        <source-position filename="../src/meta/window.h" line="281"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="2985">%TRUE if the window is occupies an entire monitor or
+              the whole screen.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="2983">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_on_all_workspaces"
+              c:identifier="meta_window_is_on_all_workspaces">
+        <source-position filename="../src/meta/window.h" line="159"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_on_primary_monitor"
+              c:identifier="meta_window_is_on_primary_monitor">
+        <source-position filename="../src/meta/window.h" line="284"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="3018">%TRUE if the window is on the primary monitor</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="3016">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_override_redirect"
+              c:identifier="meta_window_is_override_redirect">
+        <source-position filename="../src/meta/window.h" line="122"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7294">%TRUE if this window isn't managed by mutter; it will
+control its own positioning and mutter won't draw decorations
+among other things.  In X terminology this is "override redirect".</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7292">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_remote" c:identifier="meta_window_is_remote">
+        <source-position filename="../src/meta/window.h" line="337"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7649">%TRUE if this window originates from a host
+different from the one running mutter.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7647">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_screen_sized"
+              c:identifier="meta_window_is_screen_sized">
+        <source-position filename="../src/meta/window.h" line="278"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="2962">%TRUE if the window is occupies the
+              the whole screen (all monitors).</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="2960">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_shaded" c:identifier="meta_window_is_shaded">
+        <source-position filename="../src/meta/window.h" line="119"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_skip_taskbar"
+              c:identifier="meta_window_is_skip_taskbar">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="7304">Gets whether this window should be ignored by task lists.</doc>
+        <source-position filename="../src/meta/window.h" line="125"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="7310">%TRUE if the skip bar hint is set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="7306">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="kill" c:identifier="meta_window_kill">
+        <source-position filename="../src/meta/window.h" line="381"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="located_on_workspace"
+              c:identifier="meta_window_located_on_workspace">
+        <source-position filename="../src/meta/window.h" line="162"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="1635">whether @window is displayed on @workspace, or whether it
+will be displayed on all workspaces.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="1632">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="1633">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lower" c:identifier="meta_window_lower">
+        <source-position filename="../src/meta/window.h" line="312"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="make_above" c:identifier="meta_window_make_above">
+        <source-position filename="../src/meta/window.h" line="361"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="make_fullscreen"
+              c:identifier="meta_window_make_fullscreen">
+        <source-position filename="../src/meta/window.h" line="355"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="maximize" c:identifier="meta_window_maximize">
+        <source-position filename="../src/meta/window.h" line="295"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="directions" transfer-ownership="none">
+            <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="minimize" c:identifier="meta_window_minimize">
+        <source-position filename="../src/meta/window.h" line="303"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="move_frame" c:identifier="meta_window_move_frame">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4174">Moves the window to the desired location on window's assigned
+workspace, using the northwest edge of the frame as the reference,
+instead of the actual window's origin, but only if a frame is present.
+Otherwise, acts identically to meta_window_move().</doc>
+        <source-position filename="../src/meta/window.h" line="213"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4176">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="user_op" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4177">bool to indicate whether or not this is a user operation</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="root_x_nw" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4178">desired x pos</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="root_y_nw" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4179">desired y pos</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="move_resize_frame"
+              c:identifier="meta_window_move_resize_frame">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4235">Resizes the window so that its outer bounds (including frame)
+fit within the given rect</doc>
+        <source-position filename="../src/meta/window.h" line="216"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4237">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="user_op" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4238">bool to indicate whether or not this is a user operation</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="root_x_nw" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4239">new x</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="root_y_nw" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4240">new y</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="w" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4241">desired width</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="h" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4242">desired height</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="move_to_monitor"
+              c:identifier="meta_window_move_to_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="4265">Moves the window to the monitor with index @monitor, keeping
+the relative position of the window's top left corner.</doc>
+        <source-position filename="../src/meta/window.h" line="219"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4267">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="4268">desired monitor index</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="raise" c:identifier="meta_window_raise">
+        <source-position filename="../src/meta/window.h" line="309"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_compositor_private"
+              c:identifier="meta_window_set_compositor_private">
+        <source-position filename="../src/meta/window.h" line="243"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="priv" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_demands_attention"
+              c:identifier="meta_window_set_demands_attention">
+        <source-position filename="../src/meta/window.h" line="222"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_icon_geometry"
+              c:identifier="meta_window_set_icon_geometry">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="5393">Sets or unsets the location of the icon corresponding to the window. If
+set, the location should correspond to a dock, task bar or other user
+interface element displaying the icon, and is relative to the root window.</doc>
+        <source-position filename="../src/meta/window.h" line="291"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="5395">a #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="rect"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="5396">rectangle with the desired geometry or %NULL.</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="shade" c:identifier="meta_window_shade">
+        <source-position filename="../src/meta/window.h" line="367"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="shove_titlebar_onscreen"
+              c:identifier="meta_window_shove_titlebar_onscreen">
+        <source-position filename="../src/meta/window.h" line="441"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="showing_on_its_workspace"
+              c:identifier="meta_window_showing_on_its_workspace">
+        <source-position filename="../src/meta/window.h" line="186"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/window.c"
+               line="1674">%TRUE if window would be visible, if its workspace was current</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/window.c"
+                 line="1672">A #MetaWindow</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="shutdown_group" c:identifier="meta_window_shutdown_group">
+        <source-position filename="../src/meta/group.h" line="39"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="stick" c:identifier="meta_window_stick">
+        <source-position filename="../src/meta/window.h" line="375"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="titlebar_is_onscreen"
+              c:identifier="meta_window_titlebar_is_onscreen">
+        <source-position filename="../src/meta/window.h" line="438"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unmake_above" c:identifier="meta_window_unmake_above">
+        <source-position filename="../src/meta/window.h" line="364"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unmake_fullscreen"
+              c:identifier="meta_window_unmake_fullscreen">
+        <source-position filename="../src/meta/window.h" line="358"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unmaximize" c:identifier="meta_window_unmaximize">
+        <source-position filename="../src/meta/window.h" line="299"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="directions" transfer-ownership="none">
+            <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unminimize" c:identifier="meta_window_unminimize">
+        <source-position filename="../src/meta/window.h" line="306"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unset_demands_attention"
+              c:identifier="meta_window_unset_demands_attention">
+        <source-position filename="../src/meta/window.h" line="225"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="unshade" c:identifier="meta_window_unshade">
+        <source-position filename="../src/meta/window.h" line="371"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unstick" c:identifier="meta_window_unstick">
+        <source-position filename="../src/meta/window.h" line="378"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="window" transfer-ownership="none">
+            <type name="Window" c:type="MetaWindow*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="above" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="appears-focused" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="decorated" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="demands-attention" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="fullscreen" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="gtk-app-menu-object-path" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="gtk-application-id" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="gtk-application-object-path" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="gtk-menubar-object-path" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="gtk-unique-bus-name" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="gtk-window-object-path" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="icon" transfer-ownership="none">
+        <type name="gpointer" c:type="gpointer"/>
+      </property>
+      <property name="maximized-horizontally" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="maximized-vertically" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="mini-icon" transfer-ownership="none">
+        <type name="gpointer" c:type="gpointer"/>
+      </property>
+      <property name="minimized" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="mutter-hints" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="on-all-workspaces" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="resizeable" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="skip-taskbar" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="title" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="urgent" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="user-time" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="window-type" transfer-ownership="none">
+        <type name="WindowType"/>
+      </property>
+      <property name="wm-class" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <glib:signal name="focus" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="position-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="669">This is emitted when the position of a window might
+have changed. Specifically, this is emitted when the
+position of the toplevel window has changed, or when
+the position of the client window has changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="raised" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="shown" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="686">This is emitted after a window has been shown.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="size-changed" when="last">
+        <doc xml:space="preserve"
+             filename="../src/core/window.c"
+             line="700">This is emitted when the size of a window might
+have changed. Specifically, this is emitted when the
+size of the toplevel window has changed, or when the
+size of the client window has changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unmanaged" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unmanaging" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="workspace-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <class name="WindowActor"
+           c:symbol-prefix="window_actor"
+           c:type="MetaWindowActor"
+           parent="Clutter.Actor"
+           abstract="1"
+           glib:type-name="MetaWindowActor"
+           glib:get-type="meta_window_actor_get_type"
+           glib:type-struct="WindowActorClass">
+      <source-position filename="../src/meta/meta-window-actor.h" line="33"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+      <method name="freeze" c:identifier="meta_window_actor_freeze">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="283">Freezes the #MetaWindowActor, which inhibits updates and geometry
+changes of the window. This property is refcounted, so make sure
+to call meta_window_actor_thaw() the exact same amount of times
+as this function to allow updates again.</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="55"/>
+        <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/compositor/meta-window-actor.c"
+                 line="285">The #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_image" c:identifier="meta_window_actor_get_image">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="1402">Flattens the layers of @self into one ARGB32 image by alpha blending
+the images, and returns the flattened image.</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="51"/>
+        <return-value transfer-ownership="full" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-window-actor.c"
+               line="1412">a new cairo surface to be freed with
+cairo_surface_destroy().</doc>
+          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-actor.c"
+                 line="1404">A #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+          <parameter name="clip"
+                     transfer-ownership="none"
+                     nullable="1"
+                     allow-none="1">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-actor.c"
+                 line="1405">A clipping rectangle, to help prevent extra processing.
+In the case that the clipping rectangle is partially or fully
+outside the bounds of the actor, the rectangle will be clipped.</doc>
+            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_meta_window"
+              c:identifier="meta_window_actor_get_meta_window">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="501">Gets the #MetaWindow object that the the #MetaWindowActor is displaying</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="39"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-window-actor.c"
+               line="507">the displayed #MetaWindow</doc>
+          <type name="Window" c:type="MetaWindow*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-actor.c"
+                 line="503">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_texture" c:identifier="meta_window_actor_get_texture">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="518">Gets the ClutterActor that is used to display the contents of the window,
+or NULL if no texture is shown yet, because the window is not mapped.</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="42"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-window-actor.c"
+               line="525">the #ClutterActor for the contents</doc>
+          <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-actor.c"
+                 line="520">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_destroyed"
+              c:identifier="meta_window_actor_is_destroyed">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="557">Gets whether the X window that the actor was displaying has been destroyed</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="48"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-window-actor.c"
+               line="563">%TRUE when the window is destroyed, otherwise %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-actor.c"
+                 line="559">a #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="sync_visibility"
+              c:identifier="meta_window_actor_sync_visibility">
+        <source-position filename="../src/meta/meta-window-actor.h" line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="thaw" c:identifier="meta_window_actor_thaw">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="323">Thaws/unfreezes the #MetaWindowActor to allow updates and geometry
+changes after a window was frozen using meta_window_actor_freeze().</doc>
+        <source-position filename="../src/meta/meta-window-actor.h" line="58"/>
+        <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/compositor/meta-window-actor.c"
+                 line="325">The #MetaWindowActor</doc>
+            <type name="WindowActor" c:type="MetaWindowActor*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <property name="meta-window"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Window"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Clutter.Actor" c:type="ClutterActor"/>
+      </field>
+      <glib:signal name="damaged" when="last">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="175">Notify that one or more of the surfaces of the window have been damaged.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="effects-completed" when="last">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="160">The ::effects-completed signal will be emitted once all pending compositor
+effects are completed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="first-frame" when="last">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-actor.c"
+             line="135">The ::first-frame signal will be emitted the first time a frame
+of window contents has been drawn by the application and Mutter
+has had the chance to drawn that frame to the screen. If the
+window starts off initially hidden, obscured, or on on a
+different workspace, the ::first-frame signal will be emitted
+even though the user doesn't see the contents.
+
+MetaDisplay::window-created is a good place to connect to this
+signal - at that point, the MetaWindowActor for the window
+exists, but the window has reliably not yet been drawn.
+Connecting to an existing window that has already been drawn to
+the screen is not useful.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="thawed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="WindowActorClass"
+            c:type="MetaWindowActorClass"
+            disguised="1"
+            glib:is-gtype-struct-for="WindowActor">
+      <source-position filename="../src/meta/meta-window-actor.h" line="33"/>
+    </record>
+    <record name="WindowClass"
+            c:type="MetaWindowClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Window">
+      <source-position filename="../src/meta/window.h" line="104"/>
+    </record>
+    <enumeration name="WindowClientType"
+                 glib:type-name="MetaWindowClientType"
+                 glib:get-type="meta_window_client_type_get_type"
+                 c:type="MetaWindowClientType">
+      <member name="wayland"
+              value="0"
+              c:identifier="META_WINDOW_CLIENT_TYPE_WAYLAND"
+              glib:nick="wayland">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="86">A Wayland based window</doc>
+      </member>
+      <member name="x11"
+              value="1"
+              c:identifier="META_WINDOW_CLIENT_TYPE_X11"
+              glib:nick="x11">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="87">An X11 based window</doc>
+      </member>
+    </enumeration>
+    <callback name="WindowForeachFunc" c:type="MetaWindowForeachFunc">
+      <source-position filename="../src/meta/window.h" line="258"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="window" transfer-ownership="none">
+          <type name="Window" c:type="MetaWindow*"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   closure="1">
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="WindowGroup"
+           c:symbol-prefix="window_group"
+           c:type="MetaWindowGroup"
+           parent="Clutter.Actor"
+           glib:type-name="MetaWindowGroup"
+           glib:get-type="meta_window_group_get_type"
+           glib:type-struct="WindowGroupClass">
+      <source-position filename="../src/meta/meta-window-group.h" line="11"/>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+    </class>
+    <record name="WindowGroupClass"
+            c:type="MetaWindowGroupClass"
+            glib:is-gtype-struct-for="WindowGroup">
+      <source-position filename="../src/meta/meta-window-group.h" line="11"/>
+      <field name="parent_class">
+        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
+      </field>
+    </record>
+    <enumeration name="WindowMenuType"
+                 glib:type-name="MetaWindowMenuType"
+                 glib:get-type="meta_window_menu_type_get_type"
+                 c:type="MetaWindowMenuType">
+      <doc xml:space="preserve"
+           filename="../src/meta/common.h"
+           line="413">Menu the compositor should display for a given window</doc>
+      <member name="wm"
+              value="0"
+              c:identifier="META_WINDOW_MENU_WM"
+              glib:nick="wm">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="415">the window manager menu</doc>
+      </member>
+      <member name="app"
+              value="1"
+              c:identifier="META_WINDOW_MENU_APP"
+              glib:nick="app">
+        <doc xml:space="preserve"
+             filename="../src/meta/common.h"
+             line="416">the (fallback) app menu</doc>
+      </member>
+    </enumeration>
+    <record name="WindowShape"
+            c:type="MetaWindowShape"
+            glib:type-name="MetaWindowShape"
+            glib:get-type="meta_window_shape_get_type"
+            c:symbol-prefix="window_shape">
+      <doc xml:space="preserve"
+           filename="../src/meta/meta-window-shape.h"
+           line="34">#MetaWindowShape represents a 9-sliced region with borders on all sides that
+are unscaled, and a constant central region that is scaled. For example,
+the regions representing two windows that are rounded rectangles,
+with the same corner radius but different sizes, have the
+same MetaWindowShape.
+#MetaWindowShape is designed to be used as part of a hash table key, so has
+efficient hash and equal functions.</doc>
+      <source-position filename="../src/meta/meta-window-shape.h" line="45"/>
+      <constructor name="new" c:identifier="meta_window_shape_new">
+        <source-position filename="../src/meta/meta-window-shape.h" line="48"/>
+        <return-value transfer-ownership="full">
+          <type name="WindowShape" c:type="MetaWindowShape*"/>
+        </return-value>
+        <parameters>
+          <parameter name="region" transfer-ownership="none">
+            <type name="cairo.Region" c:type="cairo_region_t*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="equal" c:identifier="meta_window_shape_equal">
+        <source-position filename="../src/meta/meta-window-shape.h" line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape_a" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </instance-parameter>
+          <parameter name="shape_b" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_borders" c:identifier="meta_window_shape_get_borders">
+        <source-position filename="../src/meta/meta-window-shape.h" line="64"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </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="hash" c:identifier="meta_window_shape_hash">
+        <source-position filename="../src/meta/meta-window-shape.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="meta_window_shape_ref">
+        <source-position filename="../src/meta/meta-window-shape.h" line="51"/>
+        <return-value transfer-ownership="full">
+          <type name="WindowShape" c:type="MetaWindowShape*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="to_region" c:identifier="meta_window_shape_to_region">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-window-shape.c"
+             line="217">Converts the shape to to a cairo_region_t using the given width
+and height for the central scaled region.</doc>
+        <source-position filename="../src/meta/meta-window-shape.h" line="71"/>
+        <return-value transfer-ownership="full">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-window-shape.c"
+               line="226">a newly created region</doc>
+          <type name="cairo.Region" c:type="cairo_region_t*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-shape.c"
+                 line="219">a #MetaWindowShape</doc>
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </instance-parameter>
+          <parameter name="center_width" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-shape.c"
+                 line="220">size of the central region horizontally</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="center_height" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/compositor/meta-window-shape.c"
+                 line="221">size of the central region vertically</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="meta_window_shape_unref">
+        <source-position filename="../src/meta/meta-window-shape.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="shape" transfer-ownership="none">
+            <type name="WindowShape" c:type="MetaWindowShape*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="WindowType"
+                 glib:type-name="MetaWindowType"
+                 glib:get-type="meta_window_type_get_type"
+                 c:type="MetaWindowType">
+      <member name="normal"
+              value="0"
+              c:identifier="META_WINDOW_NORMAL"
+              glib:nick="normal">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="32">Normal</doc>
+      </member>
+      <member name="desktop"
+              value="1"
+              c:identifier="META_WINDOW_DESKTOP"
+              glib:nick="desktop">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="33">Desktop</doc>
+      </member>
+      <member name="dock"
+              value="2"
+              c:identifier="META_WINDOW_DOCK"
+              glib:nick="dock">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="34">Dock</doc>
+      </member>
+      <member name="dialog"
+              value="3"
+              c:identifier="META_WINDOW_DIALOG"
+              glib:nick="dialog">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="35">Dialog</doc>
+      </member>
+      <member name="modal_dialog"
+              value="4"
+              c:identifier="META_WINDOW_MODAL_DIALOG"
+              glib:nick="modal-dialog">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="36">Modal dialog</doc>
+      </member>
+      <member name="toolbar"
+              value="5"
+              c:identifier="META_WINDOW_TOOLBAR"
+              glib:nick="toolbar">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="37">Toolbar</doc>
+      </member>
+      <member name="menu"
+              value="6"
+              c:identifier="META_WINDOW_MENU"
+              glib:nick="menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="38">Menu</doc>
+      </member>
+      <member name="utility"
+              value="7"
+              c:identifier="META_WINDOW_UTILITY"
+              glib:nick="utility">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="39">Utility</doc>
+      </member>
+      <member name="splashscreen"
+              value="8"
+              c:identifier="META_WINDOW_SPLASHSCREEN"
+              glib:nick="splashscreen">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="40">Splashcreen</doc>
+      </member>
+      <member name="dropdown_menu"
+              value="9"
+              c:identifier="META_WINDOW_DROPDOWN_MENU"
+              glib:nick="dropdown-menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="41">Dropdown menu</doc>
+      </member>
+      <member name="popup_menu"
+              value="10"
+              c:identifier="META_WINDOW_POPUP_MENU"
+              glib:nick="popup-menu">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="42">Popup menu</doc>
+      </member>
+      <member name="tooltip"
+              value="11"
+              c:identifier="META_WINDOW_TOOLTIP"
+              glib:nick="tooltip">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="43">Tooltip</doc>
+      </member>
+      <member name="notification"
+              value="12"
+              c:identifier="META_WINDOW_NOTIFICATION"
+              glib:nick="notification">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="44">Notification</doc>
+      </member>
+      <member name="combo"
+              value="13"
+              c:identifier="META_WINDOW_COMBO"
+              glib:nick="combo">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="45">Combobox</doc>
+      </member>
+      <member name="dnd"
+              value="14"
+              c:identifier="META_WINDOW_DND"
+              glib:nick="dnd">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="46">Drag and drop</doc>
+      </member>
+      <member name="override_other"
+              value="15"
+              c:identifier="META_WINDOW_OVERRIDE_OTHER"
+              glib:nick="override-other">
+        <doc xml:space="preserve"
+             filename="../src/meta/window.h"
+             line="47">Other override-redirect window type</doc>
+      </member>
+    </enumeration>
+    <class name="Workspace"
+           c:symbol-prefix="workspace"
+           c:type="MetaWorkspace"
+           parent="GObject.Object"
+           glib:type-name="MetaWorkspace"
+           glib:get-type="meta_workspace_get_type"
+           glib:type-struct="WorkspaceClass">
+      <source-position filename="../src/meta/workspace.h" line="34"/>
+      <method name="activate" c:identifier="meta_workspace_activate">
+        <source-position filename="../src/meta/workspace.h" line="58"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="activate_with_focus"
+              c:identifier="meta_workspace_activate_with_focus">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="509">Switches to @workspace and possibly activates the window @focus_this.
+
+The window @focus_this is activated by calling meta_window_activate()
+which will unminimize it and transient parents, raise it and give it
+the focus.
+
+If a window is currently being moved by the user, it will be
+moved to @workspace.
+
+The advantage of calling this function instead of meta_workspace_activate()
+followed by meta_window_activate() is that it happens as a unit, so
+no other window gets focused first before @focus_this.</doc>
+        <source-position filename="../src/meta/workspace.h" line="61"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="511">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="focus_this" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="512">the #MetaWindow to be focused, or %NULL</doc>
+            <type name="Window" c:type="MetaWindow*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="513">timestamp for @focus_this</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_display" c:identifier="meta_workspace_get_display">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="1462">Gets the #MetaDisplay that the workspace is part of.</doc>
+        <source-position filename="../src/meta/workspace.h" line="43"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/workspace.c"
+               line="1468">the #MetaDisplay for the workspace</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1464">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_neighbor" c:identifier="meta_workspace_get_neighbor">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="1206">Calculate and retrieve the workspace that is next to @workspace,
+according to @direction and the current workspace layout, as set
+by meta_screen_override_workspace_layout().</doc>
+        <source-position filename="../src/meta/workspace.h" line="70"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/workspace.c"
+               line="1215">the workspace next to @workspace, or
+  @workspace itself if the neighbor would be outside the layout</doc>
+          <type name="Workspace" c:type="MetaWorkspace*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1208">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1209">a #MetaMotionDirection, relative to @workspace</doc>
+            <type name="MotionDirection" c:type="MetaMotionDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_work_area_all_monitors"
+              c:identifier="meta_workspace_get_work_area_all_monitors">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="1141">Stores the work area in @area.</doc>
+        <source-position filename="../src/meta/workspace.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1143">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="area"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1144">location to store the work area</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_work_area_for_monitor"
+              c:identifier="meta_workspace_get_work_area_for_monitor">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="1108">Stores the work area for @which_monitor on @workspace
+in @area.</doc>
+        <source-position filename="../src/meta/workspace.h" line="49"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1110">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="which_monitor" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1111">a monitor index</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="area"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1112">location to store the work area</doc>
+            <type name="Rectangle" c:type="MetaRectangle*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="index" c:identifier="meta_workspace_index">
+        <source-position filename="../src/meta/workspace.h" line="40"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_windows" c:identifier="meta_workspace_list_windows">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="709">Gets windows contained on the workspace, including workspace-&gt;windows
+and also sticky windows. Override-redirect windows are not included.</doc>
+        <source-position filename="../src/meta/workspace.h" line="46"/>
+        <return-value transfer-ownership="container">
+          <doc xml:space="preserve"
+               filename="../src/core/workspace.c"
+               line="716">the list of windows.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Window"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="711">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_builtin_struts"
+              c:identifier="meta_workspace_set_builtin_struts">
+        <doc xml:space="preserve"
+             filename="../src/core/workspace.c"
+             line="1016">Sets a list of struts that will be used in addition to the struts
+of the windows in the workspace when computing the work area of
+the workspace.</doc>
+        <source-position filename="../src/meta/workspace.h" line="66"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1018">a #MetaWorkspace</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </instance-parameter>
+          <parameter name="struts" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/workspace.c"
+                 line="1019">list of #MetaStrut</doc>
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="Strut"/>
+            </type>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="active" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="n-windows" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="workspace-index" transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </property>
+      <glib:signal name="window-added" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="window-removed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Window"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="WorkspaceClass"
+            c:type="MetaWorkspaceClass"
+            disguised="1"
+            glib:is-gtype-struct-for="Workspace">
+      <source-position filename="../src/meta/workspace.h" line="34"/>
+    </record>
+    <class name="WorkspaceManager"
+           c:symbol-prefix="workspace_manager"
+           c:type="MetaWorkspaceManager"
+           parent="GObject.Object"
+           glib:type-name="MetaWorkspaceManager"
+           glib:get-type="meta_workspace_manager_get_type"
+           glib:type-struct="WorkspaceManagerClass">
+      <source-position filename="../src/meta/meta-workspace-manager.h"
+                       line="36"/>
+      <method name="append_new_workspace"
+              c:identifier="meta_workspace_manager_append_new_workspace">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-workspace-manager.c"
+             line="375">Append a new workspace to the workspace manager and (optionally) switch to that
+display.</doc>
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="57"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-workspace-manager.c"
+               line="386">the newly appended workspace.</doc>
+          <type name="Workspace" c:type="MetaWorkspace*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="377">a #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+          <parameter name="activate" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="378">%TRUE if the workspace should be switched to after creation</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="379">if switching to a new workspace, timestamp to be used when
+  focusing a window on the new workspace. (Doesn't hurt to pass a valid
+  timestamp when available even if not switching workspaces.)</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_active_workspace"
+              c:identifier="meta_workspace_manager_get_active_workspace">
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="70"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-workspace-manager.c"
+               line="1023">The current workspace</doc>
+          <type name="Workspace" c:type="MetaWorkspace*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="1021">A #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_active_workspace_index"
+              c:identifier="meta_workspace_manager_get_active_workspace_index">
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_n_workspaces"
+              c:identifier="meta_workspace_manager_get_n_workspaces">
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_workspace_by_index"
+              c:identifier="meta_workspace_manager_get_workspace_by_index">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-workspace-manager.c"
+             line="288">Gets the workspace object for one of a workspace manager's workspaces given the 
workspace
+index. It's valid to call this function with an out-of-range index and it
+will robustly return %NULL.</doc>
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="48"/>
+        <return-value transfer-ownership="none" nullable="1">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-workspace-manager.c"
+               line="297">the workspace object with specified
+  index, or %NULL if the index is out of range.</doc>
+          <type name="Workspace" c:type="MetaWorkspace*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="290">a #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="291">index of one of the display's workspaces</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_workspaces"
+              c:identifier="meta_workspace_manager_get_workspaces"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="42"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/meta-workspace-manager.c"
+               line="1000">The workspaces for @display</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Workspace"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="998">a #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="override_workspace_layout"
+              c:identifier="meta_workspace_manager_override_workspace_layout">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-workspace-manager.c"
+             line="589">Explicitly set the layout of workspaces. Once this has been called, the contents of 
the
+_NET_DESKTOP_LAYOUT property on the root window are completely ignored.</doc>
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="73"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="591">a #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+          <parameter name="starting_corner" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="592">the corner at which the first workspace is found</doc>
+            <type name="DisplayCorner" c:type="MetaDisplayCorner"/>
+          </parameter>
+          <parameter name="vertical_layout" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="593">if %TRUE the workspaces are laid out in columns rather than rows</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="n_rows" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="594">number of rows of workspaces, or -1 to determine the number of rows from
+  @n_columns and the total number of workspaces</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="596">number of columns of workspaces, or -1 to determine the number of columns from
+  @n_rows and the total number of workspaces</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_workspace"
+              c:identifier="meta_workspace_manager_remove_workspace">
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="52"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reorder_workspace"
+              c:identifier="meta_workspace_manager_reorder_workspace">
+        <doc xml:space="preserve"
+             filename="../src/core/meta-workspace-manager.c"
+             line="493">Reorder a workspace to a new index. If the workspace is currently active
+the "active-workspace-changed" signal will be emitted.
+If the workspace's index is the same as @new_index or the workspace
+will not be found in the list, this function will return.
+
+Calling this function will also emit the "workspaces-reordered" signal.</doc>
+        <source-position filename="../src/meta/meta-workspace-manager.h"
+                         line="62"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="workspace_manager"
+                              transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="495">a #MetaWorkspaceManager</doc>
+            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
+          </instance-parameter>
+          <parameter name="workspace" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="496">a #MetaWorkspace to reorder</doc>
+            <type name="Workspace" c:type="MetaWorkspace*"/>
+          </parameter>
+          <parameter name="new_index" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/core/meta-workspace-manager.c"
+                 line="497">the new index of the passed workspace</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="layout-columns" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="layout-rows" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <property name="n-workspaces" transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </property>
+      <glib:signal name="active-workspace-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="showing-desktop-changed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="workspace-added" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="workspace-removed" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="workspace-switched" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="MotionDirection"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="workspaces-reordered" when="last">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="WorkspaceManagerClass"
+            c:type="MetaWorkspaceManagerClass"
+            glib:is-gtype-struct-for="WorkspaceManager">
+      <source-position filename="../src/meta/meta-workspace-manager.h"
+                       line="36"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="X11Display"
+           c:symbol-prefix="x11_display"
+           c:type="MetaX11Display"
+           parent="GObject.Object"
+           glib:type-name="MetaX11Display"
+           glib:get-type="meta_x11_display_get_type"
+           glib:type-struct="X11DisplayClass">
+      <source-position filename="../src/meta/meta-x11-display.h" line="33"/>
+      <method name="clear_stage_input_region"
+              c:identifier="meta_x11_display_clear_stage_input_region">
+        <source-position filename="../src/meta/meta-x11-display.h" line="71"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_damage_event_base"
+              c:identifier="meta_x11_display_get_damage_event_base">
+        <source-position filename="../src/meta/meta-x11-display.h" line="51"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_screen_number"
+              c:identifier="meta_x11_display_get_screen_number">
+        <source-position filename="../src/meta/meta-x11-display.h" line="39"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_shape_event_base"
+              c:identifier="meta_x11_display_get_shape_event_base">
+        <source-position filename="../src/meta/meta-x11-display.h" line="54"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_xdisplay"
+              c:identifier="meta_x11_display_get_xdisplay"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-x11-display.h" line="42"/>
+        <return-value>
+          <type name="xlib.Display" c:type="Display*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/meta-x11-display.c"
+                 line="1467">a #MetaX11Display</doc>
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_xinput_opcode"
+              c:identifier="meta_x11_display_get_xinput_opcode"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-x11-display.h" line="48"/>
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/meta-x11-display.c"
+                 line="1489">a #MetaX11Display</doc>
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_xroot"
+              c:identifier="meta_x11_display_get_xroot"
+              introspectable="0">
+        <source-position filename="../src/meta/meta-x11-display.h" line="45"/>
+        <return-value transfer-ownership="none">
+          <type name="xlib.Window" c:type="Window"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/meta-x11-display.c"
+                 line="1478">A #MetaX11Display</doc>
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="has_shape" c:identifier="meta_x11_display_has_shape">
+        <source-position filename="../src/meta/meta-x11-display.h" line="57"/>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="lookup_group"
+              c:identifier="meta_x11_display_lookup_group"
+              introspectable="0">
+        <source-position filename="../src/meta/group.h" line="46"/>
+        <return-value>
+          <type name="Group" c:type="MetaGroup*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="232">a #MetaX11Display</doc>
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+          <parameter name="group_leader" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/group.c"
+                 line="233">a X window</doc>
+            <type name="xlib.Window" c:type="Window"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cm_selection"
+              c:identifier="meta_x11_display_set_cm_selection">
+        <source-position filename="../src/meta/meta-x11-display.h" line="60"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_stage_input_region"
+              c:identifier="meta_x11_display_set_stage_input_region">
+        <source-position filename="../src/meta/meta-x11-display.h" line="67"/>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+          <parameter name="region" transfer-ownership="none">
+            <type name="xfixes.XserverRegion" c:type="XserverRegion"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="xwindow_is_a_no_focus_window"
+              c:identifier="meta_x11_display_xwindow_is_a_no_focus_window">
+        <source-position filename="../src/meta/meta-x11-display.h" line="63"/>
+        <return-value transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/x11/meta-x11-display.c"
+               line="1863">%TRUE iff window is one of mutter's internal "no focus" windows
+which will have the focus when there is no actual client window focused.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="x11_display" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/meta-x11-display.c"
+                 line="1860">A #MetaX11Display</doc>
+            <type name="X11Display" c:type="MetaX11Display*"/>
+          </instance-parameter>
+          <parameter name="xwindow" transfer-ownership="none">
+            <doc xml:space="preserve"
+                 filename="../src/x11/meta-x11-display.c"
+                 line="1861">An X11 window</doc>
+            <type name="xlib.Window" c:type="Window"/>
+          </parameter>
+        </parameters>
+      </method>
+    </class>
+    <record name="X11DisplayClass"
+            c:type="MetaX11DisplayClass"
+            glib:is-gtype-struct-for="X11Display">
+      <source-position filename="../src/meta/meta-x11-display.h" line="33"/>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <function-macro name="XFree" c:identifier="meta_XFree" introspectable="0">
+      <source-position filename="../src/meta/display.h" line="78"/>
+      <parameters>
+        <parameter name="p">
+        </parameter>
+      </parameters>
+    </function-macro>
+    <function name="activate_session" c:identifier="meta_activate_session">
+      <doc xml:space="preserve"
+           filename="../src/backends/native/meta-backend-native.c"
+           line="808">Tells mutter to activate the session. When mutter is a
+display server, this tells logind to switch over to
+the new session.</doc>
+      <source-position filename="../src/meta/main.h" line="42"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="add_clutter_debug_flags"
+              c:identifier="meta_add_clutter_debug_flags">
+      <source-position filename="../src/meta/util.h" line="210"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="debug_flags" transfer-ownership="none">
+          <type name="Clutter.DebugFlag" c:type="ClutterDebugFlag"/>
+        </parameter>
+        <parameter name="draw_flags" transfer-ownership="none">
+          <type name="Clutter.DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
+        </parameter>
+        <parameter name="pick_flags" transfer-ownership="none">
+          <type name="Clutter.PickDebugFlag" c:type="ClutterPickDebugFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="add_debug_paint_flag"
+              c:identifier="meta_add_debug_paint_flag">
+      <source-position filename="../src/meta/util.h" line="220"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="flag" transfer-ownership="none">
+          <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="add_verbose_topic" c:identifier="meta_add_verbose_topic">
+      <doc xml:space="preserve"
+           filename="../src/core/util.c"
+           line="130">Ensure log messages for the given topic @topic
+will be printed.</doc>
+      <source-position filename="../src/meta/util.h" line="136"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="topic" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="132">Topic for which logging will be started</doc>
+          <type name="DebugTopic" c:type="MetaDebugTopic"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bug" c:identifier="meta_bug" introspectable="0">
+      <source-position filename="../src/meta/util.h" line="53"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clutter_init" c:identifier="meta_clutter_init">
+      <source-position filename="../src/meta/meta-backend.h" line="71"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <docsection name="compositor">
+      <doc xml:space="preserve"
+           filename="../src/compositor/compositor.c"
+           line="3">At a high-level, a window is not-visible or visible. When a
+window is added (with meta_compositor_add_window()) it is not visible.
+meta_compositor_show_window() indicates a transition from not-visible to
+visible. Some of the reasons for this:
+
+- Window newly created
+- Window is unminimized
+- Window is moved to the current desktop
+- Window was made sticky
+
+meta_compositor_hide_window() indicates that the window has transitioned from
+visible to not-visible. Some reasons include:
+
+- Window was destroyed
+- Window is minimized
+- Window is moved to a different desktop
+- Window no longer sticky.
+
+Note that combinations are possible - a window might have first
+been minimized and then moved to a different desktop. The 'effect' parameter
+to meta_compositor_show_window() and meta_compositor_hide_window() is a hint
+as to the appropriate effect to show the user and should not
+be considered to be indicative of a state change.
+
+When the active workspace is changed, meta_compositor_switch_workspace() is
+called first, then meta_compositor_show_window() and
+meta_compositor_hide_window() are called individually for each window
+affected, with an effect of META_COMP_EFFECT_NONE.
+If hiding windows will affect the switch workspace animation, the
+compositor needs to delay hiding the windows until the switch
+workspace animation completes.
+
+# Containers #
+
+There's two containers in the stage that are used to place window actors, here
+are listed in the order in which they are painted:
+
+- window group, accessible with meta_get_window_group_for_display()
+- top window group, accessible with meta_get_top_window_group_for_display()
+
+Mutter will place actors representing windows in the window group, except for
+override-redirect windows (ie. popups and menus) which will be placed in the
+top window group.</doc>
+    </docsection>
+    <function name="debug_spew_real"
+              c:identifier="meta_debug_spew_real"
+              introspectable="0">
+      <source-position filename="../src/meta/util.h" line="45"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="disable_unredirect_for_display"
+              c:identifier="meta_disable_unredirect_for_display">
+      <doc xml:space="preserve"
+           filename="../src/compositor/compositor.c"
+           line="1317">Disables unredirection, can be useful in situations where having
+unredirected windows is undesirable like when recording a video.</doc>
+      <source-position filename="../src/meta/compositor-mutter.h" line="48"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="1319">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="display">
+      <doc xml:space="preserve"
+           filename="../src/core/display.c"
+           line="23">The display is represented as a #MetaDisplay struct.</doc>
+    </docsection>
+    <function name="enable_unredirect_for_display"
+              c:identifier="meta_enable_unredirect_for_display">
+      <doc xml:space="preserve"
+           filename="../src/compositor/compositor.c"
+           line="1340">Enables unredirection which reduces the overhead for apps like games.</doc>
+      <source-position filename="../src/meta/compositor-mutter.h" line="51"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="1342">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="exit" c:identifier="meta_exit">
+      <source-position filename="../src/meta/main.h" line="72"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="code" transfer-ownership="none">
+          <type name="ExitCode" c:type="MetaExitCode"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="external_binding_name_for_action"
+              c:identifier="meta_external_binding_name_for_action">
+      <source-position filename="../src/meta/util.h" line="160"/>
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="keybinding_action" transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fatal" c:identifier="meta_fatal" introspectable="0">
+      <source-position filename="../src/meta/util.h" line="61"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="focus_stage_window" c:identifier="meta_focus_stage_window">
+      <source-position filename="../src/meta/compositor-mutter.h" line="54"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="frame_type_to_string"
+              c:identifier="meta_frame_type_to_string"
+              moved-to="FrameType.to_string">
+      <doc xml:space="preserve"
+           filename="../src/ui/theme.c"
+           line="1360">Converts a frame type enum value to the name string that would
+appear in the theme definition file.</doc>
+      <source-position filename="../src/meta/util.h" line="155"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/ui/theme.c"
+             line="1367">the string value</doc>
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/ui/theme.c"
+               line="1362">a #MetaFrameType</doc>
+          <type name="FrameType" c:type="MetaFrameType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="g_utf8_strndup" c:identifier="meta_g_utf8_strndup">
+      <source-position filename="../src/meta/util.h" line="163"/>
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="n" transfer-ownership="none">
+          <type name="gsize" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="gesture-tracker">
+      <doc xml:space="preserve"
+           filename="../src/core/meta-gesture-tracker.c"
+           line="22">Forwards touch events to clutter actors, and accepts/rejects touch sequences
+based on the outcome of those.</doc>
+    </docsection>
+    <function name="get_backend" c:identifier="meta_get_backend">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-backend.c"
+           line="105">Accessor for the singleton MetaBackend.</doc>
+      <source-position filename="../src/meta/meta-backend.h" line="39"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/backends/meta-backend.c"
+             line="110">The only #MetaBackend there is.</doc>
+        <type name="Backend" c:type="MetaBackend*"/>
+      </return-value>
+    </function>
+    <function name="get_debug_paint_flags"
+              c:identifier="meta_get_debug_paint_flags">
+      <source-position filename="../src/meta/util.h" line="226"/>
+      <return-value transfer-ownership="none">
+        <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
+      </return-value>
+    </function>
+    <function name="get_feedback_group_for_display"
+              c:identifier="meta_get_feedback_group_for_display">
+      <source-position filename="../src/meta/compositor-mutter.h" line="45"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/compositor.c"
+             line="272">The feedback group corresponding to @display</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="270">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_locale_direction"
+              c:identifier="meta_get_locale_direction">
+      <source-position filename="../src/meta/util.h" line="207"/>
+      <return-value transfer-ownership="none">
+        <type name="LocaleDirection" c:type="MetaLocaleDirection"/>
+      </return-value>
+    </function>
+    <function name="get_option_context"
+              c:identifier="meta_get_option_context"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="257">Returns a #GOptionContext initialized with mutter-related options.
+Parse the command-line args with this before calling meta_init().</doc>
+      <source-position filename="../src/meta/main.h" line="30"/>
+      <return-value>
+        <doc xml:space="preserve"
+             filename="../src/core/main.c"
+             line="263">the #GOptionContext</doc>
+        <type name="GLib.OptionContext" c:type="GOptionContext*"/>
+      </return-value>
+    </function>
+    <function name="get_replace_current_wm"
+              c:identifier="meta_get_replace_current_wm">
+      <source-position filename="../src/meta/main.h" line="45"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_stage_for_display"
+              c:identifier="meta_get_stage_for_display">
+      <source-position filename="../src/meta/compositor-mutter.h" line="33"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/compositor.c"
+             line="209">The #ClutterStage for the display</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="207">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_top_window_group_for_display"
+              c:identifier="meta_get_top_window_group_for_display">
+      <source-position filename="../src/meta/compositor-mutter.h" line="42"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/compositor.c"
+             line="251">The top window group corresponding to @display</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="249">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_window_actors" c:identifier="meta_get_window_actors">
+      <source-position filename="../src/meta/compositor-mutter.h" line="36"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/compositor.c"
+             line="293">The set of #MetaWindowActor on @display</doc>
+        <type name="GLib.List" c:type="GList*">
+          <type name="Clutter.Actor"/>
+        </type>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="291">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_window_group_for_display"
+              c:identifier="meta_get_window_group_for_display">
+      <source-position filename="../src/meta/compositor-mutter.h" line="39"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/compositor.c"
+             line="230">The window group corresponding to @display</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/compositor.c"
+               line="228">a #MetaDisplay</doc>
+          <type name="Display" c:type="MetaDisplay*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gravity_to_string"
+              c:identifier="meta_gravity_to_string"
+              moved-to="Gravity.to_string">
+      <source-position filename="../src/meta/util.h" line="157"/>
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gravity" transfer-ownership="none">
+          <type name="Gravity" c:type="MetaGravity"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init" c:identifier="meta_init" introspectable="0">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="525">Initialize mutter. Call this after meta_get_option_context() and
+meta_plugin_manager_set_plugin_type(), and before meta_run().</doc>
+      <source-position filename="../src/meta/main.h" line="33"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="is_debugging" c:identifier="meta_is_debugging">
+      <source-position filename="../src/meta/util.h" line="36"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="is_restart" c:identifier="meta_is_restart">
+      <doc xml:space="preserve"
+           filename="../src/core/restart.c"
+           line="184">Returns %TRUE if this instance of Mutter comes from Mutter
+restarting itself (for example to enable/disable stereo.)
+See meta_restart(). If this is the case, any startup visuals
+or animations should be suppressed.</doc>
+      <source-position filename="../src/meta/main.h" line="57"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="is_syncing" c:identifier="meta_is_syncing">
+      <doc xml:space="preserve"
+           filename="../src/core/display.c"
+           line="2066">Returns whether X synchronisation is currently enabled.
+
+FIXME: This is *only* called by meta_display_open(), but by that time
+we have already turned syncing on or off on startup, and we don't
+have any way to do so while Mutter is running, so it's rather
+pointless.</doc>
+      <source-position filename="../src/meta/util.h" line="39"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/core/display.c"
+             line="2076">%TRUE if we must wait for events whenever we send X requests;
+%FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="is_verbose" c:identifier="meta_is_verbose">
+      <source-position filename="../src/meta/util.h" line="33"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="is_wayland_compositor"
+              c:identifier="meta_is_wayland_compositor">
+      <source-position filename="../src/meta/util.h" line="42"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="keybindings_set_custom_handler"
+              c:identifier="meta_keybindings_set_custom_handler">
+      <doc xml:space="preserve"
+           filename="../src/core/keybindings.c"
+           line="3683">Allows users to register a custom handler for a
+builtin key binding.</doc>
+      <source-position filename="../src/meta/keybindings.h" line="42"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/core/keybindings.c"
+             line="3693">%TRUE if the binding known as @name was found,
+%FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="3685">The name of the keybinding to set</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="handler"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1"
+                   scope="notified"
+                   closure="2"
+                   destroy="3">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="3686">The new handler function</doc>
+          <type name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="3687">User data to pass to the callback</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="free_data" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../src/core/keybindings.c"
+               line="3688">Will be called when this handler is overridden.</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="kms">
+      <doc xml:space="preserve"
+           filename="../src/backends/native/meta-kms.c"
+           line="33">@short description: KMS abstraction
+The KMS abstraction consists of various building blocks for helping out with
+interacting with the various drm API's, enabling users to use a
+transactional API, aiming to hide all interaction with the underlying APIs.
+
+The subsystem defines two separate contexts, the "main" context, and the
+"impl" context. The main context is the context of which mutter as a whole
+runs in. It uses the main GLib main loop and main context and always runs in
+the main thread.
+
+The impl context is where all underlying API is being executed. While in the
+current state, it always runs in the main thread, the aim is to be able to
+execute the impl context in a dedicated thread.
+
+The public facing MetaKms API is always assumed to be executed from the main
+context.
+
+The KMS abstraction consists of the following public components:
+
+#MetaKms:
+
+Main entry point; used by the native backend to create devices, post updates
+etc.
+
+#MetaKmsDevice:
+
+A device (usually /dev/dri/cardN, where N being a number). Used to get KMS
+objects, such as connectors, CRTCs, planes, as well as basic meta data such
+as device path etc.
+
+#MetaKmsCrtc:
+
+Represents a CRTC. It manages a representation of the current CRTC state,
+including current mode, coordinates, possible clones.
+
+#MetaKmsConnector:
+
+Represents a connector, e.g. a display port connection. It also manages a
+representation of the current state, including meta data such as physical
+dimension of the connected, available modes, EDID, tile info etc. It also
+contains helper functions for configuration, as well as methods for adding
+configuration to a transaction (See #MetaKmsUpdate).
+
+#MetaKmsPlane:
+
+Represents a hardware plane. A plane is used to define the content of what
+should be presented on a CRTC. Planes can either be primary planes, used as
+a backdrop for CRTCs, overlay planes, and cursor planes.
+
+#MetaKmsUpdate:
+
+A KMS transaction object, meant to be processed potentially atomically when
+posted. An update consists of plane assignments, mode sets and KMS object
+property entries. The user adds updates to the object, and then posts it via
+MetaKms. It will then be processed by the MetaKms backend (See
+#MetaKmsImpl), potentially atomically.
+
+
+There are also these private objects, without public facing API:
+
+#MetaKmsImpl:
+
+The KMS backend implementation, running in the impl context. #MetaKmsImpl
+itself is an abstract object, with potentially multiple implementations.
+Currently only #MetaKmsImplSimple exists.
+
+#MetaKmsImplSimple:
+
+A KMS backend implementation using the non-atomic drmMode* API. While it's
+interacted with using the transactional API, the #MetaKmsUpdate is processed
+non-atomically.
+
+#MetaKmsImplDevice:
+
+An object linked to a #MetaKmsDevice, but where it is executed in the impl
+context. It takes care of the updating of the various KMS object (CRTC,
+connector, ..) states.
+
+#MetaKmsPageFlip:
+
+A object representing a page flip. It's created when a page flip is queued,
+and contains information necessary to provide feedback to the one requesting
+the page flip.</doc>
+    </docsection>
+    <function name="later_add" c:identifier="meta_later_add">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-later.c"
+           line="256">Sets up a callback  to be called at some later time. @when determines the
+particular later occasion at which it is called. This is much like g_idle_add(),
+except that the functions interact properly with clutter event handling.
+If a "later" function is added from a clutter event handler, and is supposed
+to be run before the stage is redrawn, it will be run before that redraw
+of the stage, not the next one.</doc>
+      <source-position filename="../src/meta/meta-later.h" line="45"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/compositor/meta-later.c"
+             line="270">an integer ID (guaranteed to be non-zero) that can be used
+ to cancel the callback and prevent it from being run.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="when" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-later.c"
+               line="258">enumeration value determining the phase at which to run the callback</doc>
+          <type name="LaterType" c:type="MetaLaterType"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="2"
+                   destroy="3">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-later.c"
+               line="259">callback to run later</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-later.c"
+               line="260">data to pass to the callback</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-later.c"
+               line="261">function to call to destroy @data when it is no longer in use, or %NULL</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="later_remove" c:identifier="meta_later_remove">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-later.c"
+           line="299">Removes a callback added with meta_later_add()</doc>
+      <source-position filename="../src/meta/meta-later.h" line="51"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="later_id" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/compositor/meta-later.c"
+               line="301">the integer ID returned from meta_later_add()</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="main">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="23">Functions which parse the command-line arguments, create the display,
+kick everything off and then close down Mutter when it's time to go.
+
+
+
+Mutter - a boring window manager for the adult in you
+
+Many window managers are like Marshmallow Froot Loops; Mutter
+is like Frosted Flakes: it's still plain old corn, but dusted
+with some sugar.
+
+The best way to get a handle on how the whole system fits together
+is discussed in doc/code-overview.txt; if you're looking for functions
+to investigate, read main(), meta_display_open(), and event_callback().</doc>
+    </docsection>
+    <docsection name="meta-backend">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-backend.c"
+           line="25">MetaBackend is the abstraction that deals with several things like:
+- Modesetting (depending on the backend, this can be done either by X or KMS)
+- Initializing the #MetaSettings
+- Setting up Monitor configuration
+- Input device configuration (using the #ClutterDeviceManager)
+- Creating the #MetaRenderer
+- Setting up the stage of the scene graph (using #MetaStage)
+- Creating the object that deals with the cursor (using #MetaCursorTracker)
+    and its possible pointer constraint (using #MetaPointerConstraint)
+- Setting the cursor sprite (using #MetaCursorRenderer)
+- Interacting with logind (using the appropriate D-Bus interface)
+- Querying UPower (over D-Bus) to know when the lid is closed
+- Setup Remote Desktop / Screencasting (#MetaRemoteDesktop)
+- Setup the #MetaEgl object
+
+Note that the #MetaBackend is not a subclass of #ClutterBackend. It is
+responsible for creating the correct one, based on the backend that is
+used (#MetaBackendNative or #MetaBackendX11).</doc>
+    </docsection>
+    <docsection name="meta-backend-native">
+      <doc xml:space="preserve"
+           filename="../src/backends/native/meta-backend-native.c"
+           line="25">MetaBackendNative is an implementation of #MetaBackend that uses "native"
+technologies like DRM/KMS and libinput/evdev to perform the necessary
+functions.</doc>
+    </docsection>
+    <docsection name="meta-backend-x11">
+      <doc xml:space="preserve"
+           filename="../src/backends/x11/meta-backend-x11.c"
+           line="25">MetaBackendX11 is an implementation of #MetaBackend using X and X
+extensions, like XInput and XKB.</doc>
+    </docsection>
+    <docsection name="meta-background-group">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-background-group.c"
+           line="3">This class is a subclass of ClutterActor with special handling for
+MetaBackgroundActor/MetaBackgroundGroup when painting children.
+It makes sure to only draw the parts of the backgrounds not
+occluded by opaque windows.
+
+See #MetaWindowGroup for more information behind the motivation,
+and details on implementation.</doc>
+    </docsection>
+    <docsection name="meta-clutter-backend-native">
+      <doc xml:space="preserve"
+           filename="../src/backends/native/meta-clutter-backend-native.c"
+           line="25">MetaClutterBackendNative is the #ClutterBackend which is used by the native
+(as opposed to the X) backend. It creates a stage with #MetaStageNative and
+renders using the #CoglRenderer.
+
+Note that MetaClutterBackendNative is something different than a
+#MetaBackendNative. The former is a #ClutterBackend implementation, while
+the latter is a #MetaBackend implementation.</doc>
+    </docsection>
+    <docsection name="meta-cullable">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-cullable.c"
+           line="47">When we are painting a stack of 5-10 large actors, the standard
+bottom-to-top method of drawing every actor results in a tremendous
+amount of overdraw. If these actors are painting textures like
+windows, it can easily max out the available memory bandwidth on a
+low-end graphics chipset. It's even worse if window textures are
+being accessed over the AGP bus.
+
+#MetaCullable is our solution. The basic technique applied here is to
+do a pre-pass before painting where we walk each actor from top to bottom
+and ask each actor to "cull itself out". We pass in a region it can copy
+to clip its drawing to, and the actor can subtract its fully opaque pixels
+so that actors underneath know not to draw there as well.</doc>
+    </docsection>
+    <docsection name="meta-logical-monitor">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-logical-monitor.c"
+           line="22">A logical monitor is a group of one or more physical monitors that
+must behave and be treated as single one. This happens, for example,
+when 2 monitors are mirrored. Each physical monitor is represented
+by a #MetaMonitor.
+
+#MetaLogicalMonitor has a single viewport, with its owns transformations
+(such as scaling), that are applied to all the #MetaMonitor&lt;!-- --&gt;s that
+are grouped by it.
+
+#MetaLogicalMonitor provides an abstraction that makes it easy to handle
+the specifics of setting up different #MetaMonitor&lt;!-- --&gt;s. It then can
+be used more easily by #MetaRendererView.</doc>
+    </docsection>
+    <docsection name="meta-monitor-manager">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-monitor-manager.c"
+           line="26">#MetaMonitorManager is an abstract class which contains methods to handle
+multiple monitors (both #MetaMonitor and #MetaLogicalMonitor) and GPU's
+(#MetaGpu). Its functions include reading and/or changing the current
+configuration and available capabiliies.
+
+The #MetaMonitorManager also provides the "org.gnome.Mutter.DisplayConfig"
+DBus service, so apps like GNOME Settings can use this functionality.</doc>
+    </docsection>
+    <docsection name="meta-monitor-manager-kms">
+      <doc xml:space="preserve"
+           filename="../src/backends/native/meta-monitor-manager-kms.c"
+           line="25">#MetaMonitorManagerKms is a subclass of #MetaMonitorManager which
+implements its functionality "natively": it uses the appropriate
+functions of the Linux DRM kernel module and using a udev client.
+
+See also #MetaMonitorManagerXrandr for an implementation using XRandR.</doc>
+    </docsection>
+    <docsection name="meta-monitor-manager-xrandr">
+      <doc xml:space="preserve"
+           filename="../src/backends/x11/meta-monitor-manager-xrandr.c"
+           line="26">#MetaMonitorManagerXrandr is a subclass of #MetaMonitorManager which
+implements its functionality using the RandR X protocol.
+
+See also #MetaMonitorManagerKms for a native implementation using Linux DRM
+and udev.</doc>
+    </docsection>
+    <docsection name="meta-pointer-confinement-wayland">
+      <doc xml:space="preserve"
+           filename="../src/wayland/meta-pointer-confinement-wayland.c"
+           line="25">A MetaPointerConfinementConstraint implements the client pointer constraint
+"pointer confinement": the cursor should not be able to "break out" of a
+certain area defined by the client requesting it.</doc>
+    </docsection>
+    <docsection name="meta-pointer-constraint">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-pointer-constraint.c"
+           line="25">A MetaPointerConstraint can be used to implement any kind of pointer
+constraint as requested by a client, such as cursor lock.
+
+Examples of pointer constraints are "pointer confinement" and "pointer
+locking" (as defined in the wayland pointer constraint protocol extension),
+which restrict movement in relation to a given client.</doc>
+    </docsection>
+    <docsection name="meta-pointer-lock-wayland">
+      <doc xml:space="preserve"
+           filename="../src/wayland/meta-pointer-lock-wayland.c"
+           line="25">A MetaPointerLockConstraint implements the client pointer constraint "pointer
+lock": the cursor should not make any movement.</doc>
+    </docsection>
+    <docsection name="meta-renderer">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-renderer.c"
+           line="25">A MetaRenderer object has 2 functions:
+
+1) Keeping a list of #MetaRendererView&lt;!-- --&gt;s, each responsible for
+rendering a part of the stage, corresponding to each #MetaLogicalMonitor. It
+keeps track of this list by querying the list of logical monitors in the
+#MetaBackend's #MetaMonitorManager, and creating a renderer view for each
+logical monitor it encounters.
+
+2) Creating and setting up an appropriate #CoglRenderer. For example, a
+#MetaRenderer might call cogl_renderer_set_custom_winsys() to tie the
+backend-specific mechanisms into Cogl.</doc>
+    </docsection>
+    <docsection name="meta-renderer-view">
+      <doc xml:space="preserve"
+           filename="../src/backends/meta-renderer-view.c"
+           line="18">A MetaRendererView object is responsible for rendering (a part of) the
+global stage, or more precisely: the part that matches what can be seen on a
+#MetaLogicalMonitor. By splitting up the rendering into different parts and
+attaching it to a #MetaLogicalMonitor, we can do the rendering so that each
+renderer view is responsible for applying the right #MetaMonitorTransform
+and the right scaling.</doc>
+    </docsection>
+    <docsection name="meta-shaped-texture">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-shaped-texture.c"
+           line="22">A MetaShapedTexture draws a #CoglTexture (often provided from a client
+surface) in such a way that it matches any required transformations that
+give its final shape, such as a #MetaMonitorTransform, y-invertedness, or a
+crop-and-scale operation.</doc>
+    </docsection>
+    <docsection name="meta-surface-actor">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-surface-actor.c"
+           line="3">MetaSurfaceActor is an abstract class which represents a surface in the
+Clutter scene graph. A subclass can implement the specifics of a surface
+depending on the way it is handled by a display protocol.
+
+An important feature of #MetaSurfaceActor is that it allows you to set an
+"input region": all events that occur in the surface, but outside of the
+input region are to be explicitly ignored. By default, this region is to
+%NULL, which means events on the whole surface is allowed.</doc>
+    </docsection>
+    <docsection name="meta-wayland-buffer">
+      <doc xml:space="preserve"
+           filename="../src/wayland/meta-wayland-buffer.c"
+           line="25">#MetaWaylandBuffer is a general wrapper around wl_buffer, the basic way of
+passing rendered data from Wayland clients to the compositor. Note that a
+buffer can be backed by several types of memory, as specified by
+#MetaWaylandBufferType.</doc>
+    </docsection>
+    <docsection name="meta-wayland-client">
+      <doc xml:space="preserve"
+           filename="../src/wayland/meta-wayland-client.c"
+           line="22">@title MetaWaylandClient</doc>
+    </docsection>
+    <docsection name="meta-wayland-dma-buf">
+      <doc xml:space="preserve"
+           filename="../src/wayland/meta-wayland-dma-buf.c"
+           line="28">The MetaWaylandDmaBuf namespace contains several objects and functions to
+handle DMA-BUF buffers that are passed through from clients in Wayland (e.g.
+using the linux_dmabuf_unstable_v1 protocol).</doc>
+    </docsection>
+    <docsection name="meta-window">
+      <doc xml:space="preserve"
+           filename="../src/core/window.c"
+           line="23">#MetaWindow is the core abstraction in Mutter of a window. It has the
+properties you'd expect, such as a title, an icon, whether it's fullscreen,
+has decorations, etc.
+
+Since a lot of different kinds of windows exist, each window also a
+#MetaWindowType which denotes which kind of window we're exactly dealing
+with. For example, one expects slightly different behaviour from a dialog
+than a "normal" window. The type of a window can be queried with
+meta_window_get_type().
+
+Common API for windows include:
+- Minimizing: meta_window_minimize() / meta_window_unminimize()
+- Maximizing: meta_window_maximize() / meta_window_unmaximize()
+- Fullscreen: meta_window_make_fullscreen() / meta_window_unmake_fullscreen()
+              / meta_window_is_fullscreen()
+
+Each #MetaWindow is part of either one or all #MetaWorkspace&lt;!-- --&gt;s of the
+desktop. You can activate a window on a certain workspace using
+meta_window_activate_with_workspace(), and query on which workspace it is
+located using meta_window_located_on_workspace(). The workspace it is part
+of can be obtained using meta_window_get_workspace().
+
+Each display protocol should make a subclass to be compatible with that
+protocols' specifics, for example #MetaWindowX11 and #MetaWindowWayland.
+This is independent of the protocol that the client uses, which is modeled
+using the #MetaWindowClientType enum.
+
+To integrate within the Clutter scene graph, which deals with the actual
+rendering, each #MetaWindow will be part of a #MetaWindowActor.</doc>
+    </docsection>
+    <docsection name="meta-window-actor">
+      <doc xml:space="preserve"
+           filename="../src/compositor/meta-window-actor.c"
+           line="3">#MetaWindowActor is a #ClutterActor that adds a notion of a window to the
+Clutter scene graph. It contains a #MetaWindow which provides the windowing
+API, and the #MetaCompositor that handles it.  For the actual content of the
+window, it contains a #MetaSurfaceActor.
+
+#MetaWindowActor takes care of the rendering features you need for your
+window. For example, it will take the windows' requested opacity and use
+that for clutter_actor_set_opacity(). Furthermore, it will also draw a
+shadow around the window (using #MetaShadow) and deal with synchronization
+between events of the window and the actual render loop. See
+MetaWindowActor::first-frame for an example of the latter.</doc>
+    </docsection>
+    <function name="pop_no_msg_prefix" c:identifier="meta_pop_no_msg_prefix">
+      <source-position filename="../src/meta/util.h" line="145"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="preference_to_string"
+              c:identifier="meta_preference_to_string"
+              moved-to="Preference.to_string">
+      <source-position filename="../src/meta/prefs.h" line="126"/>
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pref" transfer-ownership="none">
+          <type name="Preference" c:type="MetaPreference"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_add_listener"
+              c:identifier="meta_prefs_add_listener"
+              introspectable="0">
+      <source-position filename="../src/meta/prefs.h" line="115"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../src/core/prefs.c"
+               line="874">a #MetaPrefsChangedFunc</doc>
+          <type name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/core/prefs.c"
+               line="875">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_bell_is_audible"
+              c:identifier="meta_prefs_bell_is_audible">
+      <source-position filename="../src/meta/prefs.h" line="480"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_change_workspace_name"
+              c:identifier="meta_prefs_change_workspace_name">
+      <source-position filename="../src/meta/prefs.h" line="212"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="i" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_get_action_double_click_titlebar"
+              c:identifier="meta_prefs_get_action_double_click_titlebar">
+      <source-position filename="../src/meta/prefs.h" line="197"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.TitlebarAction"
+              c:type="GDesktopTitlebarAction"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_action_middle_click_titlebar"
+              c:identifier="meta_prefs_get_action_middle_click_titlebar">
+      <source-position filename="../src/meta/prefs.h" line="200"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.TitlebarAction"
+              c:type="GDesktopTitlebarAction"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_action_right_click_titlebar"
+              c:identifier="meta_prefs_get_action_right_click_titlebar">
+      <source-position filename="../src/meta/prefs.h" line="203"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.TitlebarAction"
+              c:type="GDesktopTitlebarAction"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_attach_modal_dialogs"
+              c:identifier="meta_prefs_get_attach_modal_dialogs">
+      <source-position filename="../src/meta/prefs.h" line="144"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_auto_maximize"
+              c:identifier="meta_prefs_get_auto_maximize">
+      <source-position filename="../src/meta/prefs.h" line="181"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_auto_raise"
+              c:identifier="meta_prefs_get_auto_raise">
+      <source-position filename="../src/meta/prefs.h" line="163"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_auto_raise_delay"
+              c:identifier="meta_prefs_get_auto_raise_delay">
+      <source-position filename="../src/meta/prefs.h" line="166"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_button_layout"
+              c:identifier="meta_prefs_get_button_layout">
+      <source-position filename="../src/meta/prefs.h" line="193"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="button_layout"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <type name="ButtonLayout" c:type="MetaButtonLayout*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_get_center_new_windows"
+              c:identifier="meta_prefs_get_center_new_windows">
+      <source-position filename="../src/meta/prefs.h" line="184"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_check_alive_timeout"
+              c:identifier="meta_prefs_get_check_alive_timeout">
+      <source-position filename="../src/meta/prefs.h" line="486"/>
+      <return-value transfer-ownership="none">
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_compositing_manager"
+              c:identifier="meta_prefs_get_compositing_manager">
+      <source-position filename="../src/meta/prefs.h" line="222"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_cursor_size"
+              c:identifier="meta_prefs_get_cursor_size">
+      <source-position filename="../src/meta/prefs.h" line="219"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_cursor_theme"
+              c:identifier="meta_prefs_get_cursor_theme">
+      <source-position filename="../src/meta/prefs.h" line="216"/>
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_disable_workarounds"
+              c:identifier="meta_prefs_get_disable_workarounds">
+      <source-position filename="../src/meta/prefs.h" line="160"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_drag_threshold"
+              c:identifier="meta_prefs_get_drag_threshold">
+      <source-position filename="../src/meta/prefs.h" line="237"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_draggable_border_width"
+              c:identifier="meta_prefs_get_draggable_border_width">
+      <source-position filename="../src/meta/prefs.h" line="234"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_dynamic_workspaces"
+              c:identifier="meta_prefs_get_dynamic_workspaces">
+      <source-position filename="../src/meta/prefs.h" line="157"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_edge_tiling"
+              c:identifier="meta_prefs_get_edge_tiling">
+      <source-position filename="../src/meta/prefs.h" line="178"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_focus_change_on_pointer_rest"
+              c:identifier="meta_prefs_get_focus_change_on_pointer_rest">
+      <source-position filename="../src/meta/prefs.h" line="169"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_focus_mode"
+              c:identifier="meta_prefs_get_focus_mode">
+      <source-position filename="../src/meta/prefs.h" line="138"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.FocusMode" c:type="GDesktopFocusMode"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_focus_new_windows"
+              c:identifier="meta_prefs_get_focus_new_windows">
+      <source-position filename="../src/meta/prefs.h" line="141"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.FocusNewWindows"
+              c:type="GDesktopFocusNewWindows"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_force_fullscreen"
+              c:identifier="meta_prefs_get_force_fullscreen">
+      <source-position filename="../src/meta/prefs.h" line="225"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_gnome_accessibility"
+              c:identifier="meta_prefs_get_gnome_accessibility">
+      <source-position filename="../src/meta/prefs.h" line="172"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_gnome_animations"
+              c:identifier="meta_prefs_get_gnome_animations">
+      <source-position filename="../src/meta/prefs.h" line="175"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_keybinding_action"
+              c:identifier="meta_prefs_get_keybinding_action">
+      <source-position filename="../src/meta/prefs.h" line="474"/>
+      <return-value transfer-ownership="none">
+        <type name="KeyBindingAction" c:type="MetaKeyBindingAction"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_get_mouse_button_menu"
+              c:identifier="meta_prefs_get_mouse_button_menu">
+      <source-position filename="../src/meta/prefs.h" line="135"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_mouse_button_mods"
+              c:identifier="meta_prefs_get_mouse_button_mods">
+      <source-position filename="../src/meta/prefs.h" line="129"/>
+      <return-value transfer-ownership="none">
+        <type name="VirtualModifier" c:type="MetaVirtualModifier"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_mouse_button_resize"
+              c:identifier="meta_prefs_get_mouse_button_resize">
+      <source-position filename="../src/meta/prefs.h" line="132"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_num_workspaces"
+              c:identifier="meta_prefs_get_num_workspaces">
+      <source-position filename="../src/meta/prefs.h" line="154"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_raise_on_click"
+              c:identifier="meta_prefs_get_raise_on_click">
+      <source-position filename="../src/meta/prefs.h" line="147"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_show_fallback_app_menu"
+              c:identifier="meta_prefs_get_show_fallback_app_menu">
+      <source-position filename="../src/meta/prefs.h" line="187"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_titlebar_font"
+              c:identifier="meta_prefs_get_titlebar_font">
+      <source-position filename="../src/meta/prefs.h" line="151"/>
+      <return-value transfer-ownership="none">
+        <type name="Pango.FontDescription"
+              c:type="const PangoFontDescription*"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_visual_bell"
+              c:identifier="meta_prefs_get_visual_bell">
+      <source-position filename="../src/meta/prefs.h" line="477"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_visual_bell_type"
+              c:identifier="meta_prefs_get_visual_bell_type">
+      <source-position filename="../src/meta/prefs.h" line="483"/>
+      <return-value transfer-ownership="none">
+        <type name="GDesktopEnums.VisualBellType"
+              c:type="GDesktopVisualBellType"/>
+      </return-value>
+    </function>
+    <function name="prefs_get_workspace_name"
+              c:identifier="meta_prefs_get_workspace_name">
+      <source-position filename="../src/meta/prefs.h" line="209"/>
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="const char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="i" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_get_workspaces_only_on_primary"
+              c:identifier="meta_prefs_get_workspaces_only_on_primary">
+      <source-position filename="../src/meta/prefs.h" line="231"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="prefs_init" c:identifier="meta_prefs_init">
+      <source-position filename="../src/meta/prefs.h" line="123"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="prefs_remove_listener"
+              c:identifier="meta_prefs_remove_listener"
+              introspectable="0">
+      <source-position filename="../src/meta/prefs.h" line="119"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:space="preserve"
+               filename="../src/core/prefs.c"
+               line="893">a #MetaPrefsChangedFunc</doc>
+          <type name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/core/prefs.c"
+               line="894">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_set_force_fullscreen"
+              c:identifier="meta_prefs_set_force_fullscreen">
+      <source-position filename="../src/meta/prefs.h" line="228"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="whether" transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_set_num_workspaces"
+              c:identifier="meta_prefs_set_num_workspaces">
+      <source-position filename="../src/meta/prefs.h" line="206"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_workspaces" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefs_set_show_fallback_app_menu"
+              c:identifier="meta_prefs_set_show_fallback_app_menu">
+      <source-position filename="../src/meta/prefs.h" line="190"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="whether" transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="push_no_msg_prefix" c:identifier="meta_push_no_msg_prefix">
+      <source-position filename="../src/meta/util.h" line="142"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="quit" c:identifier="meta_quit">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="679">Stops Mutter. This tells the event loop to stop processing; it is
+rather dangerous to use this because this will leave the user with
+no window manager. We generally do this only if, for example, the
+session manager asks us to; we assume the session manager knows
+what it's talking about.</doc>
+      <source-position filename="../src/meta/main.h" line="76"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="code" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/main.c"
+               line="681">The success or failure code to return to the calling process.</doc>
+          <type name="ExitCode" c:type="MetaExitCode"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rect" c:identifier="meta_rect">
+      <source-position filename="../src/meta/boxes.h" line="107"/>
+      <return-value transfer-ownership="full">
+        <type name="Rectangle" c:type="MetaRectangle"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="register_with_session"
+              c:identifier="meta_register_with_session">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="607">Registers mutter with the session manager.  Call this after completing your own
+initialization.
+
+This should be called when the session manager can safely continue to the
+next phase of startup and potentially display windows.</doc>
+      <source-position filename="../src/meta/main.h" line="39"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="remove_clutter_debug_flags"
+              c:identifier="meta_remove_clutter_debug_flags">
+      <source-position filename="../src/meta/util.h" line="215"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="debug_flags" transfer-ownership="none">
+          <type name="Clutter.DebugFlag" c:type="ClutterDebugFlag"/>
+        </parameter>
+        <parameter name="draw_flags" transfer-ownership="none">
+          <type name="Clutter.DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
+        </parameter>
+        <parameter name="pick_flags" transfer-ownership="none">
+          <type name="Clutter.PickDebugFlag" c:type="ClutterPickDebugFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_debug_paint_flag"
+              c:identifier="meta_remove_debug_paint_flag">
+      <source-position filename="../src/meta/util.h" line="223"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="flag" transfer-ownership="none">
+          <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="remove_verbose_topic"
+              c:identifier="meta_remove_verbose_topic">
+      <doc xml:space="preserve"
+           filename="../src/core/util.c"
+           line="148">Stop printing log messages for the given topic @topic.  Note
+that this method does not stack with meta_add_verbose_topic();
+i.e. if two calls to meta_add_verbose_topic() for the same
+topic are made, one call to meta_remove_verbose_topic() will
+remove it.</doc>
+      <source-position filename="../src/meta/util.h" line="139"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="topic" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="150">Topic for which logging will be stopped</doc>
+          <type name="DebugTopic" c:type="MetaDebugTopic"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="restart" c:identifier="meta_restart">
+      <doc xml:space="preserve"
+           filename="../src/core/restart.c"
+           line="99">Starts the process of restarting the compositor. Note that Mutter's
+involvement here is to make the restart visually smooth for the
+user - it cannot itself safely reexec a program that embeds libmuttter.
+So in order for this to work, the compositor must handle two
+signals -  MetaDisplay::show-restart-message, to display the
+message passed here on the Clutter stage, and ::restart to actually
+reexec the compositor.</doc>
+      <source-position filename="../src/meta/main.h" line="54"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <doc xml:space="preserve"
+               filename="../src/core/restart.c"
+               line="101">message to display to the user, or %NULL</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="run" c:identifier="meta_run" introspectable="0">
+      <doc xml:space="preserve"
+           filename="../src/core/main.c"
+           line="661">Runs mutter. Call this after completing initialization that doesn't require
+an event loop.</doc>
+      <source-position filename="../src/meta/main.h" line="36"/>
+      <return-value transfer-ownership="none">
+        <doc xml:space="preserve"
+             filename="../src/core/main.c"
+             line="667">mutter's exit status</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="set_gnome_wm_keybindings"
+              c:identifier="meta_set_gnome_wm_keybindings"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../src/x11/meta-x11-display.c"
+           line="1022">Set the value to use for the _GNOME_WM_KEYBINDINGS property. To take
+effect, it is necessary to call this function before meta_init().</doc>
+      <source-position filename="../src/meta/main.h" line="51"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="wm_keybindings" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/x11/meta-x11-display.c"
+               line="1024">value for _GNOME_WM_KEYBINDINGS</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_wm_name"
+              c:identifier="meta_set_wm_name"
+              introspectable="0">
+      <doc xml:space="preserve"
+           filename="../src/x11/meta-x11-display.c"
+           line="1007">Set the value to use for the _NET_WM_NAME property. To take effect,
+it is necessary to call this function before meta_init().</doc>
+      <source-position filename="../src/meta/main.h" line="48"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="wm_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/x11/meta-x11-display.c"
+               line="1009">value for _NET_WM_NAME</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="show_dialog"
+              c:identifier="meta_show_dialog"
+              introspectable="0">
+      <source-position filename="../src/meta/util.h" line="166"/>
+      <return-value transfer-ownership="none">
+        <type name="GLib.Pid" c:type="GPid"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="589">type of dialog</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="message" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="590">message</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="timeout" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="591">timeout</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="592">display</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="ok_text" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="593">text for Ok button</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="cancel_text" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="594">text for Cancel button</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="icon_name" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="595">icon name</doc>
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="transient_for" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="596">window XID of parent</doc>
+          <type name="gint" c:type="const int"/>
+        </parameter>
+        <parameter name="columns" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="597">columns</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </parameter>
+        <parameter name="entries" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="../src/core/util.c"
+               line="598">entries</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_init" c:identifier="meta_test_init">
+      <source-position filename="../src/meta/main.h" line="79"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="theme_get_default"
+              c:identifier="meta_theme_get_default"
+              moved-to="Theme.get_default"
+              introspectable="0">
+      <source-position filename="../src/meta/theme.h" line="34"/>
+      <return-value>
+        <type name="Theme" c:type="MetaTheme*"/>
+      </return-value>
+    </function>
+    <function name="theme_new"
+              c:identifier="meta_theme_new"
+              moved-to="Theme.new"
+              introspectable="0">
+      <source-position filename="../src/meta/theme.h" line="37"/>
+      <return-value>
+        <type name="Theme" c:type="MetaTheme*"/>
+      </return-value>
+    </function>
+    <function name="topic_real"
+              c:identifier="meta_topic_real"
+              introspectable="0">
+      <source-position filename="../src/meta/util.h" line="131"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="topic" transfer-ownership="none">
+          <type name="DebugTopic" c:type="MetaDebugTopic"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unsigned_long_equal"
+              c:identifier="meta_unsigned_long_equal">
+      <source-position filename="../src/meta/util.h" line="148"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unsigned_long_hash" c:identifier="meta_unsigned_long_hash">
+      <source-position filename="../src/meta/util.h" line="152"/>
+      <return-value transfer-ownership="none">
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v"
+                   transfer-ownership="none"
+                   nullable="1"
+                   allow-none="1">
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="verbose_real"
+              c:identifier="meta_verbose_real"
+              introspectable="0">
+      <source-position filename="../src/meta/util.h" line="49"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="warning" c:identifier="meta_warning" introspectable="0">
+      <source-position filename="../src/meta/util.h" line="57"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="const char*"/>
+        </parameter>
+        <parameter name="..." transfer-ownership="none">
+          <varargs/>
+        </parameter>
+      </parameters>
+    </function>
+    <docsection name="workspace">
+      <doc xml:space="preserve"
+           filename="../src/core/workspace.c"
+           line="22">A workspace is a set of windows which all live on the same
+screen.  (You may also see the name "desktop" around the place,
+which is the EWMH's name for the same thing.)  Only one workspace
+of a screen may be active at once; all windows on all other workspaces
+are unmapped.</doc>
+    </docsection>
+    <docsection name="x11-display">
+      <doc xml:space="preserve"
+           filename="../src/x11/meta-x11-display.c"
+           line="23">The X11 display is represented as a #MetaX11Display struct.</doc>
+    </docsection>
+    <function name="x11_error_trap_pop" c:identifier="meta_x11_error_trap_pop">
+      <source-position filename="../src/meta/meta-x11-errors.h" line="34"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x11_display" transfer-ownership="none">
+          <type name="X11Display" c:type="MetaX11Display*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="x11_error_trap_pop_with_return"
+              c:identifier="meta_x11_error_trap_pop_with_return">
+      <source-position filename="../src/meta/meta-x11-errors.h" line="38"/>
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="x11_display" transfer-ownership="none">
+          <type name="X11Display" c:type="MetaX11Display*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="x11_error_trap_push"
+              c:identifier="meta_x11_error_trap_push">
+      <source-position filename="../src/meta/meta-x11-errors.h" line="31"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x11_display" transfer-ownership="none">
+          <type name="X11Display" c:type="MetaX11Display*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="x11_init_gdk_display"
+              c:identifier="meta_x11_init_gdk_display"
+              throws="1">
+      <source-position filename="../src/meta/meta-x11-display.h" line="36"/>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]