]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/gobject/GObject-2.0.gir
gobject-introspection: rewrite gir files loading and code generation totally
[factor.git] / basis / gobject / GObject-2.0.gir
index 8534b3a39c74b0f30378d59562b9db039b3e8fb2..edfd414242ba65ff658a9f9a3cb55250621ead2a 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 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.0"
+<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">
@@ -12,128 +12,294 @@ and/or use gtk-doc annotations.  -->
   <namespace name="GObject"
              version="2.0"
              shared-library="libgobject-2.0.so.0"
-             c:prefix="g">
-    <alias name="SignalCMarshaller"
-           target="ClosureMarshal"
-           c:type="GSignalCMarshaller"/>
-    <alias name="Strv" target="none" c:type="GStrv"/>
-    <alias name="chararray" target="none" c:type="gchararray"/>
-    <glib:boxed c:type="GArray"
-                glib:name="Array"
+             c:identifier-prefixes="G"
+             c:symbol-prefixes="g">
+    <alias name="SignalCMarshaller" c:type="GSignalCMarshaller">
+      <doc xml:whitespace="preserve">This is the signature of marshaller functions, required to marshall
+arrays of parameter values to signal emissions into C language callback
+invocations. It is merely an alias to #GClosureMarshal since the #GClosure
+mechanism takes over responsibility of actual function invocation for the
+signal system.</doc>
+      <type name="ClosureMarshal" c:type="GClosureMarshal"/>
+    </alias>
+    <alias name="Strv" c:type="GStrv">
+      <doc xml:whitespace="preserve">A C representable type name for #G_TYPE_STRV.</doc>
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="Type" c:type="GType">
+      <doc xml:whitespace="preserve">A numerical value which represents the unique identifier of a registered
+type.</doc>
+      <type name="gulong" c:type="gsize"/>
+    </alias>
+    <glib:boxed glib:name="Array"
+                c:symbol-prefix="array"
                 glib:type-name="GArray"
                 glib:get-type="g_array_get_type">
     </glib:boxed>
-    <callback name="BaseFinalizeFunc"
-              c:type="GBaseFinalizeFunc"
-              doc="A callback function used by the type system to finalize those portions
+    <callback name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to finalize those portions
 of a derived types class structure that were setup from the corresponding
 GBaseInitFunc() function. Class finalization basically works the inverse
 way in which class intialization is performed.
-See GClassInitFunc() for a discussion of the class intialization process.">
+See GClassInitFunc() for a discussion of the class intialization process.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to finalize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="BaseInitFunc"
-              c:type="GBaseInitFunc"
-              doc="A callback function used by the type system to do base initialization
+    <callback name="BaseInitFunc" c:type="GBaseInitFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to do base initialization
 of the class structures of derived types. It is called as part of the
 initialization process of all derived classes and should reallocate
 or reset all dynamic class members copied over from the parent class.
 For example, class members (such as strings) that are not sufficiently
 handled by a plain memory copy of the parent class into the derived class
 have to be altered. See GClassInitFunc() for a discussion of the class
-intialization process.">
+intialization process.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to initialize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="BoxedCopyFunc"
-              c:type="GBoxedCopyFunc"
-              doc="This function is provided by the user and should produce a copy of the passed
-in boxed structure.">
+    <class name="Binding"
+           c:symbol-prefix="binding"
+           c:type="GBinding"
+           version="2.26"
+           parent="Object"
+           glib:type-name="GBinding"
+           glib:get-type="g_binding_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;GBinding&lt;/structname&gt; is an opaque structure whose members
+cannot be accessed directly.</doc>
+      <method name="get_flags"
+              c:identifier="g_binding_get_flags"
+              version="2.26">
+        <doc xml:whitespace="preserve">Retrieves the flags passed when constructing the #GBinding</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GBindingFlags used by the #GBinding</doc>
+          <type name="BindingFlags" c:type="GBindingFlags"/>
+        </return-value>
+      </method>
+      <method name="get_source"
+              c:identifier="g_binding_get_source"
+              version="2.26">
+        <doc xml:whitespace="preserve">Retrieves the #GObject instance used as the source of the binding</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the source #GObject</doc>
+          <type name="Object" c:type="GObject*"/>
+        </return-value>
+      </method>
+      <method name="get_source_property"
+              c:identifier="g_binding_get_source_property"
+              version="2.26">
+        <doc xml:whitespace="preserve">Retrieves the name of the property of #GBinding:source used as the source
+of the binding</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the source property</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_target"
+              c:identifier="g_binding_get_target"
+              version="2.26">
+        <doc xml:whitespace="preserve">Retrieves the #GObject instance used as the target of the binding</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the target #GObject</doc>
+          <type name="Object" c:type="GObject*"/>
+        </return-value>
+      </method>
+      <method name="get_target_property"
+              c:identifier="g_binding_get_target_property"
+              version="2.26">
+        <doc xml:whitespace="preserve">Retrieves the name of the property of #GBinding:target used as the target
+of the binding</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the target property</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <property name="flags"
+                version="2.26"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Flags to be used to control the #GBinding</doc>
+        <type name="BindingFlags"/>
+      </property>
+      <property name="source"
+                version="2.26"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GObject that should be used as the source of the binding</doc>
+        <type name="Object"/>
+      </property>
+      <property name="source-property"
+                version="2.26"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of the property of #GBinding:source that should be used
+as the source of the binding</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="target"
+                version="2.26"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GObject that should be used as the target of the binding</doc>
+        <type name="Object"/>
+      </property>
+      <property name="target-property"
+                version="2.26"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of the property of #GBinding:target that should be used
+as the target of the binding</doc>
+        <type name="utf8"/>
+      </property>
+    </class>
+    <bitfield name="BindingFlags"
+              version="2.26"
+              glib:type-name="GBindingFlags"
+              glib:get-type="g_binding_flags_get_type"
+              c:type="GBindingFlags">
+      <doc xml:whitespace="preserve">Flags to be passed to g_object_bind_property() or
+g_object_bind_property_full().
+This enumeration can be extended at later date.</doc>
+      <member name="default"
+              value="0"
+              c:identifier="G_BINDING_DEFAULT"
+              glib:nick="default"/>
+      <member name="bidirectional"
+              value="1"
+              c:identifier="G_BINDING_BIDIRECTIONAL"
+              glib:nick="bidirectional"/>
+      <member name="sync_create"
+              value="2"
+              c:identifier="G_BINDING_SYNC_CREATE"
+              glib:nick="sync-create"/>
+      <member name="invert_boolean"
+              value="4"
+              c:identifier="G_BINDING_INVERT_BOOLEAN"
+              glib:nick="invert-boolean"/>
+    </bitfield>
+    <callback name="BindingTransformFunc"
+              c:type="GBindingTransformFunc"
+              version="2.26">
+      <doc xml:whitespace="preserve">A function to be called to transform the source property of @source
+from @source_value into the target property of @target
+using @target_value.
+otherwise</doc>
       <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+        <doc xml:whitespace="preserve">%TRUE if the transformation was successful, and %FALSE</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="binding" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GBinding</doc>
+          <type name="Binding" c:type="GBinding*"/>
+        </parameter>
+        <parameter name="source_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value of the source property</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="target_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value of the target property</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <doc xml:whitespace="preserve">data passed to the transform function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="BoxedCopyFunc" c:type="GBoxedCopyFunc" introspectable="0">
+      <doc xml:whitespace="preserve">This function is provided by the user and should produce a copy of the passed
+in boxed structure.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The newly created copy of the boxed structure.</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The boxed structure to be copied.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="BoxedFreeFunc"
-              c:type="GBoxedFreeFunc"
-              doc="This function is provided by the user and should free the boxed
-structure passed.">
+    <callback name="BoxedFreeFunc" c:type="GBoxedFreeFunc">
+      <doc xml:whitespace="preserve">This function is provided by the user and should free the boxed
+structure passed.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The boxed structure to be freed.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <glib:boxed c:type="GByteArray"
-                glib:name="ByteArray"
+    <glib:boxed glib:name="ByteArray"
+                c:symbol-prefix="byte_array"
                 glib:type-name="GByteArray"
                 glib:get-type="g_byte_array_get_type">
     </glib:boxed>
-    <record name="CClosure"
-            c:type="GCClosure"
-            doc="A #GCClosure is a specialization of #GClosure for C function callbacks.">
+    <record name="CClosure" c:type="GCClosure">
+      <doc xml:whitespace="preserve">A #GCClosure is a specialization of #GClosure for C function callbacks.</doc>
       <field name="closure" writable="1">
         <type name="Closure" c:type="GClosure"/>
       </field>
       <field name="callback" writable="1">
-        <type name="any" c:type="gpointer"/>
+        <type name="gpointer" c:type="gpointer"/>
       </field>
     </record>
-    <callback name="Callback"
-              c:type="GCallback"
-              doc="The type used for callback functions in structure definitions and function
-signatures. This doesn&apos;t mean that all callback functions must take no
-parameters and return void. The required signature of a callback function
-is determined by the context in which is used (e.g. the signal to which it
-is connected). Use G_CALLBACK() to cast the callback function to a #GCallback.">
+    <callback name="Callback" c:type="GCallback">
+      <doc xml:whitespace="preserve">The type used for callback functions in structure definitions and function 
+signatures. This doesn't mean that all callback functions must take no 
+parameters and return void. The required signature of a callback function 
+is determined by the context in which is used (e.g. the signal to which it 
+is connected). Use G_CALLBACK() to cast the callback function to a #GCallback.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </callback>
-    <callback name="ClassFinalizeFunc"
-              c:type="GClassFinalizeFunc"
-              doc="A callback function used by the type system to finalize a class.
+    <callback name="ClassFinalizeFunc" c:type="GClassFinalizeFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to finalize a class.
 This function is rarely needed, as dynamically allocated class resources
 should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
 Also, specification of a GClassFinalizeFunc() in the #GTypeInfo
 structure of a static type is invalid, because classes of static types
 will never be finalized (they are artificially kept alive when their
-reference count drops to zero).">
+reference count drops to zero).</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to finalize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="class_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The @class_data member supplied via the #GTypeInfo structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="ClassInitFunc"
-              c:type="GClassInitFunc"
-              doc="A callback function used by the type system to initialize the class
+    <callback name="ClassInitFunc" c:type="GClassInitFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to initialize the class
 of a specific type. This function should initialize all static class
 members.
 The initialization process of a class involves:
@@ -148,10 +314,10 @@ over from the parent class.
 &lt;/para&gt;&lt;/listitem&gt;
 &lt;listitem&gt;&lt;para&gt;
 3 - Invocation of the GBaseInitFunc() initializers of all parent
-types and the class&apos; type.
+types and the class' type.
 &lt;/para&gt;&lt;/listitem&gt;
 &lt;listitem&gt;&lt;para&gt;
-4 - Invocation of the class&apos; GClassInitFunc() initializer.
+4 - Invocation of the class' GClassInitFunc() initializer.
 &lt;/para&gt;&lt;/listitem&gt;
 &lt;/itemizedlist&gt;
 Since derived classes are partially initialized through a memory copy
@@ -175,7 +341,7 @@ gchar       *dynamic_string;
 static void
 type_a_base_class_init (TypeAClass *class)
 {
-class-&gt;dynamic_string = g_strdup (&quot;some string&quot;);
+class-&gt;dynamic_string = g_strdup ("some string");
 }
 static void
 type_a_base_class_finalize (TypeAClass *class)
@@ -195,7 +361,7 @@ GString     *dynamic_gstring;
 static void
 type_b_base_class_init (TypeBClass *class)
 {
-class-&gt;dynamic_gstring = g_string_new (&quot;some other string&quot;);
+class-&gt;dynamic_gstring = g_string_new ("some other string");
 }
 static void
 type_b_base_class_finalize (TypeBClass *class)
@@ -216,7 +382,7 @@ then calling its GBaseInitFunc() type_a_base_class_init() to allocate
 its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
 type_a_class_init() to initialize its static members (static_integer).
 The first step in the initialization process of TypeBClass is then
-a plain memory copy of the contents of TypeAClass into TypeBClass and
+a plain memory copy of the contents of TypeAClass into TypeBClass and 
 zero-initialization of the remaining fields in TypeBClass.
 The dynamic members of TypeAClass within TypeBClass now need
 reinitialization which is performed by calling type_a_base_class_init()
@@ -228,334 +394,510 @@ is called to complete the initialization process with the static members
 (static_float).
 Corresponding finalization counter parts to the GBaseInitFunc() functions
 have to be provided to release allocated resources at class finalization
-time.">
+time.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to initialize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="class_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The @class_data member supplied via the #GTypeInfo structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
     <record name="Closure"
             c:type="GClosure"
-            doc="g_closure_invoke()
-g_closure_invalidate()
-A #GClosure represents a callback supplied by the programmer."
             glib:type-name="GClosure"
-            glib:get-type="g_closure_get_type">
+            glib:get-type="g_closure_get_type"
+            c:symbol-prefix="closure">
+      <doc xml:whitespace="preserve">A #GClosure represents a callback supplied by the programmer.</doc>
       <field name="ref_count" writable="1" bits="15">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="meta_marshal" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="n_guards" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="n_fnotifiers" writable="1" bits="2">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="n_inotifiers" writable="1" bits="8">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="in_inotify" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="floating" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="derivative_flag" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="in_marshal" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="is_invalid" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="marshal">
-        <type name="any" c:type="pointer"/>
+        <callback name="marshal">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="closure" transfer-ownership="none">
+              <type name="Closure" c:type="GClosure*"/>
+            </parameter>
+            <parameter name="return_value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="n_param_values" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="param_values" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="invocation_hint" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+            <parameter name="marshal_data" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
       <field name="data" writable="1">
-        <type name="any" c:type="gpointer"/>
+        <type name="gpointer" c:type="gpointer"/>
       </field>
       <field name="notifiers" writable="1">
         <type name="ClosureNotifyData" c:type="GClosureNotifyData*"/>
       </field>
-      <constructor name="new_simple" c:identifier="g_closure_new_simple">
+      <constructor name="new_object" c:identifier="g_closure_new_object">
+        <doc xml:whitespace="preserve">A variant of g_closure_new_simple() which stores @object in the
+when implementing new types of closures.</doc>
         <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GClosure</doc>
           <type name="Closure" c:type="GClosure*"/>
         </return-value>
         <parameters>
           <parameter name="sizeof_closure" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+            <doc xml:whitespace="preserve">the size of the structure to allocate, must be at least &lt;literal&gt;sizeof (GClosure)&lt;/literal&gt;</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject pointer to store in the @data field of the newly allocated #GClosure</doc>
+            <type name="Object" c:type="GObject*"/>
           </parameter>
         </parameters>
       </constructor>
-      <constructor name="new_object" c:identifier="g_closure_new_object">
+      <constructor name="new_simple" c:identifier="g_closure_new_simple">
+        <doc xml:whitespace="preserve">Allocates a struct of the given size and initializes the initial
+part as a #GClosure. This function is mainly useful when
+implementing new types of closures.
+|[
+typedef struct _MyClosure MyClosure;
+struct _MyClosure
+{
+GClosure closure;
+// extra data goes here
+};
+static void
+my_closure_finalize (gpointer  notify_data,
+GClosure *closure)
+{
+MyClosure *my_closure = (MyClosure *)closure;
+// free extra data here
+}
+MyClosure *my_closure_new (gpointer data)
+{
+GClosure *closure;
+MyClosure *my_closure;
+closure = g_closure_new_simple (sizeof (MyClosure), data);
+my_closure = (MyClosure *) closure;
+// initialize extra data here
+g_closure_add_finalize_notifier (closure, notify_data,
+my_closure_finalize);
+return my_closure;
+}
+]|</doc>
         <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GClosure</doc>
           <type name="Closure" c:type="GClosure*"/>
         </return-value>
         <parameters>
           <parameter name="sizeof_closure" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+            <doc xml:whitespace="preserve">the size of the structure to allocate, must be at least &lt;literal&gt;sizeof (GClosure)&lt;/literal&gt;</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Object" c:type="GObject*"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to store in the @data field of the newly allocated #GClosure</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </constructor>
-      <method name="ref" c:identifier="g_closure_ref">
-        <return-value transfer-ownership="full">
-          <type name="Closure" c:type="GClosure*"/>
-        </return-value>
-      </method>
-      <method name="sink" c:identifier="g_closure_sink">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unref" c:identifier="g_closure_unref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
       <method name="add_finalize_notifier"
-              c:identifier="g_closure_add_finalize_notifier">
+              c:identifier="g_closure_add_finalize_notifier"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Registers a finalization notifier which will be called when the
+reference count of @closure goes down to 0. Multiple finalization
+notifiers on a single closure are invoked in unspecified order. If
+a single call to g_closure_unref() results in the closure being
+both invalidated and finalized, then the invalidate notifiers will
+be run before the finalize notifiers.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+            <doc xml:whitespace="preserve">data to pass to @notify_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
+          <parameter name="notify_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the callback function to register</doc>
             <type name="ClosureNotify" c:type="GClosureNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="remove_finalize_notifier"
-              c:identifier="g_closure_remove_finalize_notifier">
+      <method name="add_invalidate_notifier"
+              c:identifier="g_closure_add_invalidate_notifier"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Registers an invalidation notifier which will be called when the
+notifiers are invoked before finalization notifiers, in an
+unspecified order.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+            <doc xml:whitespace="preserve">data to pass to @notify_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
+          <parameter name="notify_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the callback function to register</doc>
             <type name="ClosureNotify" c:type="GClosureNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="add_invalidate_notifier"
-              c:identifier="g_closure_add_invalidate_notifier">
+      <method name="add_marshal_guards"
+              c:identifier="g_closure_add_marshal_guards"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds a pair of notifiers which get invoked before and after the
+closure callback, respectively. This is typically used to protect
+the extra arguments for the duration of the callback. See
+g_object_watch_closure() for an example of marshal guards.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="pre_marshal_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to @pre_marshal_notify</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="pre_marshal_notify"
+                     transfer-ownership="none"
+                     closure="2">
+            <doc xml:whitespace="preserve">a function to call before the closure callback</doc>
+            <type name="ClosureNotify" c:type="GClosureNotify"/>
+          </parameter>
+          <parameter name="post_marshal_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to @post_marshal_notify</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
+          <parameter name="post_marshal_notify" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a function to call after the closure callback</doc>
             <type name="ClosureNotify" c:type="GClosureNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="remove_invalidate_notifier"
-              c:identifier="g_closure_remove_invalidate_notifier">
+      <method name="invalidate" c:identifier="g_closure_invalidate">
+        <doc xml:whitespace="preserve">Sets a flag on the closure to indicate that its calling
+environment has become invalid, and thus causes any future
+invocations of g_closure_invoke() on this @closure to be
+ignored. Also, invalidation notifiers installed on the closure will
+be called at this point. Note that unless you are holding a
+reference to the closure yourself, the invalidation notifiers may
+unref the closure and cause it to be destroyed, so if you need to
+access the closure after calling g_closure_invalidate(), make sure
+that you've previously called g_closure_ref().
+Note that g_closure_invalidate() will also be called when the
+reference count of a closure drops to zero (unless it has already
+been invalidated before).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="invoke" c:identifier="g_closure_invoke">
+        <doc xml:whitespace="preserve">Invokes the closure, i.e. executes the callback represented by the @closure.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="return_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue to store the return value. May be %NULL if the callback of @closure doesn't return a value.</doc>
+            <type name="Value" c:type="GValue*"/>
           </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
+          <parameter name="n_param_values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the @param_values array</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="param_values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GValue&lt;!-- --&gt;s holding the arguments on which to invoke the callback of @closure</doc>
+            <type name="Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="invocation_hint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a context-dependent invocation hint</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="add_marshal_guards"
-              c:identifier="g_closure_add_marshal_guards">
+      <method name="ref" c:identifier="g_closure_ref">
+        <doc xml:whitespace="preserve">Increments the reference count on a closure to force it staying
+alive while the caller holds a pointer to it.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The @closure passed in, for convenience</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </return-value>
+      </method>
+      <method name="remove_finalize_notifier"
+              c:identifier="g_closure_remove_finalize_notifier"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Removes a finalization notifier.
+Notice that notifiers are automatically removed after they are run.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="pre_marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="notify_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data which was passed to g_closure_add_finalize_notifier() when registering @notify_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="pre_marshal_notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="3">
+          <parameter name="notify_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the callback function to remove</doc>
             <type name="ClosureNotify" c:type="GClosureNotify"/>
           </parameter>
-          <parameter name="post_marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+        </parameters>
+      </method>
+      <method name="remove_invalidate_notifier"
+              c:identifier="g_closure_remove_invalidate_notifier"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Removes an invalidation notifier.
+Notice that notifiers are automatically removed after they are run.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="notify_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data which was passed to g_closure_add_invalidate_notifier() when registering @notify_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="post_marshal_notify"
-                     transfer-ownership="none"
-                     scope="call">
+          <parameter name="notify_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the callback function to remove</doc>
             <type name="ClosureNotify" c:type="GClosureNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_marshal" c:identifier="g_closure_set_marshal">
+      <method name="set_marshal"
+              c:identifier="g_closure_set_marshal"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets the marshaller of @closure. The &lt;literal&gt;marshal_data&lt;/literal&gt;
+of @marshal provides a way for a meta marshaller to provide additional
+information to the marshaller. (See g_closure_set_meta_marshal().) For
+GObject's C predefined marshallers (the g_cclosure_marshal_*()
+functions), what it provides is a callback function to use instead of</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="marshal" transfer-ownership="none" scope="call">
+          <parameter name="marshal" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosureMarshal function</doc>
             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_meta_marshal"
-              c:identifier="g_closure_set_meta_marshal">
+              c:identifier="g_closure_set_meta_marshal"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets the meta marshaller of @closure.  A meta marshaller wraps
+fashion. The most common use of this facility is for C callbacks.
+The same marshallers (generated by &lt;link
+linkend="glib-genmarshal"&gt;glib-genmarshal&lt;/link&gt;) are used
+everywhere, but the way that we get the callback function
+differs. In most cases we want to use @closure-&gt;callback, but in
+other cases we want to use some different technique to retrieve the
+callback function.
+For example, class closures for signals (see
+g_signal_type_cclosure_new()) retrieve the callback function from a
+fixed offset in the class structure.  The meta marshaller retrieves
+the right callback and passes it to the marshaller as the</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+            <doc xml:whitespace="preserve">context-dependent data to pass to @meta_marshal</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="meta_marshal"
-                     transfer-ownership="none"
-                     scope="call">
+          <parameter name="meta_marshal" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosureMarshal function</doc>
             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
           </parameter>
         </parameters>
       </method>
-      <method name="invalidate" c:identifier="g_closure_invalidate">
+      <method name="sink" c:identifier="g_closure_sink">
+        <doc xml:whitespace="preserve">Takes over the initial ownership of a closure.  Each closure is
+initially created in a &lt;firstterm&gt;floating&lt;/firstterm&gt; state, which
+means that the initial reference count is not owned by any caller.
+g_closure_sink() checks to see if the object is still floating, and
+if so, unsets the floating state and decreases the reference
+count. If the closure is not floating, g_closure_sink() does
+nothing. The reason for the existance of the floating state is to
+prevent cumbersome code sequences like:
+|[
+closure = g_cclosure_new (cb_func, cb_data);
+g_source_set_closure (source, closure);
+g_closure_unref (closure); // XXX GObject doesn't really need this
+]|
+Because g_source_set_closure() (and similar functions) take ownership of the
+initial reference count, if it is unowned, we instead can write:
+|[
+g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
+]|
+Generally, this function is used together with g_closure_ref(). Ane example
+of storing a closure for later notification looks like:
+|[
+static GClosure *notify_closure = NULL;
+void
+foo_notify_set_closure (GClosure *closure)
+{
+if (notify_closure)
+g_closure_unref (notify_closure);
+notify_closure = closure;
+if (notify_closure)
+{
+g_closure_ref (notify_closure);
+g_closure_sink (notify_closure);
+}
+}
+]|
+Because g_closure_sink() may decrement the reference count of a closure
+(if it hasn't been called on @closure yet) just like g_closure_unref(),
+g_closure_ref() should be called prior to this function.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </method>
-      <method name="invoke" c:identifier="g_closure_invoke">
+      <method name="unref" c:identifier="g_closure_unref">
+        <doc xml:whitespace="preserve">Decrements the reference count of a closure after it was previously
+incremented by the same caller. If no other callers are using the
+closure, then the closure will be destroyed and freed.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
-        <parameters>
-          <parameter name="return_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="n_param_values" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="param_values" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="invocation_hint" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
       </method>
     </record>
-    <callback name="ClosureMarshal"
-              c:type="GClosureMarshal"
-              doc="callback of @closure doesn&apos;t return a value.
-which to invoke the callback of @closure
-to g_closure_invoke()
-see g_closure_set_marshal() and g_closure_set_meta_marshal()
-The type used for marshaller functions.">
+    <callback name="ClosureMarshal" c:type="GClosureMarshal">
+      <doc xml:whitespace="preserve">The type used for marshaller functions.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue to store the return value. May be %NULL if the callback of @closure doesn't return a value.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="n_param_values" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the length of the @param_values array</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of #GValue&lt;!-- --&gt;s holding the arguments on which to invoke the callback of @closure</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="invocation_hint" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="marshal_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal()</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="ClosureNotify"
-              c:type="GClosureNotify"
-              doc="The type used for the various notification callbacks which can be registered
-on closures.">
+    <callback name="ClosureNotify" c:type="GClosureNotify">
+      <doc xml:whitespace="preserve">The type used for the various notification callbacks which can be registered
+on closures.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">data specified when registering the notification callback</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure on which the notification is emitted</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
       </parameters>
     </callback>
     <record name="ClosureNotifyData" c:type="GClosureNotifyData">
       <field name="data" writable="1">
-        <type name="any" c:type="gpointer"/>
+        <type name="gpointer" c:type="gpointer"/>
       </field>
       <field name="notify" writable="1">
         <type name="ClosureNotify" c:type="GClosureNotify"/>
       </field>
     </record>
-    <bitfield name="ConnectFlags"
-              doc="default handler of the signal.
-calling the handler.
-The connection flags are used to specify the behaviour of a signal&apos;s
-connection."
-              c:type="GConnectFlags">
+    <bitfield name="ConnectFlags" c:type="GConnectFlags">
+      <doc xml:whitespace="preserve">The connection flags are used to specify the behaviour of a signal's 
+connection.</doc>
       <member name="after" value="1" c:identifier="G_CONNECT_AFTER"/>
       <member name="swapped" value="2" c:identifier="G_CONNECT_SWAPPED"/>
     </bitfield>
-    <glib:boxed c:type="GDate"
-                glib:name="Date"
+    <glib:boxed glib:name="Date"
+                c:symbol-prefix="date"
                 glib:type-name="GDate"
                 glib:get-type="g_date_get_type">
     </glib:boxed>
-    <record name="EnumClass"
-            c:type="GEnumClass"
-            doc="individual values.
-The class of an enumeration type holds information about its
-possible values.">
+    <glib:boxed glib:name="DateTime"
+                c:symbol-prefix="date_time"
+                glib:type-name="GDateTime"
+                glib:get-type="g_date_time_get_type">
+    </glib:boxed>
+    <record name="EnumClass" c:type="GEnumClass">
+      <doc xml:whitespace="preserve">The class of an enumeration type holds information about its 
+possible values.</doc>
       <field name="g_type_class" writable="1">
         <type name="TypeClass" c:type="GTypeClass"/>
       </field>
       <field name="minimum" writable="1">
-        <type name="int" c:type="gint"/>
+        <type name="gint" c:type="gint"/>
       </field>
       <field name="maximum" writable="1">
-        <type name="int" c:type="gint"/>
+        <type name="gint" c:type="gint"/>
       </field>
       <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="values" writable="1">
         <type name="EnumValue" c:type="GEnumValue*"/>
       </field>
     </record>
-    <record name="EnumValue"
-            c:type="GEnumValue"
-            doc="A structure which contains a single enum value, its name, and its
-nickname.">
+    <record name="EnumValue" c:type="GEnumValue">
+      <doc xml:whitespace="preserve">A structure which contains a single enum value, its name, and its
+nickname.</doc>
       <field name="value" writable="1">
-        <type name="int" c:type="gint"/>
+        <type name="gint" c:type="gint"/>
       </field>
       <field name="value_name" writable="1">
         <type name="utf8" c:type="gchar*"/>
@@ -564,30 +906,32 @@ nickname.">
         <type name="utf8" c:type="gchar*"/>
       </field>
     </record>
-    <record name="FlagsClass"
-            c:type="GFlagsClass"
-            doc="individual values.
-The class of a flags type holds information about its
-possible values.">
+    <glib:boxed glib:name="Error"
+                c:symbol-prefix="error"
+                glib:type-name="GError"
+                glib:get-type="g_error_get_type">
+    </glib:boxed>
+    <record name="FlagsClass" c:type="GFlagsClass">
+      <doc xml:whitespace="preserve">The class of a flags type holds information about its 
+possible values.</doc>
       <field name="g_type_class" writable="1">
         <type name="TypeClass" c:type="GTypeClass"/>
       </field>
       <field name="mask" writable="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="values" writable="1">
         <type name="FlagsValue" c:type="GFlagsValue*"/>
       </field>
     </record>
-    <record name="FlagsValue"
-            c:type="GFlagsValue"
-            doc="A structure which contains a single flags value, its name, and its
-nickname.">
+    <record name="FlagsValue" c:type="GFlagsValue">
+      <doc xml:whitespace="preserve">A structure which contains a single flags value, its name, and its
+nickname.</doc>
       <field name="value" writable="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="value_name" writable="1">
         <type name="utf8" c:type="gchar*"/>
@@ -596,13 +940,13 @@ nickname.">
         <type name="utf8" c:type="gchar*"/>
       </field>
     </record>
-    <glib:boxed c:type="GHashTable"
-                glib:name="HashTable"
+    <glib:boxed glib:name="HashTable"
+                c:symbol-prefix="hash_table"
                 glib:type-name="GHashTable"
                 glib:get-type="g_hash_table_get_type">
     </glib:boxed>
-    <glib:boxed c:type="GIOChannel"
-                glib:name="IOChannel"
+    <glib:boxed glib:name="IOChannel"
+                c:symbol-prefix="io_channel"
                 glib:type-name="GIOChannel"
                 glib:get-type="g_io_channel_get_type">
     </glib:boxed>
@@ -621,642 +965,623 @@ nickname.">
               glib:nick="nval"/>
     </bitfield>
     <class name="InitiallyUnowned"
-           c:type="GInitiallyUnowned"
-           doc="All the fields in the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; structure
-are private to the #GInitiallyUnowned implementation and should never be
-accessed directly."
+           c:symbol-prefix="object"
            parent="Object"
            abstract="1"
            glib:type-name="GInitiallyUnowned"
            glib:get-type="g_initially_unowned_get_type"
            glib:type-struct="InitiallyUnownedClass">
-      <field name="g_type_instance" writable="1">
-        <type name="TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="qdata" writable="1">
-        <type name="GLib.Data" c:type="GData*"/>
-      </field>
-    </class>
-    <record name="InitiallyUnownedClass"
-            c:type="GInitiallyUnownedClass"
-            glib:is-gtype-struct-for="InitiallyUnowned"
-            doc="The class structure for the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; type.">
-      <field name="g_type_class">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="construct_properties">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="constructor">
-        <callback name="constructor" c:type="constructor">
-          <return-value transfer-ownership="full">
-            <type name="Object" c:type="GObject*"/>
-          </return-value>
-          <parameters>
-            <parameter name="type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-            <parameter name="n_construct_properties" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="construct_properties" transfer-ownership="none">
-              <type name="ObjectConstructParam"
-                    c:type="GObjectConstructParam*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_property">
-        <callback name="set_property" c:type="set_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_property">
-        <callback name="get_property" c:type="get_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispose">
-        <callback name="dispose" c:type="dispose">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="finalize">
-        <callback name="finalize" c:type="finalize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispatch_properties_changed">
-        <callback name="dispatch_properties_changed"
-                  c:type="dispatch_properties_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="n_pspecs" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspecs" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="notify">
-        <callback name="notify" c:type="notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="constructed">
-        <callback name="constructed" c:type="constructed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="flags">
-        <type name="size_t" c:type="gsize"/>
-      </field>
-      <field name="pdummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="6">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="InstanceInitFunc"
-              c:type="GInstanceInitFunc"
-              doc="A callback function used by the type system to initialize a new
-instance of a type. This function initializes all instance members and
-allocates any resources required by it.
-Initialization of a derived instance involves calling all its parent
-types instance initializers, so the class member of the instance
-is altered during its initialization to always point to the class that
-belongs to the type the current initializer was introduced for.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="InterfaceFinalizeFunc"
-              c:type="GInterfaceFinalizeFunc"
-              doc="A callback function used by the type system to finalize an interface.
-This function should destroy any internal data and release any resources
-allocated by the corresponding GInterfaceInitFunc() function.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="iface_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="InterfaceInfo"
-            c:type="GInterfaceInfo"
-            doc="A structure that provides information to the type system which is
-used specifically for managing interface types.">
-      <field name="interface_init" writable="1">
-        <type name="InterfaceInitFunc" c:type="GInterfaceInitFunc"/>
-      </field>
-      <field name="interface_finalize" writable="1">
-        <type name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc"/>
-      </field>
-      <field name="interface_data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </record>
-    <callback name="InterfaceInitFunc"
-              c:type="GInterfaceInitFunc"
-              doc="A callback function used by the type system to initialize a new
-interface.  This function should initialize all internal data and
-allocate any resources required by the interface.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="iface_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="Object"
-           c:type="GObject"
-           doc="All the fields in the &lt;structname&gt;GObject&lt;/structname&gt; structure are private
-to the #GObject implementation and should never be accessed directly."
-           abstract="1"
-           glib:type-name="GObject"
-           glib:get-type="intern"
-           glib:type-struct="ObjectClass">
-      <virtual-method name="set_property">
+      <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; structure 
+are private to the #GInitiallyUnowned implementation and should never be 
+accessed directly.</doc>
+      <function name="bind_property"
+                c:identifier="g_object_bind_property"
+                version="2.26">
+        <doc xml:whitespace="preserve">Creates a binding between @source_property on @source and @target_property
+on @target. Whenever the @source_property is changed the @target_property is
+updated using the same value. For instance:
+|[
+g_object_bind_property (action, "active", widget, "sensitive", 0);
+]|
+Will result in the "sensitive" property of the widget #GObject instance to be
+updated with the same value of the "active" property of the action #GObject
+instance.
+If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
+if @target_property on @target changes then the @source_property on @source
+will be updated as well.
+The binding will automatically be removed when either the @source or the
+#GBinding instance.
+A #GObject can have multiple bindings.
+binding between the two #GObject instances. The binding is released
+whenever the #GBinding reference count reaches zero.</doc>
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
+          <type name="Binding" c:type="GBinding*"/>
         </return-value>
         <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter name="source_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @source to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the target #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="target_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @target to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
+            <type name="BindingFlags" c:type="GBindingFlags"/>
           </parameter>
         </parameters>
-      </virtual-method>
-      <virtual-method name="get_property">
+      </function>
+      <function name="bind_property_full"
+                c:identifier="g_object_bind_property_full"
+                shadowed-by="bind_property_with_closures"
+                version="2.26">
+        <doc xml:whitespace="preserve">Complete version of g_object_bind_property().
+Creates a binding between @source_property on @source and @target_property
+on @target, allowing you to set the transformation functions to be used by
+the binding.
+If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
+if @target_property on @target changes then the @source_property on @source
+will be updated as well. The @transform_from function is only used in case
+of bidirectional bindings, otherwise it will be ignored
+The binding will automatically be removed when either the @source or the
+#GBinding instance.
+A #GObject can have multiple bindings.
+&lt;note&gt;The same @user_data parameter will be used for both @transform_to
+and @transform_from transformation functions; the @notify function will
+be called once, when the binding is removed. If you need different data
+for each transformation function, please use
+g_object_bind_property_with_closures() instead.&lt;/note&gt;
+binding between the two #GObject instances. The binding is released
+whenever the #GBinding reference count reaches zero.</doc>
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
+          <type name="Binding" c:type="GBinding*"/>
         </return-value>
         <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter name="source_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @source to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the target #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="target_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @target to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
+            <type name="BindingFlags" c:type="GBindingFlags"/>
+          </parameter>
+          <parameter name="transform_to"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="notified">
+            <doc xml:whitespace="preserve">the transformation function from the @source to the @target, or %NULL to use the default</doc>
+            <type name="BindingTransformFunc" c:type="GBindingTransformFunc"/>
+          </parameter>
+          <parameter name="transform_from"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="notified"
+                     closure="7"
+                     destroy="8">
+            <doc xml:whitespace="preserve">the transformation function from the @target to the @source, or %NULL to use the default</doc>
+            <type name="BindingTransformFunc" c:type="GBindingTransformFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">custom data to be passed to the transformation functions, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to be called when disposing the binding, to free the resources used by the transformation functions</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
           </parameter>
         </parameters>
-      </virtual-method>
-      <virtual-method name="dispose">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="finalize">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="dispatch_properties_changed">
+      </function>
+      <function name="bind_property_with_closures"
+                c:identifier="g_object_bind_property_with_closures"
+                shadows="bind_property_full"
+                version="2.26">
+        <doc xml:whitespace="preserve">Creates a binding between @source_property on @source and @target_property
+on @target, allowing you to set the transformation functions to be used by
+the binding.
+This function is the language bindings friendly version of
+g_object_bind_property_full(), using #GClosure&lt;!-- --&gt;s instead of
+function pointers.
+binding between the two #GObject instances. The binding is released
+whenever the #GBinding reference count reaches zero.</doc>
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
+          <type name="Binding" c:type="GBinding*"/>
         </return-value>
         <parameters>
-          <parameter name="n_pspecs" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="pspecs" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec**"/>
+          <parameter name="source_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @source to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the target #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="target_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property on @target to bind</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
+            <type name="BindingFlags" c:type="GBindingFlags"/>
+          </parameter>
+          <parameter name="transform_to" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosure wrapping the transformation function from the @source to the @target, or %NULL to use the default</doc>
+            <type name="Closure" c:type="GClosure*"/>
+          </parameter>
+          <parameter name="transform_from" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosure wrapping the transformation function from the @target to the @source, or %NULL to use the default</doc>
+            <type name="Closure" c:type="GClosure*"/>
           </parameter>
         </parameters>
-      </virtual-method>
-      <virtual-method name="notify">
+      </function>
+      <function name="compat_control" c:identifier="g_object_compat_control">
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <type name="gulong" c:type="gsize"/>
         </return-value>
         <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="what" transfer-ownership="none">
+            <type name="gulong" c:type="gsize"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
-      </virtual-method>
-      <virtual-method name="constructed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="set_property" c:identifier="g_object_set_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      </function>
+      <function name="connect"
+                c:identifier="g_object_connect"
+                introspectable="0">
+        <doc xml:whitespace="preserve">A convenience function to connect multiple signals at once.
+The signal specs expected by this function have the form
+"modifier::signal_name", where modifier can be one of the following:
+&lt;variablelist&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;signal&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, 0)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;object_signal&lt;/term&gt;
+&lt;term&gt;object-signal&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_object (..., 0)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;swapped_signal&lt;/term&gt;
+&lt;term&gt;swapped-signal&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;swapped_object_signal&lt;/term&gt;
+&lt;term&gt;swapped-object-signal&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_SWAPPED)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;signal_after&lt;/term&gt;
+&lt;term&gt;signal-after&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_AFTER)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;object_signal_after&lt;/term&gt;
+&lt;term&gt;object-signal-after&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_AFTER)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;swapped_signal_after&lt;/term&gt;
+&lt;term&gt;swapped-signal-after&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;swapped_object_signal_after&lt;/term&gt;
+&lt;term&gt;swapped-object-signal-after&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_SWAPPED | G_CONNECT_AFTER)&lt;/literal&gt;
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+|[
+menu-&gt;toplevel = g_object_connect (g_object_new (GTK_TYPE_WINDOW,
+"type", GTK_WINDOW_POPUP,
+"child", menu,
+NULL),
+"signal::event", gtk_menu_window_event, menu,
+"signal::size_request", gtk_menu_window_size_request, menu,
+"signal::destroy", gtk_widget_destroyed, &amp;amp;menu-&amp;gt;toplevel,
+NULL);
+]|</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">@object</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="property_name" transfer-ownership="none">
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="signal_spec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the spec for the first signal</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
           </parameter>
         </parameters>
-      </method>
-      <method name="get_property" c:identifier="g_object_get_property">
+      </function>
+      <function name="disconnect"
+                c:identifier="g_object_disconnect"
+                introspectable="0">
+        <doc xml:whitespace="preserve">A convenience function to disconnect multiple signals at once.
+The signal specs expected by this function have the form
+"any_signal", which means to disconnect any signal with matching
+callback and data, or "any_signal::signal_name", which only
+disconnects the signal named "signal_name".</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="property_name" transfer-ownership="none">
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="signal_spec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the spec for the first signal</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
           </parameter>
         </parameters>
-      </method>
-      <method name="freeze_notify" c:identifier="g_object_freeze_notify">
+      </function>
+      <function name="get" c:identifier="g_object_get" introspectable="0">
+        <doc xml:whitespace="preserve">Gets properties of an object.
+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().
+&lt;example&gt;
+&lt;title&gt;Using g_object_get(&lt;!-- --&gt;)&lt;/title&gt;
+An example of using g_object_get() to get the contents
+of three properties - one of type #G_TYPE_INT,
+one of type #G_TYPE_STRING, and one of type #G_TYPE_OBJECT:
+&lt;programlisting&gt;
+gint intval;
+gchar *strval;
+GObject *objval;
+g_object_get (my_object,
+"int-property", &amp;intval,
+"str-property", &amp;strval,
+"obj-property", &amp;objval,
+NULL);
+// Do something with intval, strval, objval
+g_free (strval);
+g_object_unref (objval);
+&lt;/programlisting&gt;
+&lt;/example&gt;</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
-      </method>
-      <method name="notify" c:identifier="g_object_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to get</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="interface_find_property"
+                c:identifier="g_object_interface_find_property"
+                version="2.4"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Find the #GParamSpec with the given name for an
+interface. Generally, the interface vtable passed in as @g_iface
+will be the default vtable from g_type_default_interface_ref(), or,
+if you know the interface has already been loaded,
+g_type_default_interface_peek().
+name @property_name, or %NULL if no such property exists.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the #GParamSpec for the property of the interface with the</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
         <parameters>
+          <parameter name="g_iface" transfer-ownership="none">
+            <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
           <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of a property to lookup.</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="thaw_notify" c:identifier="g_object_thaw_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="weak_ref" c:identifier="g_object_weak_ref">
+      </function>
+      <function name="interface_install_property"
+                c:identifier="g_object_interface_install_property"
+                version="2.4">
+        <doc xml:whitespace="preserve">Add a property to an interface; this is only useful for interfaces
+that are added to GObject-derived types. Adding a property to an
+interface forces all objects classes with that interface to have a
+compatible property. The compatible property could be a newly
+created #GParamSpec, but normally
+g_object_class_override_property() will be used so that the object
+class only needs to provide an implementation and inherits the
+property description, default value, bounds, and so forth from the
+interface property.
+This function is meant to be called from the interface's default
+vtable initialization function (the @class_init member of
+#GTypeInfo.) It must not be called after after @class_init has
+been called for any object types implementing this interface.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="WeakNotify" c:type="GWeakNotify"/>
+          <parameter name="g_iface" transfer-ownership="none">
+            <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface.</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec for the new property</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="weak_unref" c:identifier="g_object_weak_unref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      </function>
+      <function name="interface_list_properties"
+                c:identifier="g_object_interface_list_properties"
+                version="2.4"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Lists the properties of an interface.Generally, the interface
+vtable passed in as @g_iface will be the default vtable from
+g_type_default_interface_ref(), or, if you know the interface has
+already been loaded, g_type_default_interface_peek().
+structures. The paramspecs are owned by GLib, but the
+array should be freed with g_free() when you are done with
+it.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a pointer to an array of pointers to #GParamSpec</doc>
+          <type name="ParamSpec" c:type="GParamSpec**"/>
         </return-value>
         <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="WeakNotify" c:type="GWeakNotify"/>
+          <parameter name="g_iface" transfer-ownership="none">
+            <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="n_properties_p" transfer-ownership="none">
+            <doc xml:whitespace="preserve">location to store number of properties returned.</doc>
+            <type name="guint" c:type="guint*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="add_weak_pointer" c:identifier="g_object_add_weak_pointer">
+      </function>
+      <function name="is_floating"
+                c:identifier="g_object_is_floating"
+                version="2.10">
+        <doc xml:whitespace="preserve">Checks wether @object has a &lt;link linkend="floating-ref"&gt;floating&lt;/link&gt;
+reference.</doc>
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <doc xml:whitespace="preserve">%TRUE if @object has a floating reference</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
-          <parameter name="weak_pointer_location"
-                     direction="inout"
-                     transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="remove_weak_pointer"
-              c:identifier="g_object_remove_weak_pointer">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      </function>
+      <function name="new" c:identifier="g_object_new" introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a new instance of @object_type</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="weak_pointer_location"
-                     direction="inout"
-                     transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
+          <parameter name="object_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="add_toggle_ref" c:identifier="g_object_add_toggle_ref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="ToggleNotify" c:type="GToggleNotify"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_toggle_ref"
-              c:identifier="g_object_remove_toggle_ref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="ToggleNotify" c:type="GToggleNotify"/>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
           </parameter>
         </parameters>
-      </method>
-      <method name="get_qdata" c:identifier="g_object_get_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+      </function>
+      <function name="new_valist"
+                c:identifier="g_object_new_valist"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a new instance of @object_type</doc>
+          <type name="Object" c:type="GObject*"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="object_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="set_qdata" c:identifier="g_object_set_qdata">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="var_args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
+            <type name="va_list" c:type="va_list"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="set_qdata_full" c:identifier="g_object_set_qdata_full">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      </function>
+      <function name="newv" c:identifier="g_object_newv" introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
+Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
+which are not explicitly specified are set to their default values.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a new instance of @object_type</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="object_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="n_parameters" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the @parameters array</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          <parameter name="parameters" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GParameter</doc>
+            <type name="Parameter" c:type="GParameter*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="steal_qdata" c:identifier="g_object_steal_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+      </function>
+      <function name="ref" c:identifier="g_object_ref" introspectable="0">
+        <doc xml:whitespace="preserve">Increases the reference count of @object.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the same @object</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="get_data" c:identifier="g_object_get_data">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+      </function>
+      <function name="ref_sink"
+                c:identifier="g_object_ref_sink"
+                version="2.10"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Increase the reference count of @object, and possibly remove the
+&lt;link linkend="floating-ref"&gt;floating&lt;/link&gt; reference, if @object
+has a floating reference.
+In other words, if the object is floating, then this call "assumes
+ownership" of the floating reference, converting it to a normal
+reference by clearing the floating flag while leaving the reference
+count unchanged.  If the object is not floating, then this call
+adds a new normal reference increasing the reference count by one.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">@object</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="set_data" c:identifier="g_object_set_data">
+      </function>
+      <function name="set" c:identifier="g_object_set" introspectable="0">
+        <doc xml:whitespace="preserve">Sets properties on an object.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="set_data_full" c:identifier="g_object_set_data_full">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to set</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
           </parameter>
         </parameters>
-      </method>
-      <method name="steal_data" c:identifier="g_object_steal_data">
+      </function>
+      <function name="type_init" c:identifier="g_object_type_init">
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="none" c:type="void"/>
         </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="watch_closure" c:identifier="g_object_watch_closure">
+      </function>
+      <function name="unref" c:identifier="g_object_unref">
+        <doc xml:whitespace="preserve">Decreases the reference count of @object. When its reference count
+drops to 0, the object is finalized (i.e. its memory is freed).</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="closure" transfer-ownership="none">
-            <type name="Closure" c:type="GClosure*"/>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="force_floating" c:identifier="g_object_force_floating">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="run_dispose" c:identifier="g_object_run_dispose">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
+      </function>
       <field name="g_type_instance" writable="1">
         <type name="TypeInstance" c:type="GTypeInstance"/>
       </field>
       <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
+        <type name="guint" c:type="guint"/>
       </field>
       <field name="qdata" writable="1">
         <type name="GLib.Data" c:type="GData*"/>
       </field>
     </class>
-    <record name="ObjectClass"
-            c:type="GObjectClass"
-            glib:is-gtype-struct-for="Object"
-            doc="complete the object initialization after all the construction properties are
-set. The first thing a @constructor implementation must do is chain up to the
-needed, e.g. to handle construct properties, or to implement singletons.
-overridden for every type with properties. Implementations of @set_property
-don&apos;t need to emit property change notification explicitly, this is handled
-by the type system.
-overridden for every type with properties.
-objects, but keep the instance otherwise intact, so that client method
-invocations still work. It may be run multiple times (due to reference
-loops). Before returning, @dispose should chain up to the @dispose method
-of the parent class.
-the instance begun in @dispose and chain up to the @finalize method of the
-parent class.
-of properties. Overriding @dispatch_properties_changed should be rarely
-needed.
-final step of the object creation process.  At the point of the call, all
-construction properties have been set on the object.  The purpose of this
-call is to allow for object initialisation steps that can only be performed
-after construction properties have been set.  @constructed implementors
-should chain up to the @constructed call of their parent class to allow it
-to complete its initialisation.
-The class structure for the &lt;structname&gt;GObject&lt;/structname&gt; type.
-&lt;example&gt;
-&lt;title&gt;Implementing singletons using a constructor&lt;/title&gt;
-&lt;programlisting&gt;
-static MySingleton *the_singleton = NULL;
-static GObject*
-my_singleton_constructor (GType                  type,
-guint                  n_construct_params,
-GObjectConstructParam *construct_params)
-{
-GObject *object;
-if (!the_singleton)
-{
-object = G_OBJECT_CLASS (parent_class)-&gt;constructor (type,
-n_construct_params,
-construct_params);
-the_singleton = MY_SINGLETON (object);
-}
-else
-object = g_object_ref (G_OBJECT (the_singleton));
-return object;
-}
-&lt;/programlisting&gt;&lt;/example&gt;">
+    <record name="InitiallyUnownedClass"
+            c:type="GInitiallyUnownedClass"
+            disguised="1"
+            glib:is-gtype-struct-for="InitiallyUnowned">
+      <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; type.</doc>
       <field name="g_type_class">
         <type name="TypeClass" c:type="GTypeClass"/>
       </field>
       <field name="construct_properties">
-        <type name="GLib.SList" c:type="GSList*"/>
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
       </field>
-      <field name="constructor">
-        <callback name="constructor" c:type="constructor">
-          <return-value transfer-ownership="full">
+      <field name="constructor" introspectable="0">
+        <callback name="constructor" introspectable="0">
+          <return-value>
             <type name="Object" c:type="GObject*"/>
           </return-value>
           <parameters>
@@ -1264,7 +1589,7 @@ return object;
               <type name="GType" c:type="GType"/>
             </parameter>
             <parameter name="n_construct_properties" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
+              <type name="guint" c:type="guint"/>
             </parameter>
             <parameter name="construct_properties" transfer-ownership="none">
               <type name="ObjectConstructParam"
@@ -1274,7 +1599,7 @@ return object;
         </callback>
       </field>
       <field name="set_property">
-        <callback name="set_property" c:type="set_property">
+        <callback name="set_property">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1283,7 +1608,7 @@ return object;
               <type name="Object" c:type="GObject*"/>
             </parameter>
             <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
+              <type name="guint" c:type="guint"/>
             </parameter>
             <parameter name="value" transfer-ownership="none">
               <type name="Value" c:type="GValue*"/>
@@ -1295,7 +1620,7 @@ return object;
         </callback>
       </field>
       <field name="get_property">
-        <callback name="get_property" c:type="get_property">
+        <callback name="get_property">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1304,7 +1629,7 @@ return object;
               <type name="Object" c:type="GObject*"/>
             </parameter>
             <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
+              <type name="guint" c:type="guint"/>
             </parameter>
             <parameter name="value" transfer-ownership="none">
               <type name="Value" c:type="GValue*"/>
@@ -1316,7 +1641,7 @@ return object;
         </callback>
       </field>
       <field name="dispose">
-        <callback name="dispose" c:type="dispose">
+        <callback name="dispose">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1328,7 +1653,7 @@ return object;
         </callback>
       </field>
       <field name="finalize">
-        <callback name="finalize" c:type="finalize">
+        <callback name="finalize">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1340,8 +1665,7 @@ return object;
         </callback>
       </field>
       <field name="dispatch_properties_changed">
-        <callback name="dispatch_properties_changed"
-                  c:type="dispatch_properties_changed">
+        <callback name="dispatch_properties_changed">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1350,7 +1674,7 @@ return object;
               <type name="Object" c:type="GObject*"/>
             </parameter>
             <parameter name="n_pspecs" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
+              <type name="guint" c:type="guint"/>
             </parameter>
             <parameter name="pspecs" transfer-ownership="none">
               <type name="ParamSpec" c:type="GParamSpec**"/>
@@ -1359,7 +1683,7 @@ return object;
         </callback>
       </field>
       <field name="notify">
-        <callback name="notify" c:type="notify">
+        <callback name="notify">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1374,7 +1698,7 @@ return object;
         </callback>
       </field>
       <field name="constructed">
-        <callback name="constructed" c:type="constructed">
+        <callback name="constructed">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
@@ -1386,2604 +1710,4740 @@ return object;
         </callback>
       </field>
       <field name="flags">
-        <type name="size_t" c:type="gsize"/>
+        <type name="gulong" c:type="gsize"/>
       </field>
       <field name="pdummy">
         <array zero-terminated="0" c:type="gpointer" fixed-size="6">
-          <type name="any"/>
+          <type name="gpointer" c:type="gpointer"/>
         </array>
       </field>
-      <method name="install_property"
-              c:identifier="g_object_class_install_property">
+    </record>
+    <callback name="InstanceInitFunc" c:type="GInstanceInitFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to initialize a new
+instance of a type. This function initializes all instance members and
+allocates any resources required by it.
+Initialization of a derived instance involves calling all its parent
+types instance initializers, so the class member of the instance
+is altered during its initialization to always point to the class that
+belongs to the type the current initializer was introduced for.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="instance" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The instance to initialize.</doc>
+          <type name="TypeInstance" c:type="GTypeInstance*"/>
+        </parameter>
+        <parameter name="g_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The class of the type the instance is created for.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to finalize an interface.
+This function should destroy any internal data and release any resources
+allocated by the corresponding GInterfaceInitFunc() function.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="g_iface" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The interface structure to finalize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="iface_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The @interface_data supplied via the #GInterfaceInfo structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="InterfaceInfo" c:type="GInterfaceInfo">
+      <doc xml:whitespace="preserve">A structure that provides information to the type system which is
+used specifically for managing interface types.</doc>
+      <field name="interface_init" writable="1">
+        <type name="InterfaceInitFunc" c:type="GInterfaceInitFunc"/>
+      </field>
+      <field name="interface_finalize" writable="1">
+        <type name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc"/>
+      </field>
+      <field name="interface_data" writable="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </record>
+    <callback name="InterfaceInitFunc" c:type="GInterfaceInitFunc">
+      <doc xml:whitespace="preserve">A callback function used by the type system to initialize a new
+interface.  This function should initialize all internal data and
+allocate any resources required by the interface.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="g_iface" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The interface structure to initialize.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="iface_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The @interface_data supplied via the #GInterfaceInfo structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Object"
+           c:symbol-prefix="object"
+           parent="Object"
+           abstract="1"
+           glib:type-name="GObject"
+           glib:get-type="intern"
+           glib:type-struct="ObjectClass">
+      <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;GObject&lt;/structname&gt; structure are private 
+to the #GObject implementation and should never be accessed directly.</doc>
+      <virtual-method name="constructed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="dispatch_properties_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_pspecs" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="pspecs" transfer-ownership="none">
+            <type name="ParamSpec" c:type="GParamSpec**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="dispose">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="finalize">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_property">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="Value" c:type="GValue*"/>
           </parameter>
           <parameter name="pspec" transfer-ownership="none">
             <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="find_property" c:identifier="g_object_class_find_property">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      </virtual-method>
+      <virtual-method name="notify" invoker="notify">
+        <doc xml:whitespace="preserve">Emits a "notify" signal for the property @property_name on @object.
+When possible, eg. when signaling a property change from within the class
+that registered the property, you should use g_object_notify_by_pspec()
+instead.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="list_properties"
-              c:identifier="g_object_class_list_properties">
-        <return-value transfer-ownership="full">
-          <array length="1" c:type="GParamSpec**">
-            <type name="ParamSpec"/>
-          </array>
+      </virtual-method>
+      <virtual-method name="set_property">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="n_properties"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
+          <parameter name="property_id" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
-      </method>
-      <method name="override_property"
-              c:identifier="g_object_class_override_property">
+      </virtual-method>
+      <method name="add_toggle_ref"
+              c:identifier="g_object_add_toggle_ref"
+              version="2.8"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Increases the reference count of the object by one and sets a
+callback to be called when all other references to the object are
+dropped, or when this is already the last reference to the object
+and another reference is established.
+This functionality is intended for binding @object to a proxy
+object managed by another memory manager. This is done with two
+g_object_add_toggle_ref() and a reverse reference to the proxy
+object which is either a strong reference or weak reference.
+The setup is that when there are no other references to @object,
+only a weak reference is held in the reverse direction from @object
+to the proxy object, but when there are other references held to
+when the reference from @object to the proxy object should be
+&lt;firstterm&gt;toggled&lt;/firstterm&gt; from strong to weak (@is_last_ref
+true) or weak to strong (@is_last_ref false).
+Since a (normal) reference must be held to the object before
+calling g_object_toggle_ref(), the initial state of the reverse
+link is always strong.
+Multiple toggle references may be added to the same gobject,
+however if there are multiple toggle references to an object, none
+of them will ever be notified until all but one are removed.  For
+this reason, you should only ever use a toggle reference if there
+is important state in the proxy object.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="notify" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">a function to call when this reference is the last reference to the object, or is no longer the last reference.</doc>
+            <type name="ToggleNotify" c:type="GToggleNotify"/>
           </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to @notify</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="ObjectConstructParam"
-            c:type="GObjectConstructParam"
-            doc="The &lt;structname&gt;GObjectConstructParam&lt;/structname&gt; struct is an auxiliary
-structure used to hand #GParamSpec/#GValue pairs to the @constructor of
-a #GObjectClass.">
-      <field name="pspec" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="Value" c:type="GValue*"/>
-      </field>
-    </record>
-    <callback name="ObjectFinalizeFunc"
-              c:type="GObjectFinalizeFunc"
-              doc="The type of the @finalize function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ObjectGetPropertyFunc"
-              c:type="GObjectGetPropertyFunc"
-              doc="g_object_class_install_property().
-The type of the @get_property function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ObjectSetPropertyFunc"
-              c:type="GObjectSetPropertyFunc"
-              doc="g_object_class_install_property().
-The type of the @set_property function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="PARAM_MASK" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_READWRITE" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_STATIC_STRINGS" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_USER_SHIFT" value="8">
-      <type name="int"/>
-    </constant>
-    <bitfield name="ParamFlags"
-              doc="strict validation is not required
-parameter is guaranteed to remain valid and
-unmodified for the lifetime of the parameter.
-Since 2.8
-parameter is guaranteed to remain valid and
-unmmodified for the lifetime of the parameter.
-Since 2.8
-parameter is guaranteed to remain valid and
-unmodified for the lifetime of the parameter.
-Since 2.8
-Through the #GParamFlags flag values, certain aspects of parameters
-can be configured."
-              c:type="GParamFlags">
-      <member name="readable" value="1" c:identifier="G_PARAM_READABLE"/>
-      <member name="writable" value="2" c:identifier="G_PARAM_WRITABLE"/>
-      <member name="construct" value="4" c:identifier="G_PARAM_CONSTRUCT"/>
-      <member name="construct_only"
-              value="8"
-              c:identifier="G_PARAM_CONSTRUCT_ONLY"/>
-      <member name="lax_validation"
-              value="16"
-              c:identifier="G_PARAM_LAX_VALIDATION"/>
-      <member name="static_name"
-              value="32"
-              c:identifier="G_PARAM_STATIC_NAME"/>
-      <member name="private" value="32" c:identifier="G_PARAM_PRIVATE"/>
-      <member name="static_nick"
-              value="64"
-              c:identifier="G_PARAM_STATIC_NICK"/>
-      <member name="static_blurb"
-              value="128"
-              c:identifier="G_PARAM_STATIC_BLURB"/>
-    </bitfield>
-    <record name="ParamSpec"
-            c:type="GParamSpec"
-            doc="All other fields of the &lt;structname&gt;GParamSpec&lt;/structname&gt; struct are private and
-should not be used directly.">
-      <field name="g_type_instance" writable="1">
-        <type name="TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="ParamFlags" c:type="GParamFlags"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="owner_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="_nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="_blurb" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="qdata" writable="1">
-        <type name="GLib.Data" c:type="GData*"/>
-      </field>
-      <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="param_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <method name="ref" c:identifier="g_param_spec_ref">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="add_weak_pointer" c:identifier="g_object_add_weak_pointer">
+        <doc xml:whitespace="preserve">Adds a weak reference from weak_pointer to @object to indicate that
+the pointer located at @weak_pointer_location is only valid during
+the lifetime of @object. When the @object is finalized,</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="weak_pointer_location"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The memory address of a pointer.</doc>
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="unref" c:identifier="g_param_spec_unref">
+      <method name="force_floating"
+              c:identifier="g_object_force_floating"
+              version="2.10">
+        <doc xml:whitespace="preserve">This function is intended for #GObject implementations to re-enforce a
+&lt;link linkend="floating-ref"&gt;floating&lt;/link&gt; object reference.
+Doing this is seldomly required, all
+#GInitiallyUnowned&lt;!-- --&gt;s are created with a floating reference which
+usually just needs to be sunken by calling g_object_ref_sink().</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </method>
-      <method name="sink" c:identifier="g_param_spec_sink">
+      <method name="freeze_notify" c:identifier="g_object_freeze_notify">
+        <doc xml:whitespace="preserve">Increases the freeze count on @object. If the freeze count is
+non-zero, the emission of "notify" signals on @object is
+stopped. The signals are queued until the freeze count is decreased
+to zero.
+This is necessary for accessors that modify multiple properties to prevent
+premature notification while the object is still being modified.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
       </method>
-      <method name="ref_sink" c:identifier="g_param_spec_ref_sink">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="get_data"
+              c:identifier="g_object_get_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets a named field from the objects table of associations (see g_object_set_data()).</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the data if found, or %NULL if no such data exists.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the key for that association</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="get_qdata" c:identifier="g_param_spec_get_qdata">
+      <method name="get_property" c:identifier="g_object_get_property">
+        <doc xml:whitespace="preserve">Gets a property of an object.
+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 g_object_get_property() is really intended for language
+bindings, g_object_get() is much more convenient for C programming.</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to get</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the property value</doc>
+            <type name="Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_qdata"
+              c:identifier="g_object_get_qdata"
+              introspectable="0">
+        <doc xml:whitespace="preserve">This function gets back user data pointers stored via
+g_object_set_qdata().</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">The user data pointer set, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
           <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
             <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_qdata" c:identifier="g_param_spec_set_qdata">
+      <method name="get_valist"
+              c:identifier="g_object_get_valist"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets properties of an object.
+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().
+See g_object_get().</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to get</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="var_args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
+            <type name="va_list" c:type="va_list"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_qdata_full" c:identifier="g_param_spec_set_qdata_full">
+      <method name="notify" c:identifier="g_object_notify">
+        <doc xml:whitespace="preserve">Emits a "notify" signal for the property @property_name on @object.
+When possible, eg. when signaling a property change from within the class
+that registered the property, you should use g_object_notify_by_pspec()
+instead.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property installed on the class of @object.</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="steal_qdata" c:identifier="g_param_spec_steal_qdata">
+      <method name="notify_by_pspec"
+              c:identifier="g_object_notify_by_pspec"
+              version="2.26">
+        <doc xml:whitespace="preserve">Emits a "notify" signal for the property specified by @pspec on @object.
+This function omits the property name lookup, hence it is faster than
+g_object_notify().
+One way to avoid using g_object_notify() from within the
+class that registered the properties, and using g_object_notify_by_pspec()
+instead, is to store the GParamSpec used with
+g_object_class_install_property() inside a static array, e.g.:
+|[
+enum
+{
+PROP_0,
+PROP_FOO,
+PROP_LAST
+};
+static GParamSpec *properties[PROP_LAST];
+static void
+my_object_class_init (MyObjectClass *klass)
+{
+properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
+0, 100,
+50,
+G_PARAM_READWRITE);
+g_object_class_install_property (gobject_class,
+PROP_FOO,
+properties[PROP_FOO]);
+}
+]|
+and then notify a change on the "foo" property with:
+|[
+g_object_notify_by_pspec (self, properties[PROP_FOO]);
+]|</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec of a property installed on the class of @object.</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_redirect_target"
-              c:identifier="g_param_spec_get_redirect_target">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="remove_toggle_ref"
+              c:identifier="g_object_remove_toggle_ref"
+              version="2.8"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Removes a reference added with g_object_add_toggle_ref(). The
+reference count of the object is decreased by one.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="notify" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">a function to call when this reference is the last reference to the object, or is no longer the last reference.</doc>
+            <type name="ToggleNotify" c:type="GToggleNotify"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to @notify</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="get_name" c:identifier="g_param_spec_get_name">
+      <method name="remove_weak_pointer"
+              c:identifier="g_object_remove_weak_pointer">
+        <doc xml:whitespace="preserve">Removes a weak reference from @object that was previously added
+using g_object_add_weak_pointer(). The @weak_pointer_location has
+to match the one used with g_object_add_weak_pointer().</doc>
         <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="weak_pointer_location"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The memory address of a pointer.</doc>
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="get_nick" c:identifier="g_param_spec_get_nick">
+      <method name="run_dispose" c:identifier="g_object_run_dispose">
+        <doc xml:whitespace="preserve">Releases all references to other objects. This can be used to break
+reference cycles.
+This functions should only be called from object system implementations.</doc>
         <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
+          <type name="none" c:type="void"/>
         </return-value>
       </method>
-      <method name="get_blurb" c:identifier="g_param_spec_get_blurb">
+      <method name="set_data" c:identifier="g_object_set_data">
+        <doc xml:whitespace="preserve">Each object carries around a table of associations from
+strings to pointers.  This function lets you set an association.
+If the object already had an association with that name,
+the old association will be destroyed.</doc>
         <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the key</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to associate with that key</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
       </method>
-    </record>
-    <record name="ParamSpecBoolean"
-            c:type="GParamSpecBoolean"
-            doc="A #GParamSpec derived structure that contains the meta data for boolean properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-    </record>
-    <record name="ParamSpecBoxed"
-            c:type="GParamSpecBoxed"
-            doc="A #GParamSpec derived structure that contains the meta data for boxed properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecChar"
-            c:type="GParamSpecChar"
-            doc="A #GParamSpec derived structure that contains the meta data for character properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <method name="" c:identifier="g_param_spec_char">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="set_data_full" c:identifier="g_object_set_data_full">
+        <doc xml:whitespace="preserve">Like g_object_set_data() except it adds notification
+for when the association is destroyed, either by setting it
+to a different value or when the object is destroyed.
+Note that the @destroy callback is not called if @data is %NULL.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="nick" transfer-ownership="none">
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the key</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to associate with that key</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="minimum" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to call when the association is destroyed</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_property" c:identifier="g_object_set_property">
+        <doc xml:whitespace="preserve">Sets a property on an object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to set</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="maximum" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value</doc>
+            <type name="Value" c:type="GValue*"/>
           </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
+        </parameters>
+      </method>
+      <method name="set_qdata" c:identifier="g_object_set_qdata">
+        <doc xml:whitespace="preserve">This sets an opaque, named pointer on an object.
+The name is specified through a #GQuark (retrived e.g. via
+g_quark_from_static_string()), and the pointer
+can be gotten back from the @object with g_object_get_qdata()
+until the @object is finalized.
+Setting a previously set user data pointer, overrides (frees)
+the old pointer set, using #NULL as pointer essentially
+removes the data stored.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An opaque user data pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="ParamSpecClass"
-            c:type="GParamSpecClass"
-            doc="up to the finalize method of the parent class.
-(recommended, the default is g_value_reset()), see
-g_param_value_set_default().
-specifications set out by this type (optional), see
-g_param_value_set_validate().
-(recommended, the default is memcmp()), see g_param_values_cmp().
-The class structure for the &lt;structname&gt;GParamSpec&lt;/structname&gt; type.
-Normally, &lt;structname&gt;GParamSpec&lt;/structname&gt; classes are filled by
-g_param_type_register_static().">
-      <field name="g_type_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="finalize">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_set_default">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_validate">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="values_cmp">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="dummy" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ParamSpecDouble"
-            c:type="GParamSpecDouble"
-            doc="by g_param_values_cmp(); the default value is 1e-90.
-A #GParamSpec derived structure that contains the meta data for double properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="epsilon" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-    </record>
-    <record name="ParamSpecEnum"
-            c:type="GParamSpecEnum"
-            doc="A #GParamSpec derived structure that contains the meta data for enum
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="enum_class" writable="1">
-        <type name="EnumClass" c:type="GEnumClass*"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <record name="ParamSpecFlags"
-            c:type="GParamSpecFlags"
-            doc="A #GParamSpec derived structure that contains the meta data for flags
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="flags_class" writable="1">
-        <type name="FlagsClass" c:type="GFlagsClass*"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="ParamSpecFloat"
-            c:type="GParamSpecFloat"
-            doc="by g_param_values_cmp(); the default value is 1e-30.
-A #GParamSpec derived structure that contains the meta data for float properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="epsilon" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-    </record>
-    <record name="ParamSpecGType"
-            c:type="GParamSpecGType"
-            doc="A #GParamSpec derived structure that contains the meta data for #GType properties."
-            version="2.10">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="is_a_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-    </record>
-    <record name="ParamSpecInt"
-            c:type="GParamSpecInt"
-            doc="A #GParamSpec derived structure that contains the meta data for integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <record name="ParamSpecInt64"
-            c:type="GParamSpecInt64"
-            doc="A #GParamSpec derived structure that contains the meta data for 64bit integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-    </record>
-    <record name="ParamSpecLong"
-            c:type="GParamSpecLong"
-            doc="A #GParamSpec derived structure that contains the meta data for long integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-    </record>
-    <record name="ParamSpecObject"
-            c:type="GParamSpecObject"
-            doc="A #GParamSpec derived structure that contains the meta data for object properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecOverride"
-            c:type="GParamSpecOverride"
-            doc="This is a type of #GParamSpec type that simply redirects operations to
-another paramspec.  All operations other than getting or
-setting the value are redirected, including accessing the nick and
-blurb, validating a value, and so forth. See
-g_param_spec_get_redirect_target() for retrieving the overidden
-property. #GParamSpecOverride is used in implementing
-g_object_class_override_property(), and will not be directly useful
-unless you are implementing a new base type similar to GObject."
-            version="2.4">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="overridden" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </field>
-    </record>
-    <record name="ParamSpecParam"
-            c:type="GParamSpecParam"
-            doc="A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecPointer"
-            c:type="GParamSpecPointer"
-            doc="A #GParamSpec derived structure that contains the meta data for pointer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecPool" c:type="GParamSpecPool">
-      <constructor name="new" c:identifier="g_param_spec_pool_new">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpecPool" c:type="GParamSpecPool*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type_prefixing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="insert" c:identifier="g_param_spec_pool_insert">
+      <method name="set_qdata_full" c:identifier="g_object_set_qdata_full">
+        <doc xml:whitespace="preserve">This function works like g_object_set_qdata(), but in addition,
+a void (*destroy) (gpointer) function may be specified which is
+called with @data as argument when the @object is finalized, or
+the data is being overwritten by a call to g_object_set_qdata()
+with the same @quark.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An opaque user data pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">Function to invoke with @data as argument, when @data needs to be freed</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="remove" c:identifier="g_param_spec_pool_remove">
+      <method name="set_valist"
+              c:identifier="g_object_set_valist"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets properties on an object.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="var_args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
+            <type name="va_list" c:type="va_list"/>
           </parameter>
         </parameters>
       </method>
-      <method name="lookup" c:identifier="g_param_spec_pool_lookup">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="steal_data"
+              c:identifier="g_object_steal_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Remove a specified datum from the object's data associations,
+without invoking the association's destroy handler.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the data if found, or %NULL if no such data exists.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="param_name" transfer-ownership="none">
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the key</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="walk_ancestors" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
         </parameters>
       </method>
-      <method name="list_owned" c:identifier="g_param_spec_pool_list_owned">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
+      <method name="steal_qdata"
+              c:identifier="g_object_steal_qdata"
+              introspectable="0">
+        <doc xml:whitespace="preserve">This function gets back user data pointers stored via
+g_object_set_qdata() and removes the @data from object
+without invoking its destroy() function (if any was
+set).
+Usually, calling this function is only required to update
+user data pointers with a destroy notifier, for example:
+|[
+void
+object_add_to_user_list (GObject     *object,
+const gchar *new_string)
+{
+// the quark, naming the object data
+GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
+// retrive the old string list
+GList *list = g_object_steal_qdata (object, quark_string_list);
+// prepend new string
+list = g_list_prepend (list, g_strdup (new_string));
+// this changed 'list', so we need to set it again
+g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
+}
+static void
+free_string_list (gpointer data)
+{
+GList *node, *list = data;
+for (node = list; node; node = node-&gt;next)
+g_free (node-&gt;data);
+g_list_free (list);
+}
+]|
+Using g_object_get_qdata() in the above example, instead of
+g_object_steal_qdata() would have left the destroy function set,
+and thus the partial string list would have been freed upon
+g_object_set_qdata_full().</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">The user data pointer set, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
         </parameters>
       </method>
-      <method name="list" c:identifier="g_param_spec_pool_list">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec**"/>
+      <method name="thaw_notify" c:identifier="g_object_thaw_notify">
+        <doc xml:whitespace="preserve">Reverts the effect of a previous call to
+g_object_freeze_notify(). The freeze count is decreased on @object
+and when it reaches zero, all queued "notify" signals are emitted.
+It is an error to call this function when the freeze count is zero.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="watch_closure" c:identifier="g_object_watch_closure">
+        <doc xml:whitespace="preserve">This function essentially limits the life time of the @closure to
+the life time of the object. That is, when the object is finalized,
+the @closure is invalidated by calling g_closure_invalidate() on
+it, in order to prevent invocations of the closure with a finalized
+(nonexisting) object. Also, g_object_ref() and g_object_unref() are
+added as marshal guards to the @closure, to ensure that an extra
+reference count is held on @object during invocation of the
+use this @object as closure data.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="n_pspecs_p"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GClosure to watch</doc>
+            <type name="Closure" c:type="GClosure*"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="ParamSpecString"
-            c:type="GParamSpecString"
-            doc="A #GParamSpec derived structure that contains the meta data for string
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="cset_first" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="cset_nth" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="substitutor" writable="1">
-        <type name="int8" c:type="gchar"/>
-      </field>
-      <field name="null_fold_if_empty" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="ensure_non_null" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="ParamSpecTypeInfo"
-            c:type="GParamSpecTypeInfo"
-            doc="(recommended, the default is g_value_reset()), see
-g_param_value_set_default().
-specifications set out by @pspec (optional), see
-g_param_value_set_validate().
-(recommended, the default is memcmp()), see g_param_values_cmp().
-This structure is used to provide the type system with the information
-required to initialize and destruct (finalize) a parameter&apos;s class and
-instances thereof.
-The initialized structure is passed to the g_param_type_register_static()
-The type system will perform a deep copy of this structure, so its memory
-does not need to be persistent across invocation of
-g_param_type_register_static().">
-      <field name="instance_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="n_preallocs" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="instance_init">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="finalize">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_set_default">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_validate">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="values_cmp">
-        <type name="any" c:type="pointer"/>
-      </field>
-    </record>
-    <record name="ParamSpecUChar"
-            c:type="GParamSpecUChar"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned character properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <method name="" c:identifier="g_param_spec_uchar">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="weak_ref"
+              c:identifier="g_object_weak_ref"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds a weak reference callback to an object. Weak references are
+used for notification when an object is finalized. They are called
+"weak references" because they allow you to safely hold a pointer
+to an object without calling g_object_ref() (g_object_ref() adds a
+strong reference, that is, forces the object to stay alive).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="nick" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="minimum" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
+          <parameter name="notify" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">callback to invoke before the object is freed</doc>
+            <type name="WeakNotify" c:type="GWeakNotify"/>
           </parameter>
-          <parameter name="maximum" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">extra data to pass to notify</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
+        </parameters>
+      </method>
+      <method name="weak_unref"
+              c:identifier="g_object_weak_unref"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Removes a weak reference callback to an object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="notify" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">callback to search for</doc>
+            <type name="WeakNotify" c:type="GWeakNotify"/>
           </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to search for</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="ParamSpecUInt"
-            c:type="GParamSpecUInt"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
+      <field name="g_type_instance" writable="1">
+        <type name="TypeInstance" c:type="GTypeInstance"/>
       </field>
-      <field name="minimum" writable="1">
-        <type name="uint" c:type="guint"/>
+      <field name="ref_count" writable="1">
+        <type name="guint" c:type="guint"/>
       </field>
-      <field name="maximum" writable="1">
-        <type name="uint" c:type="guint"/>
+      <field name="qdata" writable="1">
+        <type name="GLib.Data" c:type="GData*"/>
       </field>
-      <field name="default_value" writable="1">
-        <type name="uint" c:type="guint"/>
+    </class>
+    <record name="ObjectClass"
+            c:type="GObjectClass"
+            glib:is-gtype-struct-for="Object">
+      <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GObject&lt;/structname&gt; type.
+&lt;example&gt;
+&lt;title&gt;Implementing singletons using a constructor&lt;/title&gt;
+&lt;programlisting&gt;
+static MySingleton *the_singleton = NULL;
+static GObject*
+my_singleton_constructor (GType                  type,
+guint                  n_construct_params,
+GObjectConstructParam *construct_params)
+{
+GObject *object;
+if (!the_singleton)
+{
+object = G_OBJECT_CLASS (parent_class)-&gt;constructor (type,
+n_construct_params,
+construct_params);
+the_singleton = MY_SINGLETON (object);
+}
+else
+object = g_object_ref (G_OBJECT (the_singleton));
+return object;
+}
+&lt;/programlisting&gt;&lt;/example&gt;</doc>
+      <field name="g_type_class">
+        <type name="TypeClass" c:type="GTypeClass"/>
       </field>
-    </record>
-    <record name="ParamSpecUInt64"
-            c:type="GParamSpecUInt64"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
+      <field name="construct_properties">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
       </field>
-      <field name="minimum" writable="1">
-        <type name="uint64" c:type="guint64"/>
+      <field name="constructor" introspectable="0">
+        <callback name="constructor" introspectable="0">
+          <return-value>
+            <type name="Object" c:type="GObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+            <parameter name="n_construct_properties" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="construct_properties" transfer-ownership="none">
+              <type name="ObjectConstructParam"
+                    c:type="GObjectConstructParam*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="maximum" writable="1">
-        <type name="uint64" c:type="guint64"/>
+      <field name="set_property">
+        <callback name="set_property">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+            <parameter name="property_id" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="default_value" writable="1">
-        <type name="uint64" c:type="guint64"/>
+      <field name="get_property">
+        <callback name="get_property">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+            <parameter name="property_id" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-    </record>
-    <record name="ParamSpecULong"
-            c:type="GParamSpecULong"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
+      <field name="dispose">
+        <callback name="dispose">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="minimum" writable="1">
-        <type name="ulong" c:type="gulong"/>
+      <field name="finalize">
+        <callback name="finalize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="maximum" writable="1">
-        <type name="ulong" c:type="gulong"/>
+      <field name="dispatch_properties_changed">
+        <callback name="dispatch_properties_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+            <parameter name="n_pspecs" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="pspecs" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec**"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="default_value" writable="1">
-        <type name="ulong" c:type="gulong"/>
+      <field name="notify">
+        <callback name="notify">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-    </record>
-    <record name="ParamSpecUnichar"
-            c:type="GParamSpecUnichar"
-            doc="A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
+      <field name="constructed">
+        <callback name="constructed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
       </field>
-      <field name="default_value" writable="1">
-        <type name="GLib.unichar" c:type="gunichar"/>
+      <field name="flags">
+        <type name="gulong" c:type="gsize"/>
       </field>
-      <method name="" c:identifier="g_param_spec_unichar">
-        <return-value transfer-ownership="full">
+      <field name="pdummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="6">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <method name="find_property"
+              c:identifier="g_object_class_find_property"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Looks up the #GParamSpec for a property of a class.
+doesn't have a property of that name</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the #GParamSpec for the property, or %NULL if the class</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
         <parameters>
-          <parameter name="nick" transfer-ownership="none">
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to look up</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+        </parameters>
+      </method>
+      <method name="install_properties"
+              c:identifier="g_object_class_install_properties"
+              version="2.26">
+        <doc xml:whitespace="preserve">Installs new properties from an array of #GParamSpec&lt;!-- --&gt;s. This is
+usually done in the class initializer.
+The property id of each property is the index of each #GParamSpec in
+the @pspecs array.
+The property id of 0 is treated specially by #GObject and it should not
+be used to store a #GParamSpec.
+This function should be used if you plan to use a static array of
+#GParamSpec&lt;!-- --&gt;s and g_object_notify_pspec(). For instance, this
+class initialization:
+|[
+enum {
+PROP_0, PROP_FOO, PROP_BAR, N_PROPERTIES
+};
+static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
+static void
+my_object_class_init (MyObjectClass *klass)
+{
+GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+obj_properties[PROP_FOO] =
+g_param_spec_int ("foo", "Foo", "Foo",
+-1, G_MAXINT,
+0,
+G_PARAM_READWRITE);
+obj_properties[PROP_BAR] =
+g_param_spec_string ("bar", "Bar", "Bar",
+NULL,
+G_PARAM_READWRITE);
+gobject_class-&gt;set_property = my_object_set_property;
+gobject_class-&gt;get_property = my_object_get_property;
+g_object_class_install_properties (gobject_class,
+N_PROPERTIES,
+obj_properties);
+}
+]|
+allows calling g_object_notify_by_pspec() to notify of property changes:
+|[
+void
+my_object_set_foo (MyObject *self, gint foo)
+{
+if (self-&gt;foo != foo)
+{
+self-&gt;foo = foo;
+g_object_notify_by_pspec (G_OBJECT (self), obj_properties[PROP_FOO]);
+}
+}
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_pspecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the #GParamSpec&lt;!-- --&gt;s array</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="GLib.unichar" c:type="gunichar"/>
+          <parameter name="pspecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec&lt;!-- --&gt;s array defining the new properties</doc>
+            <array length="0" c:type="GParamSpec**">
+              <type name="ParamSpec"/>
+            </array>
           </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
+        </parameters>
+      </method>
+      <method name="install_property"
+              c:identifier="g_object_class_install_property">
+        <doc xml:whitespace="preserve">Installs a new property. This is usually done in the class initializer.
+Note that it is possible to redefine a property in a derived class,
+by installing a property with the same name. This can be useful at times,
+e.g. to change the range of allowed values or the default value.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id for the new property</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec for the new property</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_properties"
+              c:identifier="g_object_class_list_properties">
+        <doc xml:whitespace="preserve">Get an array of #GParamSpec* for all properties of a class.
+#GParamSpec* which should be freed after use</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">an array of</doc>
+          <array length="0" c:type="GParamSpec**">
+            <type name="ParamSpec"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="n_properties"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the length of the returned array</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="override_property"
+              c:identifier="g_object_class_override_property"
+              version="2.4">
+        <doc xml:whitespace="preserve">Registers @property_id as referring to a property with the
+name @name in a parent class or in an interface implemented
+by @oclass. This allows this class to &lt;firstterm&gt;override&lt;/firstterm&gt;
+a property implementation in a parent class or to provide
+the implementation of a property from an interface.
+&lt;note&gt;
+Internally, overriding is implemented by creating a property of type
+#GParamSpecOverride; generally operations that query the properties of
+the object class, such as g_object_class_find_property() or
+g_object_class_list_properties() will return the overridden
+property. However, in one case, the @construct_properties argument of
+the @constructor virtual function, the #GParamSpecOverride is passed
+instead, so that the @param_id field of the #GParamSpec will be
+correct.  For virtually all uses, this makes no difference. If you
+need to get the overridden property, you can call
+g_param_spec_get_redirect_target().
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new property ID</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property registered in a parent class or in an interface of this class.</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
     </record>
-    <record name="ParamSpecValueArray"
-            c:type="GParamSpecValueArray"
-            doc="A #GParamSpec derived structure that contains the meta data for #GValueArray properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="element_spec" writable="1">
+    <record name="ObjectConstructParam" c:type="GObjectConstructParam">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;GObjectConstructParam&lt;/structname&gt; struct is an auxiliary 
+structure used to hand #GParamSpec/#GValue pairs to the @constructor of
+a #GObjectClass.</doc>
+      <field name="pspec" writable="1">
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </field>
-      <field name="fixed_n_elements" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="Parameter"
-            c:type="GParameter"
-            doc="The &lt;structname&gt;GParameter&lt;/structname&gt; struct is an auxiliary structure used
-to hand parameter name/value pairs to g_object_newv().">
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
       <field name="value" writable="1">
-        <type name="Value" c:type="GValue"/>
+        <type name="Value" c:type="GValue*"/>
       </field>
     </record>
-    <glib:boxed c:type="GPtrArray"
-                glib:name="PtrArray"
-                glib:type-name="GPtrArray"
-                glib:get-type="g_ptr_array_get_type">
-    </glib:boxed>
-    <glib:boxed c:type="GRegex"
-                glib:name="Regex"
-                glib:type-name="GRegex"
-                glib:get-type="g_regex_get_type">
-    </glib:boxed>
-    <constant name="SIGNAL_FLAGS_MASK" value="127">
-      <type name="int"/>
-    </constant>
-    <constant name="SIGNAL_MATCH_MASK" value="63">
-      <type name="int"/>
-    </constant>
-    <callback name="SignalAccumulator"
-              c:type="GSignalAccumulator"
-              doc="is the return value of the current signal emission.
-The signal accumulator is a special callback function that can be used
-to collect return values of the various callbacks that are called
-during a signal emission. The signal accumulator is specified at signal
-creation time, if it is left %NULL, no accumulation of callback return
-values is performed. The return value of signal emissions is then the
-value returned by the last callback.
-should be aborted. Returning %FALSE means to abort the
-current emission and %TRUE is returned for continuation.">
+    <callback name="ObjectFinalizeFunc" c:type="GObjectFinalizeFunc">
+      <doc xml:whitespace="preserve">The type of the @finalize function of #GObjectClass.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="ihint" transfer-ownership="none">
-          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
-        </parameter>
-        <parameter name="return_accu" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="handler_return" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GObject being finalized</doc>
+          <type name="Object" c:type="GObject*"/>
         </parameter>
       </parameters>
     </callback>
-    <callback name="SignalEmissionHook"
-              c:type="GSignalEmissionHook"
-              doc="the instance on which the signal was emitted.
-parameters of the emission.
-A simple function pointer to get invoked when the signal is emitted. This
-allows you to tie a hook to the signal type, so that it will trap all
-emissions of that signal, from any object.
-You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag.
-hook is disconnected (and destroyed).">
+    <callback name="ObjectGetPropertyFunc" c:type="GObjectGetPropertyFunc">
+      <doc xml:whitespace="preserve">The type of the @get_property function of #GObjectClass.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="ihint" transfer-ownership="none">
-          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="Object" c:type="GObject*"/>
         </parameter>
-        <parameter name="n_param_values" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+        <parameter name="property_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the numeric id under which the property was registered with g_object_class_install_property().</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-        <parameter name="param_values" transfer-ownership="none">
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue to return the property value in</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+        <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GParamSpec describing the property</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
       </parameters>
     </callback>
-    <bitfield name="SignalFlags"
-              doc="emission for this very object will not be emitted recursively,
-but instead cause the first emission to be restarted.
-upon handler connections and emissions.
-objects from user code via g_signal_emit() and friends, without
-the need of being embedded into extra code that performs pre or
-post emission adjustments on the object. They can also be thought
-of as object methods which can be called generically by
-third-party code.
-The signal flags are used to specify a signal&apos;s behaviour, the overall
-signal description outlines how especially the RUN flags control the
-stages of a signal emission."
-              c:type="GSignalFlags">
-      <member name="run_first" value="1" c:identifier="G_SIGNAL_RUN_FIRST"/>
-      <member name="run_last" value="2" c:identifier="G_SIGNAL_RUN_LAST"/>
-      <member name="run_cleanup"
-              value="4"
-              c:identifier="G_SIGNAL_RUN_CLEANUP"/>
-      <member name="no_recurse" value="8" c:identifier="G_SIGNAL_NO_RECURSE"/>
-      <member name="detailed" value="16" c:identifier="G_SIGNAL_DETAILED"/>
-      <member name="action" value="32" c:identifier="G_SIGNAL_ACTION"/>
-      <member name="no_hooks" value="64" c:identifier="G_SIGNAL_NO_HOOKS"/>
-    </bitfield>
-    <record name="SignalInvocationHint"
-            c:type="GSignalInvocationHint"
-            doc="field will contain one of %G_SIGNAL_RUN_FIRST,
-%G_SIGNAL_RUN_LAST or %G_SIGNAL_RUN_CLEANUP.
-The #GSignalInvocationHint structure is used to pass on additional information
-to callbacks during a signal emission.">
-      <field name="signal_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="detail" writable="1">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </field>
-      <field name="run_type" writable="1">
-        <type name="SignalFlags" c:type="GSignalFlags"/>
-      </field>
-    </record>
-    <bitfield name="SignalMatchType"
-              doc="The match types specify what g_signal_handlers_block_matched(),
-g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
-match signals by."
-              c:type="GSignalMatchType">
-      <member name="id" value="1" c:identifier="G_SIGNAL_MATCH_ID"/>
-      <member name="detail" value="2" c:identifier="G_SIGNAL_MATCH_DETAIL"/>
-      <member name="closure" value="4" c:identifier="G_SIGNAL_MATCH_CLOSURE"/>
-      <member name="func" value="8" c:identifier="G_SIGNAL_MATCH_FUNC"/>
-      <member name="data" value="16" c:identifier="G_SIGNAL_MATCH_DATA"/>
-      <member name="unblocked"
-              value="32"
-              c:identifier="G_SIGNAL_MATCH_UNBLOCKED"/>
-    </bitfield>
-    <record name="SignalQuery"
-            c:type="GSignalQuery"
-            doc="signal to be queried was unknown.
-effective callback signature is:
-&lt;programlisting&gt;
-[#param_types param_names,]
-#gpointer     data2);
-&lt;/programlisting&gt;
-A structure holding in-depth information for a specific signal. It is
-filled in by the g_signal_query() function.">
-      <field name="signal_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="signal_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="itype" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="signal_flags" writable="1">
-        <type name="SignalFlags" c:type="GSignalFlags"/>
-      </field>
-      <field name="return_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="n_params" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="param_types" writable="1">
-        <type name="any" c:type="GType*"/>
-      </field>
-    </record>
-    <glib:boxed c:type="GString"
-                glib:name="String"
-                glib:type-name="GString"
-                glib:get-type="g_gstring_get_type">
-    </glib:boxed>
-    <glib:boxed c:type="GStrv"
-                glib:name="Strv"
-                glib:type-name="GStrv"
-                glib:get-type="g_strv_get_type">
-    </glib:boxed>
-    <constant name="TYPE_FUNDAMENTAL_MAX" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_FUNDAMENTAL_SHIFT" value="2">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_BSE_FIRST" value="32">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_BSE_LAST" value="48">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_GLIB_FIRST" value="21">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_GLIB_LAST" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_USER_FIRST" value="49">
-      <type name="int"/>
-    </constant>
-    <callback name="ToggleNotify"
-              c:type="GToggleNotify"
-              doc="last reference to the object. %FALSE if the toggle
-reference was the last reference and there are now other
-references.
-A callback function used for notification when the state
-of a toggle reference changes. See g_object_add_toggle_ref().">
+    <callback name="ObjectSetPropertyFunc" c:type="GObjectSetPropertyFunc">
+      <doc xml:whitespace="preserve">The type of the @set_property function of #GObjectClass.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none" doc="was called.">
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
           <type name="Object" c:type="GObject*"/>
         </parameter>
-        <parameter name="is_last_ref" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+        <parameter name="property_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the numeric id under which the property was registered with g_object_class_install_property().</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-      </parameters>
-    </callback>
-    <union name="TypeCValue" c:type="GTypeCValue">
-      <field name="v_int" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="v_long" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="v_int64" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="v_double" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="v_pointer" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </union>
-    <record name="TypeClass"
-            c:type="GTypeClass"
-            doc="An opaque structure used as the base of all classes.">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <method name="get_private" c:identifier="g_type_class_get_private">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="private_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="TypeClassCacheFunc"
-              c:type="GTypeClassCacheFunc"
-              doc="A callback function which is called when the reference count of a class
-drops to zero. It may use g_type_class_ref() to prevent the class from
-being freed. You should not call g_type_class_unref() from a
-#GTypeClassCacheFunc function to prevent infinite recursion, use
-g_type_class_unref_uncached() instead.
-The functions have to check the class id passed in to figure
-whether they actually want to cache the class of this type, since all
-classes are routed through the same #GTypeClassCacheFunc chain.
-called, %FALSE to continue.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="cache_data" transfer-ownership="none" doc="call">
-          <type name="any" c:type="gpointer"/>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value for the property</doc>
+          <type name="Value" c:type="GValue*"/>
         </parameter>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="TypeClass" c:type="GTypeClass*"/>
+        <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GParamSpec describing the property</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
       </parameters>
     </callback>
-    <bitfield name="TypeDebugFlags"
-              doc="The &lt;type&gt;GTypeDebugFlags&lt;/type&gt; enumeration values can be passed to
-g_type_init_with_debug_flags() to trigger debugging messages during runtime.
-Note that the messages can also be triggered by setting the
-&lt;envar&gt;GOBJECT_DEBUG&lt;/envar&gt; environment variable to a &apos;:&apos;-separated list of
-&quot;objects&quot; and &quot;signals&quot;."
-              c:type="GTypeDebugFlags">
-      <member name="none" value="0" c:identifier="G_TYPE_DEBUG_NONE"/>
-      <member name="objects" value="1" c:identifier="G_TYPE_DEBUG_OBJECTS"/>
-      <member name="signals" value="2" c:identifier="G_TYPE_DEBUG_SIGNALS"/>
-      <member name="mask" value="3" c:identifier="G_TYPE_DEBUG_MASK"/>
-    </bitfield>
-    <bitfield name="TypeFlags"
-              doc="created for an abstract type.
-that introduces a value table, but can&apos;t be used for
-g_value_init().
-Bit masks used to check or determine characteristics of a type."
-              c:type="GTypeFlags">
-      <member name="abstract" value="16" c:identifier="G_TYPE_FLAG_ABSTRACT"/>
-      <member name="value_abstract"
-              value="32"
-              c:identifier="G_TYPE_FLAG_VALUE_ABSTRACT"/>
-    </bitfield>
-    <bitfield name="TypeFundamentalFlags"
-              doc="Bit masks used to check or determine specific characteristics of a
-fundamental type."
-              c:type="GTypeFundamentalFlags">
-      <member name="classed" value="1" c:identifier="G_TYPE_FLAG_CLASSED"/>
-      <member name="instantiatable"
-              value="2"
-              c:identifier="G_TYPE_FLAG_INSTANTIATABLE"/>
-      <member name="derivable" value="4" c:identifier="G_TYPE_FLAG_DERIVABLE"/>
-      <member name="deep_derivable"
+    <constant name="PARAM_MASK" value="255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PARAM_READWRITE" value="0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PARAM_STATIC_STRINGS" value="0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PARAM_USER_SHIFT" value="8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="ParamFlags" c:type="GParamFlags">
+      <doc xml:whitespace="preserve">Through the #GParamFlags flag values, certain aspects of parameters
+can be configured.</doc>
+      <member name="readable" value="1" c:identifier="G_PARAM_READABLE"/>
+      <member name="writable" value="2" c:identifier="G_PARAM_WRITABLE"/>
+      <member name="construct" value="4" c:identifier="G_PARAM_CONSTRUCT"/>
+      <member name="construct_only"
               value="8"
-              c:identifier="G_TYPE_FLAG_DEEP_DERIVABLE"/>
+              c:identifier="G_PARAM_CONSTRUCT_ONLY"/>
+      <member name="lax_validation"
+              value="16"
+              c:identifier="G_PARAM_LAX_VALIDATION"/>
+      <member name="static_name"
+              value="32"
+              c:identifier="G_PARAM_STATIC_NAME"/>
+      <member name="private" value="32" c:identifier="G_PARAM_PRIVATE"/>
+      <member name="static_nick"
+              value="64"
+              c:identifier="G_PARAM_STATIC_NICK"/>
+      <member name="static_blurb"
+              value="128"
+              c:identifier="G_PARAM_STATIC_BLURB"/>
+      <member name="deprecated"
+              value="-2147483648"
+              c:identifier="G_PARAM_DEPRECATED"/>
     </bitfield>
-    <record name="TypeFundamentalInfo"
-            c:type="GTypeFundamentalInfo"
-            doc="A structure that provides information to the type system which is
-used specifically for managing fundamental types.">
-      <field name="type_flags" writable="1">
-        <type name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags"/>
-      </field>
-    </record>
-    <record name="TypeInfo"
-            c:type="GTypeInfo"
-            doc="classed and instantiatable types. Location of the default vtable
-inititalization function for interface types. (optional) This function
-is used both to fill in virtual functions in the class or default vtable,
-and to do type-specific setup such as registering signals and object
-properties.
-classed and instantiatable types. Location fo the default vtable
-finalization function for interface types. (optional)
-useful for fundamental types).
-This structure is used to provide the type system with the information
-required to initialize and destruct (finalize) a type&apos;s class and
-its instances.
-The initialized structure is passed to the g_type_register_static() function
-(or is copied into the provided #GTypeInfo structure in the
-g_type_plugin_complete_type_info()). The type system will perform a deep
-copy of this structure, so its memory does not need to be persistent
-across invocation of g_type_register_static().">
-      <field name="class_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="base_init" writable="1">
-        <type name="BaseInitFunc" c:type="GBaseInitFunc"/>
+    <record name="ParamSpec" c:type="GParamSpec">
+      <doc xml:whitespace="preserve">All other fields of the &lt;structname&gt;GParamSpec&lt;/structname&gt; struct are private and
+should not be used directly.</doc>
+      <field name="g_type_instance" writable="1">
+        <type name="TypeInstance" c:type="GTypeInstance"/>
       </field>
-      <field name="base_finalize" writable="1">
-        <type name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
       </field>
-      <field name="class_init" writable="1">
-        <type name="ClassInitFunc" c:type="GClassInitFunc"/>
+      <field name="flags" writable="1">
+        <type name="ParamFlags" c:type="GParamFlags"/>
       </field>
-      <field name="class_finalize" writable="1">
-        <type name="ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
+      <field name="value_type" writable="1">
+        <type name="GType" c:type="GType"/>
       </field>
-      <field name="class_data" writable="1">
-        <type name="any" c:type="gconstpointer"/>
+      <field name="owner_type" writable="1">
+        <type name="GType" c:type="GType"/>
       </field>
-      <field name="instance_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
+      <field name="_nick" writable="1">
+        <type name="utf8" c:type="gchar*"/>
       </field>
-      <field name="n_preallocs" writable="1">
-        <type name="uint16" c:type="guint16"/>
+      <field name="_blurb" writable="1">
+        <type name="utf8" c:type="gchar*"/>
       </field>
-      <field name="instance_init" writable="1">
-        <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
+      <field name="qdata" writable="1">
+        <type name="GLib.Data" c:type="GData*"/>
       </field>
-      <field name="value_table" writable="1">
-        <type name="TypeValueTable" c:type="GTypeValueTable*"/>
+      <field name="ref_count" writable="1">
+        <type name="guint" c:type="guint"/>
       </field>
-    </record>
-    <record name="TypeInstance"
-            c:type="GTypeInstance"
-            doc="An opaque structure used as the base of all type instances.">
-      <field name="g_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass*"/>
+      <field name="param_id" writable="1">
+        <type name="guint" c:type="guint"/>
       </field>
-      <method name="get_private" c:identifier="g_type_instance_get_private">
+      <method name="get_blurb" c:identifier="g_param_spec_get_blurb">
+        <doc xml:whitespace="preserve">Get the short description of a #GParamSpec.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the short description of @pspec.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_name" c:identifier="g_param_spec_get_name">
+        <doc xml:whitespace="preserve">Get the name of a #GParamSpec.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of @pspec.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_nick" c:identifier="g_param_spec_get_nick">
+        <doc xml:whitespace="preserve">Get the nickname of a #GParamSpec.</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the nickname of @pspec.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_qdata"
+              c:identifier="g_param_spec_get_qdata"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets back user data pointers stored via g_param_spec_set_qdata().</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the user data pointer set, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="private_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="TypeInterface"
-            c:type="GTypeInterface"
-            doc="An opaque structure used as the base of all interface types.">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="g_instance_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-    </record>
-    <callback name="TypeInterfaceCheckFunc"
-              c:type="GTypeInterfaceCheckFunc"
-              doc="A callback called after an interface vtable is initialized.
-See g_type_add_interface_check()."
-              version="2.4">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="TypeModule"
-           c:type="GTypeModule"
-           doc="The members of the &lt;structname&gt;GTypeModule&lt;/structname&gt; structure should not
-be accessed directly, except for the @name field."
-           parent="Object"
-           abstract="1"
-           glib:type-name="GTypeModule"
-           glib:get-type="g_type_module_get_type"
-           glib:type-struct="TypeModuleClass">
-      <implements name="TypePlugin"/>
-      <virtual-method name="load">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="unload">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="get_redirect_target"
+              c:identifier="g_param_spec_get_redirect_target"
+              version="2.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">If the paramspec redirects operations to another paramspec,
+returns that paramspec. Redirect is used typically for
+providing a new implementation of a property in a derived
+type while preserving all the properties from the parent
+type. Redirection is established by creating a property
+of type #GParamSpecOverride. See g_object_class_override_property()
+for an example of the use of this capability.
+be redirected, or %NULL if none.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">paramspec to which requests on this paramspec should</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
-      </virtual-method>
-      <method name="use" c:identifier="g_type_module_use">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+      </method>
+      <method name="ref" c:identifier="g_param_spec_ref" introspectable="0">
+        <doc xml:whitespace="preserve">Increments the reference count of @pspec.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the #GParamSpec that was passed into this function</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
       </method>
-      <method name="unuse" c:identifier="g_type_module_unuse">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="ref_sink"
+              c:identifier="g_param_spec_ref_sink"
+              version="2.10"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Convenience function to ref and sink a #GParamSpec.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the #GParamSpec that was passed into this function</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
       </method>
-      <method name="set_name" c:identifier="g_type_module_set_name">
+      <method name="set_qdata" c:identifier="g_param_spec_set_qdata">
+        <doc xml:whitespace="preserve">Sets an opaque, named pointer on a #GParamSpec. The name is
+specified through a #GQuark (retrieved e.g. via
+g_quark_from_static_string()), and the pointer can be gotten back
+from the @pspec with g_param_spec_get_qdata().  Setting a
+previously set user data pointer, overrides (frees) the old pointer
+set, using %NULL as pointer essentially removes the data stored.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opaque user data pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="register_type" c:identifier="g_type_module_register_type">
+      <method name="set_qdata_full" c:identifier="g_param_spec_set_qdata_full">
+        <doc xml:whitespace="preserve">This function works like g_param_spec_set_qdata(), but in addition,
+a &lt;literal&gt;void (*destroy) (gpointer)&lt;/literal&gt; function may be
+specified which is called with @data as argument when the @pspec is
+finalized, or the data is being overwritten by a call to
+g_param_spec_set_qdata() with the same @quark.</doc>
         <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="parent_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="type_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
-          <parameter name="type_info" transfer-ownership="none">
-            <type name="TypeInfo" c:type="GTypeInfo*"/>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an opaque user data pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="TypeFlags" c:type="GTypeFlags"/>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to invoke with @data as argument, when @data needs to be freed</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
           </parameter>
         </parameters>
       </method>
-      <method name="add_interface" c:identifier="g_type_module_add_interface">
+      <method name="sink" c:identifier="g_param_spec_sink">
+        <doc xml:whitespace="preserve">The initial reference count of a newly created #GParamSpec is 1,
+even though no one has explicitly called g_param_spec_ref() on it
+yet. So the initial reference count is flagged as "floating", until
+someone calls &lt;literal&gt;g_param_spec_ref (pspec); g_param_spec_sink
+(pspec);&lt;/literal&gt; in sequence on it, taking over the initial
+reference count (thus ending up with a @pspec that has a reference
+count of 1 still, but is not flagged "floating" anymore).</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
-        <parameters>
-          <parameter name="instance_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_info" transfer-ownership="none">
-            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-          </parameter>
-        </parameters>
       </method>
-      <method name="register_enum" c:identifier="g_type_module_register_enum">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+      <method name="steal_qdata"
+              c:identifier="g_param_spec_steal_qdata"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets back user data pointers stored via g_param_spec_set_qdata()
+and removes the @data from @pspec without invoking its destroy()
+function (if any was set).  Usually, calling this function is only
+required to update user data pointers with a destroy notifier.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">the user data pointer set, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </return-value>
         <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="const_static_values" transfer-ownership="none">
-            <type name="EnumValue" c:type="GEnumValue*"/>
+          <parameter name="quark" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
           </parameter>
         </parameters>
       </method>
-      <method name="register_flags"
-              c:identifier="g_type_module_register_flags">
+      <method name="unref" c:identifier="g_param_spec_unref">
+        <doc xml:whitespace="preserve">Decrements the reference count of a @pspec.</doc>
         <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+          <type name="none" c:type="void"/>
         </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="const_static_values" transfer-ownership="none">
-            <type name="FlagsValue" c:type="GFlagsValue*"/>
-          </parameter>
-        </parameters>
       </method>
-      <field name="parent_instance">
-        <type name="Object" c:type="GObject"/>
+    </record>
+    <record name="ParamSpecBoolean" c:type="GParamSpecBoolean">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for boolean properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="use_count">
-        <type name="uint" c:type="guint"/>
+      <field name="default_value" writable="1">
+        <type name="gboolean" c:type="gboolean"/>
       </field>
-      <field name="type_infos">
-        <type name="GLib.SList" c:type="GSList*"/>
+    </record>
+    <record name="ParamSpecBoxed" c:type="GParamSpecBoxed">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for boxed properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="interface_infos">
-        <type name="GLib.SList" c:type="GSList*"/>
+    </record>
+    <record name="ParamSpecChar" c:type="GParamSpecChar">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for character properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="name">
-        <type name="utf8" c:type="gchar*"/>
+      <field name="minimum" writable="1">
+        <type name="gint8" c:type="gint8"/>
       </field>
-    </class>
-    <record name="TypeModuleClass"
-            c:type="GTypeModuleClass"
-            glib:is-gtype-struct-for="TypeModule"
-            doc="g_type_module_register_type().
-In order to implement dynamic loading of types based on #GTypeModule,
-the @load and @unload functions in #GTypeModuleClass must be implemented.">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GObjectClass"/>
+      <field name="maximum" writable="1">
+        <type name="gint8" c:type="gint8"/>
       </field>
-      <field name="load">
-        <callback name="load" c:type="load">
+      <field name="default_value" writable="1">
+        <type name="gint8" c:type="gint8"/>
+      </field>
+    </record>
+    <record name="ParamSpecClass" c:type="GParamSpecClass">
+      <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GParamSpec&lt;/structname&gt; type.
+Normally, &lt;structname&gt;GParamSpec&lt;/structname&gt; classes are filled by
+g_param_type_register_static().</doc>
+      <field name="g_type_class" writable="1">
+        <type name="TypeClass" c:type="GTypeClass"/>
+      </field>
+      <field name="value_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="finalize">
+        <callback name="finalize">
           <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
+            <type name="none" c:type="void"/>
           </return-value>
           <parameters>
-            <parameter name="module" transfer-ownership="none">
-              <type name="TypeModule" c:type="GTypeModule*"/>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
             </parameter>
           </parameters>
         </callback>
       </field>
-      <field name="unload">
-        <callback name="unload" c:type="unload">
+      <field name="value_set_default">
+        <callback name="value_set_default">
           <return-value transfer-ownership="none">
             <type name="none" c:type="void"/>
           </return-value>
           <parameters>
-            <parameter name="module" transfer-ownership="none">
-              <type name="TypeModule" c:type="GTypeModule*"/>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
             </parameter>
           </parameters>
         </callback>
       </field>
-      <field name="reserved1">
-        <callback name="reserved1" c:type="reserved1">
+      <field name="value_validate">
+        <callback name="value_validate">
           <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
+            <type name="gboolean" c:type="gboolean"/>
           </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
         </callback>
       </field>
-      <field name="reserved2">
-        <callback name="reserved2" c:type="reserved2">
+      <field name="values_cmp">
+        <callback name="values_cmp">
           <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
+            <type name="gint" c:type="gint"/>
           </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value1" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="value2" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
         </callback>
       </field>
-      <field name="reserved3">
-        <callback name="reserved3" c:type="reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
+      <field name="dummy" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
       </field>
-      <field name="reserved4">
-        <callback name="reserved4" c:type="reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
+    </record>
+    <record name="ParamSpecDouble" c:type="GParamSpecDouble">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for double properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="epsilon" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
       </field>
     </record>
-    <interface name="TypePlugin"
-               c:type="GTypePlugin"
-               doc="The &lt;structname&gt;GTypePlugin&lt;/structname&gt; typedef is used as a placeholder
-for objects that implement the &lt;structname&gt;GTypePlugin&lt;/structname&gt;
-interface."
-               glib:type-name="GTypePlugin"
-               glib:get-type="g_type_plugin_get_type"
-               glib:type-struct="TypePluginClass">
-      <method name="use" c:identifier="g_type_plugin_use">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unuse" c:identifier="g_type_plugin_unuse">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="complete_type_info"
-              c:identifier="g_type_plugin_complete_type_info">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="g_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="info" transfer-ownership="none">
-            <type name="TypeInfo" c:type="GTypeInfo*"/>
-          </parameter>
-          <parameter name="value_table" transfer-ownership="none">
-            <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="complete_interface_info"
-              c:identifier="g_type_plugin_complete_interface_info">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="instance_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="info" transfer-ownership="none">
-            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="TypePluginClass"
-            c:type="GTypePluginClass"
-            glib:is-gtype-struct-for="TypePlugin"
-            doc="#GTypeValueTable structs for the type. The structs are initialized
-with &lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
-this function.
-for the interface. The structs is initialized with
-&lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
-this function.
-The #GTypePlugin interface is used by the type system in order to handle
-the lifecycle of dynamically loaded types.">
-      <field name="base_iface">
-        <type name="TypeInterface" c:type="GTypeInterface"/>
+    <record name="ParamSpecEnum" c:type="GParamSpecEnum">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for enum 
+properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="use_plugin">
-        <type name="TypePluginUse" c:type="GTypePluginUse"/>
+      <field name="enum_class" writable="1">
+        <type name="EnumClass" c:type="GEnumClass*"/>
       </field>
-      <field name="unuse_plugin">
-        <type name="TypePluginUnuse" c:type="GTypePluginUnuse"/>
+      <field name="default_value" writable="1">
+        <type name="gint" c:type="gint"/>
       </field>
-      <field name="complete_type_info">
-        <type name="TypePluginCompleteTypeInfo"
-              c:type="GTypePluginCompleteTypeInfo"/>
+    </record>
+    <record name="ParamSpecFlags" c:type="GParamSpecFlags">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for flags
+properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="complete_interface_info">
-        <type name="TypePluginCompleteInterfaceInfo"
-              c:type="GTypePluginCompleteInterfaceInfo"/>
+      <field name="flags_class" writable="1">
+        <type name="FlagsClass" c:type="GFlagsClass*"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="guint" c:type="guint"/>
       </field>
     </record>
-    <callback name="TypePluginCompleteInterfaceInfo"
-              c:type="GTypePluginCompleteInterfaceInfo"
-              doc="is added
-The type of the @complete_interface_info function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginCompleteTypeInfo"
-              c:type="GTypePluginCompleteTypeInfo"
-              doc="The type of the @complete_type_info function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-        <parameter name="g_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="value_table" transfer-ownership="none">
-          <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginUnuse"
-              c:type="GTypePluginUnuse"
-              doc="The type of the @unuse_plugin function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginUse"
-              c:type="GTypePluginUse"
-              doc="The type of the @use_plugin function of #GTypePluginClass, which gets called
-to increase the use count of @plugin.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="TypeQuery"
-            c:type="GTypeQuery"
-            doc="A structure holding information for a specific type. It is
-filled in by the g_type_query() function.">
-      <field name="type" writable="1">
+    <record name="ParamSpecFloat" c:type="GParamSpecFloat">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for float properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="epsilon" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <record name="ParamSpecGType" c:type="GParamSpecGType" version="2.10">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GType properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="is_a_type" writable="1">
         <type name="GType" c:type="GType"/>
       </field>
-      <field name="type_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
+    </record>
+    <record name="ParamSpecInt" c:type="GParamSpecInt">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="class_size" writable="1">
-        <type name="uint" c:type="guint"/>
+      <field name="minimum" writable="1">
+        <type name="gint" c:type="gint"/>
       </field>
-      <field name="instance_size" writable="1">
-        <type name="uint" c:type="guint"/>
+      <field name="maximum" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="gint" c:type="gint"/>
       </field>
     </record>
-    <record name="TypeValueTable"
-            c:type="GTypeValueTable"
-            doc="directly into the value-&gt;data array. The data array of
-the #GValue passed into this function was zero-filled
-with &lt;function&gt;memset()&lt;/function&gt;, so no care has to
-be taken to free any
-old contents. E.g. for the implementation of a string
-value that may never be %NULL, the implementation might
-look like:
-|[
-value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
-]|
-data array of the passed in @value. No resources may
-remain allocated through the #GValue contents after
-this function returns. E.g. for our above string type:
-|[
-// only free strings without a specific flag for static storage
-if (!(value-&gt;data[1].v_uint &amp; G_VALUE_NOCOPY_CONTENTS))
-g_free (value-&gt;data[0].v_pointer);
-]|
-and @src_value is a properly setup #GValue of same or
-derived type.
-The purpose of this function is to copy the contents of
-remain valid. String type example:
-|[
-dest_value-&gt;data[0].v_pointer = g_strdup (src_value-&gt;data[0].v_pointer);
-]|
-or strings, return this pointer, so the caller can peek at
-the current contents. To extend on our above string example:
-|[
-return value-&gt;data[0].v_pointer;
-]|
-this value bit-by-bit. Each character in the format represents
-an argument to be collected, and the characters themselves indicate
-the type of the argument. Currently supported arguments are:
-&lt;variablelist&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;i&apos; - Integers. passed as collect_values[].v_int.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;l&apos; - Longs. passed as collect_values[].v_long.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;d&apos; - Doubles. passed as collect_values[].v_double.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;p&apos; - Pointers. passed as collect_values[].v_pointer.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;/variablelist&gt;
-It should be noted that for variable argument list construction,
-ANSI C promotes every type smaller than an integer to an int, and
-floats to doubles. So for collection of short int or char, &apos;i&apos;
-needs to be used, and for collection of floats &apos;d&apos;.
-values collected from a variable argument list into contents
-suitable for storage in a GValue. This function should setup
-does not allow %NULL pointers, it needs to either spew an error,
-or do an implicit conversion by storing an empty string.
-The @value passed in to this function has a zero-filled data
-array, so just like for value_init() it is guaranteed to not
-contain any old contents that might need freeing.
-and @collect_values is an array of unions #GTypeCValue with
-length @n_collect_values, containing the collected values
-according to @collect_format.
-It may contain the flag %G_VALUE_NOCOPY_CONTENTS indicating,
-that the collected value contents may be considered &quot;static&quot;
-for the duration of the @value lifetime.
-Thus an extra copy of the contents stored in @collect_values is
-not required for assignment to @value.
-For our above string example, we continue with:
-|[
-if (!collect_values[0].v_pointer)
-value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
-else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
-{
-value-&gt;data[0].v_pointer = collect_values[0].v_pointer;
-// keep a flag for the value_free() implementation to not free this string
-value-&gt;data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
-}
-else
-value-&gt;data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
-return NULL;
-]|
-It should be noted, that it is generally a bad idea to follow the
-#G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
-reentrancy requirements and reference count assertions performed
-by the #GSignal code, reference counts should always be incremented
-for reference counted contents stored in the value-&gt;data array.
-To deviate from our string example for a moment, and taking a look
-at an exemplary implementation for collect_value() of #GObject:
-|[
-if (collect_values[0].v_pointer)
-{
-GObject *object = G_OBJECT (collect_values[0].v_pointer);
-// never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
-value-&gt;data[0].v_pointer = g_object_ref (object);
-return NULL;
-}
-else
-return g_strdup_printf (&quot;Object passed as invalid NULL pointer&quot;);
-}
-]|
-The reference count for valid objects is always incremented,
-regardless of @collect_flags. For invalid objects, the example
-returns a newly allocated string without altering @value.
-Upon success, collect_value() needs to return %NULL. If, however,
-an error condition occurred, collect_value() may spew an
-error by returning a newly allocated non-%NULL string, giving
-a suitable description of the error condition.
-The calling code makes no assumptions about the @value
-contents being valid upon error returns, @value
-is simply thrown away without further freeing. As such, it is
-a good idea to not allocate #GValue contents, prior to returning
-an error, however, collect_values() is not obliged to return
-a correctly setup @value for error returns, simply because
-any non-%NULL return is considered a fatal condition so further
-program behaviour is undefined.
-analogous to @collect_format. Usually, @lcopy_format string consists
-only of &apos;p&apos;s to provide lcopy_value() with pointers to storage locations.
-arguments passed through a variable argument list which got
-collected into @collect_values according to @lcopy_format.
-and @collect_flags may contain %G_VALUE_NOCOPY_CONTENTS.
-In contrast to collect_value(), lcopy_value() is obliged to
-always properly support %G_VALUE_NOCOPY_CONTENTS.
-Similar to collect_value() the function may prematurely abort
-by returning a newly allocated string describing an error condition.
-To complete the string example:
-|[
-gchar **string_p = collect_values[0].v_pointer;
-if (!string_p)
-return g_strdup_printf (&quot;string location passed as NULL&quot;);
-if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
-*string_p = value-&gt;data[0].v_pointer;
-else
-*string_p = g_strdup (value-&gt;data[0].v_pointer);
-]|
-And an illustrative version of lcopy_value() for
-reference-counted types:
-|[
-GObject **object_p = collect_values[0].v_pointer;
-if (!object_p)
-return g_strdup_printf (&quot;object location passed as NULL&quot;);
-if (!value-&gt;data[0].v_pointer)
-*object_p = NULL;
-else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS) // always honour
-*object_p = value-&gt;data[0].v_pointer;
-else
-*object_p = g_object_ref (value-&gt;data[0].v_pointer);
-return NULL;
-]|
-The #GTypeValueTable provides the functions required by the #GValue implementation,
-to serve as a container for values of a type.">
-      <field name="value_init">
-        <type name="any" c:type="pointer"/>
+    <record name="ParamSpecInt64" c:type="GParamSpecInt64">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for 64bit integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="value_free">
-        <type name="any" c:type="pointer"/>
+      <field name="minimum" writable="1">
+        <type name="gint64" c:type="gint64"/>
       </field>
-      <field name="value_copy">
-        <type name="any" c:type="pointer"/>
+      <field name="maximum" writable="1">
+        <type name="gint64" c:type="gint64"/>
       </field>
-      <field name="value_peek_pointer">
-        <type name="any" c:type="pointer"/>
+      <field name="default_value" writable="1">
+        <type name="gint64" c:type="gint64"/>
       </field>
-      <field name="collect_format" writable="1">
-        <type name="utf8" c:type="gchar*"/>
+    </record>
+    <record name="ParamSpecLong" c:type="GParamSpecLong">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for long integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="collect_value">
-        <type name="any" c:type="pointer"/>
+      <field name="minimum" writable="1">
+        <type name="glong" c:type="glong"/>
       </field>
-      <field name="lcopy_format" writable="1">
-        <type name="utf8" c:type="gchar*"/>
+      <field name="maximum" writable="1">
+        <type name="glong" c:type="glong"/>
       </field>
-      <field name="lcopy_value">
-        <type name="any" c:type="pointer"/>
+      <field name="default_value" writable="1">
+        <type name="glong" c:type="glong"/>
       </field>
     </record>
-    <constant name="VALUE_COLLECT_FORMAT_MAX_LENGTH" value="8">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_NOCOPY_CONTENTS" value="134217728">
-      <type name="int"/>
-    </constant>
-    <record name="Value"
-            c:type="GValue"
-            doc="An opaque structure used to hold different types of values.
-to functions within a #GTypeValueTable structure, or implementations of
-the g_value_*() API. That is, code portions which implement new fundamental
-types.
-#GValue users can not make any assumptions about how data is stored
-within the 2 element @data union, and the @g_type member should
-only be accessed through the G_VALUE_TYPE() macro."
-            glib:type-name="GValue"
-            glib:get-type="g_value_get_type">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
+    <record name="ParamSpecObject" c:type="GParamSpecObject">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for object properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <field name="data" writable="1">
-        <array zero-terminated="0" c:type="any" fixed-size="2">
-          <type name="any"/>
-        </array>
+    </record>
+    <record name="ParamSpecOverride" c:type="GParamSpecOverride" version="2.4">
+      <doc xml:whitespace="preserve">This is a type of #GParamSpec type that simply redirects operations to
+another paramspec.  All operations other than getting or
+setting the value are redirected, including accessing the nick and
+blurb, validating a value, and so forth. See
+g_param_spec_get_redirect_target() for retrieving the overidden
+property. #GParamSpecOverride is used in implementing
+g_object_class_override_property(), and will not be directly useful
+unless you are implementing a new base type similar to GObject.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
       </field>
-      <method name="set_boxed" c:identifier="g_value_set_boxed">
+      <field name="overridden" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </field>
+    </record>
+    <record name="ParamSpecParam" c:type="GParamSpecParam">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
+properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+    </record>
+    <record name="ParamSpecPointer" c:type="GParamSpecPointer">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for pointer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+    </record>
+    <record name="ParamSpecPool" c:type="GParamSpecPool" disguised="1">
+      <doc xml:whitespace="preserve">A #GParamSpecPool maintains a collection of #GParamSpec&lt;!-- --&gt;s which can be
+quickly accessed by owner and name. The implementation of the #GObject property
+system uses such a pool to store the #GParamSpecs of the properties all object
+types.</doc>
+      <method name="insert" c:identifier="g_param_spec_pool_insert">
+        <doc xml:whitespace="preserve">Inserts a #GParamSpec in the pool.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec to insert</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="set_static_boxed" c:identifier="g_value_set_static_boxed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
+          <parameter name="owner_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType identifying the owner of @pspec</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_boxed" c:identifier="g_value_get_boxed">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="dup_boxed" c:identifier="g_value_dup_boxed">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="take_boxed" c:identifier="g_value_take_boxed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="list"
+              c:identifier="g_param_spec_pool_list"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets an array of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type in
+the pool.
+#GParamSpec&lt;!-- --&gt;s owned by @owner_type in the pool</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a newly allocated array containing pointers to all</doc>
+          <type name="ParamSpec" c:type="GParamSpec**"/>
         </return-value>
         <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
+          <parameter name="owner_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the owner to look for</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="set_boxed_take_ownership"
-              c:identifier="g_value_set_boxed_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
+          <parameter name="n_pspecs_p" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the length of the returned array</doc>
+            <type name="guint" c:type="guint*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_enum" c:identifier="g_value_set_enum">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="list_owned"
+              c:identifier="g_param_spec_pool_list_owned"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets an #GList of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type in
+the pool.
+in the pool#GParamSpec&lt;!-- --&gt;s.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a #GList of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
         </return-value>
         <parameters>
-          <parameter name="v_enum" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
+          <parameter name="owner_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the owner to look for</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_enum" c:identifier="g_value_get_enum">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_flags" c:identifier="g_value_set_flags">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="lookup"
+              c:identifier="g_param_spec_pool_lookup"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Looks up a #GParamSpec in the pool.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">The found #GParamSpec, or %NULL if no matching #GParamSpec was found.</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
         </return-value>
         <parameters>
-          <parameter name="v_flags" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="param_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name to look for</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
-        </parameters>
-      </method>
-      <method name="get_flags" c:identifier="g_value_get_flags">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="init" c:identifier="g_value_init">
-        <return-value transfer-ownership="full">
-          <type name="Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="g_type" transfer-ownership="none">
+          <parameter name="owner_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the owner to look for</doc>
             <type name="GType" c:type="GType"/>
           </parameter>
+          <parameter name="walk_ancestors" transfer-ownership="none">
+            <doc xml:whitespace="preserve">If %TRUE, also try to find a #GParamSpec with @param_name owned by an ancestor of @owner_type.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
         </parameters>
       </method>
-      <method name="copy" c:identifier="g_value_copy">
+      <method name="remove" c:identifier="g_param_spec_pool_remove">
+        <doc xml:whitespace="preserve">Removes a #GParamSpec from the pool.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="dest_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec to remove</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="reset" c:identifier="g_value_reset">
-        <return-value transfer-ownership="full">
-          <type name="Value" c:type="GValue*"/>
-        </return-value>
-      </method>
-      <method name="unset" c:identifier="g_value_unset">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_instance" c:identifier="g_value_set_instance">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+    </record>
+    <record name="ParamSpecString" c:type="GParamSpecString">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for string
+properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="cset_first" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="cset_nth" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="substitutor" writable="1">
+        <type name="gchar" c:type="gchar"/>
+      </field>
+      <field name="null_fold_if_empty" writable="1" bits="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="ensure_non_null" writable="1" bits="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo">
+      <doc xml:whitespace="preserve">This structure is used to provide the type system with the information
+required to initialize and destruct (finalize) a parameter's class and
+instances thereof.
+The initialized structure is passed to the g_param_type_register_static() 
+The type system will perform a deep copy of this structure, so its memory 
+does not need to be persistent across invocation of 
+g_param_type_register_static().</doc>
+      <field name="instance_size" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="n_preallocs" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="instance_init">
+        <callback name="instance_init">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="finalize">
+        <callback name="finalize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_set_default">
+        <callback name="value_set_default">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_validate">
+        <callback name="value_validate">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="values_cmp">
+        <callback name="values_cmp">
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="value1" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="value2" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="ParamSpecUChar" c:type="GParamSpecUChar">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned character properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+    </record>
+    <record name="ParamSpecUInt" c:type="GParamSpecUInt">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="ParamSpecUInt64" c:type="GParamSpecUInt64">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="guint64" c:type="guint64"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="guint64" c:type="guint64"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="guint64" c:type="guint64"/>
+      </field>
+    </record>
+    <record name="ParamSpecULong" c:type="GParamSpecULong">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="gulong" c:type="gulong"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="gulong" c:type="gulong"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="gulong" c:type="gulong"/>
+      </field>
+    </record>
+    <record name="ParamSpecUnichar" c:type="GParamSpecUnichar">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_value" introspectable="0" writable="1">
+        <type name="gunichar" c:type="gunichar"/>
+      </field>
+    </record>
+    <record name="ParamSpecValueArray" c:type="GParamSpecValueArray">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GValueArray properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="element_spec" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </field>
+      <field name="fixed_n_elements" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="ParamSpecVariant" c:type="GParamSpecVariant" version="2.26">
+      <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GVariant properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="GLib.VariantType" c:type="GVariantType*"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="GLib.Variant" c:type="GVariant*"/>
+      </field>
+      <field name="padding" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="Parameter" c:type="GParameter">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;GParameter&lt;/structname&gt; struct is an auxiliary structure used
+to hand parameter name/value pairs to g_object_newv().</doc>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="Value" c:type="GValue"/>
+      </field>
+    </record>
+    <glib:boxed glib:name="PtrArray"
+                c:symbol-prefix="ptr_array"
+                glib:type-name="GPtrArray"
+                glib:get-type="g_ptr_array_get_type">
+    </glib:boxed>
+    <glib:boxed glib:name="Regex"
+                c:symbol-prefix="regex"
+                glib:type-name="GRegex"
+                glib:get-type="g_regex_get_type">
+    </glib:boxed>
+    <constant name="SIGNAL_FLAGS_MASK" value="127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SIGNAL_MATCH_MASK" value="63">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="SignalAccumulator" c:type="GSignalAccumulator">
+      <doc xml:whitespace="preserve">The signal accumulator is a special callback function that can be used
+to collect return values of the various callbacks that are called
+during a signal emission. The signal accumulator is specified at signal
+creation time, if it is left %NULL, no accumulation of callback return
+values is performed. The return value of signal emissions is then the
+value returned by the last callback.
+should be aborted. Returning %FALSE means to abort the
+current emission and %TRUE is returned for continuation.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The accumulator function returns whether the signal emission</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="ihint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal invocation hint, see #GSignalInvocationHint.</doc>
+          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
+        </parameter>
+        <parameter name="return_accu" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Accumulator to collect callback return values in, this is the return value of the current signal emission.</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="handler_return" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GValue holding the return value of the signal handler.</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Callback data that was specified when creating the signal.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="SignalEmissionHook" c:type="GSignalEmissionHook">
+      <doc xml:whitespace="preserve">A simple function pointer to get invoked when the signal is emitted. This 
+allows you to tie a hook to the signal type, so that it will trap all 
+emissions of that signal, from any object.
+You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag.
+hook is disconnected (and destroyed).</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">whether it wants to stay connected. If it returns %FALSE, the signal</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="ihint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal invocation hint, see #GSignalInvocationHint.</doc>
+          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of parameters to the function, including the instance on which the signal was emitted.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the instance on which the signal was emitted, followed by the parameters of the emission.</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">user data associated with the hook.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="SignalFlags" c:type="GSignalFlags">
+      <doc xml:whitespace="preserve">The signal flags are used to specify a signal's behaviour, the overall
+signal description outlines how especially the RUN flags control the
+stages of a signal emission.</doc>
+      <member name="run_first" value="1" c:identifier="G_SIGNAL_RUN_FIRST"/>
+      <member name="run_last" value="2" c:identifier="G_SIGNAL_RUN_LAST"/>
+      <member name="run_cleanup"
+              value="4"
+              c:identifier="G_SIGNAL_RUN_CLEANUP"/>
+      <member name="no_recurse" value="8" c:identifier="G_SIGNAL_NO_RECURSE"/>
+      <member name="detailed" value="16" c:identifier="G_SIGNAL_DETAILED"/>
+      <member name="action" value="32" c:identifier="G_SIGNAL_ACTION"/>
+      <member name="no_hooks" value="64" c:identifier="G_SIGNAL_NO_HOOKS"/>
+    </bitfield>
+    <record name="SignalInvocationHint" c:type="GSignalInvocationHint">
+      <doc xml:whitespace="preserve">The #GSignalInvocationHint structure is used to pass on additional information
+to callbacks during a signal emission.</doc>
+      <field name="signal_id" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="detail" writable="1">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </field>
+      <field name="run_type" writable="1">
+        <type name="SignalFlags" c:type="GSignalFlags"/>
+      </field>
+    </record>
+    <bitfield name="SignalMatchType" c:type="GSignalMatchType">
+      <doc xml:whitespace="preserve">The match types specify what g_signal_handlers_block_matched(),
+g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
+match signals by.</doc>
+      <member name="id" value="1" c:identifier="G_SIGNAL_MATCH_ID"/>
+      <member name="detail" value="2" c:identifier="G_SIGNAL_MATCH_DETAIL"/>
+      <member name="closure" value="4" c:identifier="G_SIGNAL_MATCH_CLOSURE"/>
+      <member name="func" value="8" c:identifier="G_SIGNAL_MATCH_FUNC"/>
+      <member name="data" value="16" c:identifier="G_SIGNAL_MATCH_DATA"/>
+      <member name="unblocked"
+              value="32"
+              c:identifier="G_SIGNAL_MATCH_UNBLOCKED"/>
+    </bitfield>
+    <record name="SignalQuery" c:type="GSignalQuery">
+      <doc xml:whitespace="preserve">A structure holding in-depth information for a specific signal. It is
+filled in by the g_signal_query() function.</doc>
+      <field name="signal_id" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="signal_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="itype" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="signal_flags" writable="1">
+        <type name="SignalFlags" c:type="GSignalFlags"/>
+      </field>
+      <field name="return_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="n_params" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="param_types" writable="1">
+        <type name="GType" c:type="GType*"/>
+      </field>
+    </record>
+    <glib:boxed glib:name="String"
+                c:symbol-prefix="gstring"
+                glib:type-name="GString"
+                glib:get-type="g_gstring_get_type">
+    </glib:boxed>
+    <constant name="TYPE_FUNDAMENTAL_MAX" value="255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_FUNDAMENTAL_SHIFT" value="2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_RESERVED_BSE_FIRST" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_RESERVED_BSE_LAST" value="48">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_RESERVED_GLIB_FIRST" value="22">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_RESERVED_GLIB_LAST" value="31">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TYPE_RESERVED_USER_FIRST" value="49">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="ToggleNotify" c:type="GToggleNotify">
+      <doc xml:whitespace="preserve">A callback function used for notification when the state
+of a toggle reference changes. See g_object_add_toggle_ref().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Callback data passed to g_object_add_toggle_ref()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The object on which g_object_add_toggle_ref() was called.</doc>
+          <type name="Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="is_last_ref" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the toggle reference is now the last reference to the object. %FALSE if the toggle reference was the last reference and there are now other references.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <union name="TypeCValue" c:type="GTypeCValue">
+      <doc xml:whitespace="preserve">A union holding one collected value.</doc>
+      <field name="v_int" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="v_long" writable="1">
+        <type name="glong" c:type="glong"/>
+      </field>
+      <field name="v_int64" writable="1">
+        <type name="gint64" c:type="gint64"/>
+      </field>
+      <field name="v_double" writable="1">
+        <type name="gdouble" c:type="gdouble"/>
+      </field>
+      <field name="v_pointer" writable="1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </union>
+    <record name="TypeClass" c:type="GTypeClass">
+      <doc xml:whitespace="preserve">An opaque structure used as the base of all classes.</doc>
+      <field name="g_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <method name="get_private"
+              c:identifier="g_type_class_get_private"
+              introspectable="0">
+        <return-value>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="private_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc">
+      <doc xml:whitespace="preserve">A callback function which is called when the reference count of a class 
+drops to zero. It may use g_type_class_ref() to prevent the class from
+being freed. You should not call g_type_class_unref() from a 
+#GTypeClassCacheFunc function to prevent infinite recursion, use 
+g_type_class_unref_uncached() instead.
+The functions have to check the class id passed in to figure 
+whether they actually want to cache the class of this type, since all
+classes are routed through the same #GTypeClassCacheFunc chain.
+called, %FALSE to continue.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE to stop further #GTypeClassCacheFunc&lt;!-- --&gt;s from being</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data that was given to the g_type_add_class_cache_func() call</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="g_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GTypeClass structure which is unreferenced</doc>
+          <type name="TypeClass" c:type="GTypeClass*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="TypeDebugFlags" c:type="GTypeDebugFlags">
+      <doc xml:whitespace="preserve">The &lt;type&gt;GTypeDebugFlags&lt;/type&gt; enumeration values can be passed to
+g_type_init_with_debug_flags() to trigger debugging messages during runtime.
+Note that the messages can also be triggered by setting the
+&lt;envar&gt;GOBJECT_DEBUG&lt;/envar&gt; environment variable to a ':'-separated list of 
+"objects" and "signals".</doc>
+      <member name="none" value="0" c:identifier="G_TYPE_DEBUG_NONE"/>
+      <member name="objects" value="1" c:identifier="G_TYPE_DEBUG_OBJECTS"/>
+      <member name="signals" value="2" c:identifier="G_TYPE_DEBUG_SIGNALS"/>
+      <member name="mask" value="3" c:identifier="G_TYPE_DEBUG_MASK"/>
+    </bitfield>
+    <bitfield name="TypeFlags" c:type="GTypeFlags">
+      <doc xml:whitespace="preserve">Bit masks used to check or determine characteristics of a type.</doc>
+      <member name="abstract" value="16" c:identifier="G_TYPE_FLAG_ABSTRACT"/>
+      <member name="value_abstract"
+              value="32"
+              c:identifier="G_TYPE_FLAG_VALUE_ABSTRACT"/>
+    </bitfield>
+    <bitfield name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags">
+      <doc xml:whitespace="preserve">Bit masks used to check or determine specific characteristics of a
+fundamental type.</doc>
+      <member name="classed" value="1" c:identifier="G_TYPE_FLAG_CLASSED"/>
+      <member name="instantiatable"
+              value="2"
+              c:identifier="G_TYPE_FLAG_INSTANTIATABLE"/>
+      <member name="derivable" value="4" c:identifier="G_TYPE_FLAG_DERIVABLE"/>
+      <member name="deep_derivable"
+              value="8"
+              c:identifier="G_TYPE_FLAG_DEEP_DERIVABLE"/>
+    </bitfield>
+    <record name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo">
+      <doc xml:whitespace="preserve">A structure that provides information to the type system which is
+used specifically for managing fundamental types.</doc>
+      <field name="type_flags" writable="1">
+        <type name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags"/>
+      </field>
+    </record>
+    <record name="TypeInfo" c:type="GTypeInfo">
+      <doc xml:whitespace="preserve">This structure is used to provide the type system with the information
+required to initialize and destruct (finalize) a type's class and
+its instances.
+The initialized structure is passed to the g_type_register_static() function
+(or is copied into the provided #GTypeInfo structure in the
+g_type_plugin_complete_type_info()). The type system will perform a deep
+copy of this structure, so its memory does not need to be persistent
+across invocation of g_type_register_static().</doc>
+      <field name="class_size" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="base_init" writable="1">
+        <type name="BaseInitFunc" c:type="GBaseInitFunc"/>
+      </field>
+      <field name="base_finalize" writable="1">
+        <type name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
+      </field>
+      <field name="class_init" writable="1">
+        <type name="ClassInitFunc" c:type="GClassInitFunc"/>
+      </field>
+      <field name="class_finalize" writable="1">
+        <type name="ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
+      </field>
+      <field name="class_data" writable="1">
+        <type name="gpointer" c:type="gconstpointer"/>
+      </field>
+      <field name="instance_size" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="n_preallocs" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="instance_init" writable="1">
+        <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
+      </field>
+      <field name="value_table" writable="1">
+        <type name="TypeValueTable" c:type="GTypeValueTable*"/>
+      </field>
+    </record>
+    <record name="TypeInstance" c:type="GTypeInstance">
+      <doc xml:whitespace="preserve">An opaque structure used as the base of all type instances.</doc>
+      <field name="g_class" writable="1">
+        <type name="TypeClass" c:type="GTypeClass*"/>
+      </field>
+      <method name="get_private"
+              c:identifier="g_type_instance_get_private"
+              introspectable="0">
+        <return-value>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="private_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="TypeInterface" c:type="GTypeInterface">
+      <doc xml:whitespace="preserve">An opaque structure used as the base of all interface types.</doc>
+      <field name="g_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="g_instance_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+    </record>
+    <callback name="TypeInterfaceCheckFunc"
+              c:type="GTypeInterfaceCheckFunc"
+              version="2.4">
+      <doc xml:whitespace="preserve">A callback called after an interface vtable is initialized.
+See g_type_add_interface_check().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="check_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data passed to g_type_add_interface_check().</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="g_iface" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the interface that has been initialized</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="TypeModule"
+           c:symbol-prefix="type_module"
+           c:type="GTypeModule"
+           parent="Object"
+           abstract="1"
+           glib:type-name="GTypeModule"
+           glib:get-type="g_type_module_get_type"
+           glib:type-struct="TypeModuleClass">
+      <doc xml:whitespace="preserve">The members of the &lt;structname&gt;GTypeModule&lt;/structname&gt; structure should not 
+be accessed directly, except for the @name field.</doc>
+      <implements name="TypePlugin"/>
+      <virtual-method name="load">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="unload">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <method name="add_interface" c:identifier="g_type_module_add_interface">
+        <doc xml:whitespace="preserve">Registers an additional interface for a type, whose interface lives
+in the given type plugin. If the interface was already registered
+for the type in this plugin, nothing will be done.
+As long as any instances of the type exist, the type plugin will
+not be unloaded.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="instance_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">type to which to add the interface.</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="interface_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">interface type to add</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="interface_info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">type information structure</doc>
+            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_enum"
+              c:identifier="g_type_module_register_enum"
+              version="2.6">
+        <doc xml:whitespace="preserve">Looks up or registers an enumeration that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+As long as any instances of the type exist, the type plugin will
+not be unloaded.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new or existing type ID</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name for the type</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="const_static_values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0.</doc>
+            <type name="EnumValue" c:type="GEnumValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_flags"
+              c:identifier="g_type_module_register_flags"
+              version="2.6">
+        <doc xml:whitespace="preserve">Looks up or registers a flags type that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+As long as any instances of the type exist, the type plugin will
+not be unloaded.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new or existing type ID</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name for the type</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="const_static_values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GFlagsValue structs for the possible flags values. The array is terminated by a struct with all members being 0.</doc>
+            <type name="FlagsValue" c:type="GFlagsValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_type" c:identifier="g_type_module_register_type">
+        <doc xml:whitespace="preserve">Looks up or registers a type that is implemented with a particular
+type plugin. If a type with name @type_name was previously registered,
+the #GType identifier for the type is returned, otherwise the type
+is newly registered, and the resulting #GType identifier returned.
+When reregistering a type (typically because a module is unloaded
+then reloaded, and reinitialized), @module and @parent_type must
+be the same as they were previously.
+As long as any instances of the type exist, the type plugin will
+not be unloaded.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new or existing type ID</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type for the parent class</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="type_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name for the type</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="type_info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">type information structure</doc>
+            <type name="TypeInfo" c:type="GTypeInfo*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags field providing details about the type</doc>
+            <type name="TypeFlags" c:type="GTypeFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name" c:identifier="g_type_module_set_name">
+        <doc xml:whitespace="preserve">Sets the name for a #GTypeModule</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a human-readable name to use in error messages.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unuse" c:identifier="g_type_module_unuse">
+        <doc xml:whitespace="preserve">Decreases the use count of a #GTypeModule by one. If the
+result is zero, the module will be unloaded. (However, the
+#GTypeModule will not be freed, and types associated with the
+#GTypeModule are not unregistered. Once a #GTypeModule is
+initialized, it must exist forever.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="use" c:identifier="g_type_module_use">
+        <doc xml:whitespace="preserve">Increases the use count of a #GTypeModule by one. If the
+use count was zero before, the plugin will be loaded.
+If loading the plugin fails, the use count is reset to
+its prior value.
+loading the plugin failed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%FALSE if the plugin needed to be loaded and</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <field name="parent_instance">
+        <type name="Object" c:type="GObject"/>
+      </field>
+      <field name="use_count">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="type_infos">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
+      </field>
+      <field name="interface_infos">
+        <type name="GLib.SList" c:type="GSList*">
+          <type name="gpointer" c:type="gpointer"/>
+        </type>
+      </field>
+      <field name="name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </class>
+    <record name="TypeModuleClass"
+            c:type="GTypeModuleClass"
+            glib:is-gtype-struct-for="TypeModule">
+      <doc xml:whitespace="preserve">In order to implement dynamic loading of types based on #GTypeModule, 
+the @load and @unload functions in #GTypeModuleClass must be implemented.</doc>
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="load">
+        <callback name="load">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="module" transfer-ownership="none">
+              <type name="TypeModule" c:type="GTypeModule*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unload">
+        <callback name="unload">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="module" transfer-ownership="none">
+              <type name="TypeModule" c:type="GTypeModule*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reserved1">
+        <callback name="reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="reserved2">
+        <callback name="reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="reserved3">
+        <callback name="reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="reserved4">
+        <callback name="reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <interface name="TypePlugin"
+               c:symbol-prefix="type_plugin"
+               c:type="GTypePlugin"
+               glib:type-name="GTypePlugin"
+               glib:get-type="g_type_plugin_get_type">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;GTypePlugin&lt;/structname&gt; typedef is used as a placeholder 
+for objects that implement the &lt;structname&gt;GTypePlugin&lt;/structname&gt; 
+interface.</doc>
+      <method name="complete_interface_info"
+              c:identifier="g_type_plugin_complete_interface_info">
+        <doc xml:whitespace="preserve">Calls the @complete_interface_info function from the
+#GTypePluginClass of @plugin. There should be no need to use this
+function outside of the GObject type system itself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="instance_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GType of an instantiable type to which the interface is added</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="interface_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GType of the interface whose info is completed</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GInterfaceInfo to fill in</doc>
+            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="complete_type_info"
+              c:identifier="g_type_plugin_complete_type_info">
+        <doc xml:whitespace="preserve">Calls the @complete_type_info function from the #GTypePluginClass of @plugin.
+There should be no need to use this function outside of the GObject
+type system itself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="g_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GType whose info is completed</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GTypeInfo struct to fill in</doc>
+            <type name="TypeInfo" c:type="GTypeInfo*"/>
+          </parameter>
+          <parameter name="value_table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GTypeValueTable to fill in</doc>
+            <type name="TypeValueTable" c:type="GTypeValueTable*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unuse" c:identifier="g_type_plugin_unuse">
+        <doc xml:whitespace="preserve">Calls the @unuse_plugin function from the #GTypePluginClass of
+the GObject type system itself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="use" c:identifier="g_type_plugin_use">
+        <doc xml:whitespace="preserve">Calls the @use_plugin function from the #GTypePluginClass of
+the GObject type system itself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </interface>
+    <record name="TypePluginClass" c:type="GTypePluginClass">
+      <doc xml:whitespace="preserve">The #GTypePlugin interface is used by the type system in order to handle
+the lifecycle of dynamically loaded types.</doc>
+      <field name="base_iface" writable="1">
+        <type name="TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="use_plugin" writable="1">
+        <type name="TypePluginUse" c:type="GTypePluginUse"/>
+      </field>
+      <field name="unuse_plugin" writable="1">
+        <type name="TypePluginUnuse" c:type="GTypePluginUnuse"/>
+      </field>
+      <field name="complete_type_info" writable="1">
+        <type name="TypePluginCompleteTypeInfo"
+              c:type="GTypePluginCompleteTypeInfo"/>
+      </field>
+      <field name="complete_interface_info" writable="1">
+        <type name="TypePluginCompleteInterfaceInfo"
+              c:type="GTypePluginCompleteInterfaceInfo"/>
+      </field>
+    </record>
+    <callback name="TypePluginCompleteInterfaceInfo"
+              c:type="GTypePluginCompleteInterfaceInfo">
+      <doc xml:whitespace="preserve">The type of the @complete_interface_info function of #GTypePluginClass.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypePlugin</doc>
+          <type name="TypePlugin" c:type="GTypePlugin*"/>
+        </parameter>
+        <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of an instantiable type to which the interface is added</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of the interface whose info is completed</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GInterfaceInfo to fill in</doc>
+          <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="TypePluginCompleteTypeInfo"
+              c:type="GTypePluginCompleteTypeInfo">
+      <doc xml:whitespace="preserve">The type of the @complete_type_info function of #GTypePluginClass.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypePlugin</doc>
+          <type name="TypePlugin" c:type="GTypePlugin*"/>
+        </parameter>
+        <parameter name="g_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType whose info is completed</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypeInfo struct to fill in</doc>
+          <type name="TypeInfo" c:type="GTypeInfo*"/>
+        </parameter>
+        <parameter name="value_table" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypeValueTable to fill in</doc>
+          <type name="TypeValueTable" c:type="GTypeValueTable*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="TypePluginUnuse" c:type="GTypePluginUnuse">
+      <doc xml:whitespace="preserve">The type of the @unuse_plugin function of #GTypePluginClass.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypePlugin whose use count should be decreased</doc>
+          <type name="TypePlugin" c:type="GTypePlugin*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="TypePluginUse" c:type="GTypePluginUse">
+      <doc xml:whitespace="preserve">The type of the @use_plugin function of #GTypePluginClass, which gets called
+to increase the use count of @plugin.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypePlugin whose use count should be increased</doc>
+          <type name="TypePlugin" c:type="GTypePlugin*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="TypeQuery" c:type="GTypeQuery">
+      <doc xml:whitespace="preserve">A structure holding information for a specific type. It is
+filled in by the g_type_query() function.</doc>
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="type_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="class_size" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="instance_size" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="TypeValueTable" c:type="GTypeValueTable">
+      <doc xml:whitespace="preserve">The #GTypeValueTable provides the functions required by the #GValue implementation,
+to serve as a container for values of a type.</doc>
+      <field name="value_init">
+        <callback name="value_init">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_free">
+        <callback name="value_free">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_copy">
+        <callback name="value_copy">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src_value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="dest_value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_peek_pointer" introspectable="0">
+        <callback name="value_peek_pointer" introspectable="0">
+          <return-value>
+            <type name="gpointer" c:type="gpointer"/>
+          </return-value>
+          <parameters>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="collect_format" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="collect_value">
+        <callback name="collect_value">
+          <return-value transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="n_collect_values" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="collect_values" transfer-ownership="none">
+              <type name="TypeCValue" c:type="GTypeCValue*"/>
+            </parameter>
+            <parameter name="collect_flags" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="lcopy_format" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="lcopy_value">
+        <callback name="lcopy_value">
+          <return-value transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="value" transfer-ownership="none">
+              <type name="Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="n_collect_values" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="collect_values" transfer-ownership="none">
+              <type name="TypeCValue" c:type="GTypeCValue*"/>
+            </parameter>
+            <parameter name="collect_flags" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="VALUE_COLLECT_FORMAT_MAX_LENGTH" value="8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VALUE_NOCOPY_CONTENTS" value="134217728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Value"
+            c:type="GValue"
+            glib:type-name="GValue"
+            glib:get-type="g_value_get_type"
+            c:symbol-prefix="value">
+      <doc xml:whitespace="preserve">An opaque structure used to hold different types of values.
+to functions within a #GTypeValueTable structure, or implementations of
+the g_value_*() API. That is, code portions which implement new fundamental
+types.
+#GValue users can not make any assumptions about how data is stored
+within the 2 element @data union, and the @g_type member should
+only be accessed through the G_VALUE_TYPE() macro.</doc>
+      <field name="g_type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="data" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <method name="copy" c:identifier="g_value_copy">
+        <doc xml:whitespace="preserve">Copies the value of @src_value into @dest_value.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="instance" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="dest_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An initialized #GValue structure of the same type as @src_value.</doc>
+            <type name="Value" c:type="GValue*"/>
           </parameter>
         </parameters>
       </method>
+      <method name="dup_boxed"
+              c:identifier="g_value_dup_boxed"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOXED derived #GValue.  Upon getting,
+the boxed value is duplicated and needs to be later freed with
+return_value);</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">boxed contents of @value</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="dup_object"
+              c:identifier="g_value_dup_object"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing
+its reference count.
+longer needed.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">object content of @value, should be unreferenced when no</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="dup_param"
+              c:identifier="g_value_dup_param"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_PARAM #GValue, increasing its
+reference count.
+no longer needed.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">#GParamSpec content of @value, should be unreferenced when</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+      </method>
+      <method name="dup_string" c:identifier="g_value_dup_string">
+        <doc xml:whitespace="preserve">Get a copy the contents of a %G_TYPE_STRING #GValue.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated copy of the string content of @value</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="dup_variant"
+              c:identifier="g_value_dup_variant"
+              version="2.26">
+        <doc xml:whitespace="preserve">Get the contents of a variant #GValue, increasing its refcount.
+g_variant_unref() when no longer needed</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">variant contents of @value, should be unrefed using</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+      </method>
       <method name="fits_pointer" c:identifier="g_value_fits_pointer">
+        <doc xml:whitespace="preserve">Determines if @value will fit inside the size of a pointer value.
+This is an internal function introduced mainly for C marshallers.</doc>
         <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">%TRUE if @value will fit inside a pointer value.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </return-value>
       </method>
-      <method name="peek_pointer" c:identifier="g_value_peek_pointer">
+      <method name="get_boolean" c:identifier="g_value_get_boolean">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOOLEAN #GValue.</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">boolean contents of @value</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </return-value>
       </method>
-      <method name="transform" c:identifier="g_value_transform">
+      <method name="get_boxed"
+              c:identifier="g_value_get_boxed"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOXED derived #GValue.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">boxed contents of @value</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="get_char" c:identifier="g_value_get_char">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_CHAR #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">character contents of @value</doc>
+          <type name="gchar" c:type="gchar"/>
+        </return-value>
+      </method>
+      <method name="get_double" c:identifier="g_value_get_double">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_DOUBLE #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">double contents of @value</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_enum" c:identifier="g_value_get_enum">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_ENUM #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">enum contents of @value</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_flags" c:identifier="g_value_get_flags">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_FLAGS #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags contents of @value</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_float" c:identifier="g_value_get_float">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_FLOAT #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">float contents of @value</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_gtype" c:identifier="g_value_get_gtype" version="2.12">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_GTYPE #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType stored in @value</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="get_int" c:identifier="g_value_get_int">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_INT #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">integer contents of @value</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_int64" c:identifier="g_value_get_int64">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_INT64 #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">64bit integer contents of @value</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+      </method>
+      <method name="get_long" c:identifier="g_value_get_long">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_LONG #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">long integer contents of @value</doc>
+          <type name="glong" c:type="glong"/>
+        </return-value>
+      </method>
+      <method name="get_object"
+              c:identifier="g_value_get_object"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_OBJECT derived #GValue.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">object contents of @value</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="get_param"
+              c:identifier="g_value_get_param"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_PARAM #GValue.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">#GParamSpec content of @value</doc>
+          <type name="ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+      </method>
+      <method name="get_pointer"
+              c:identifier="g_value_get_pointer"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Get the contents of a pointer #GValue.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">pointer contents of @value</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="get_string" c:identifier="g_value_get_string">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_STRING #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">string content of @value</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_uchar" c:identifier="g_value_get_uchar">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UCHAR #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">unsigned character contents of @value</doc>
+          <type name="guint8" c:type="guchar"/>
+        </return-value>
+      </method>
+      <method name="get_uint" c:identifier="g_value_get_uint">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UINT #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">unsigned integer contents of @value</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_uint64" c:identifier="g_value_get_uint64">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UINT64 #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">unsigned 64bit integer contents of @value</doc>
+          <type name="guint64" c:type="guint64"/>
+        </return-value>
+      </method>
+      <method name="get_ulong" c:identifier="g_value_get_ulong">
+        <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_ULONG #GValue.</doc>
         <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">unsigned long integer contents of @value</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_variant"
+              c:identifier="g_value_get_variant"
+              version="2.26">
+        <doc xml:whitespace="preserve">Get the contents of a variant #GValue.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">variant contents of @value</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+      </method>
+      <method name="init" c:identifier="g_value_init">
+        <doc xml:whitespace="preserve">Initializes @value with the default value of @type.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValue structure that has been passed in</doc>
+          <type name="Value" c:type="GValue*"/>
         </return-value>
         <parameters>
-          <parameter name="dest_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
+          <parameter name="g_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Type the #GValue should hold values of.</doc>
+            <type name="GType" c:type="GType"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_param" c:identifier="g_value_set_param">
+      <method name="peek_pointer"
+              c:identifier="g_value_peek_pointer"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Return the value contents as pointer. This function asserts that
+g_value_fits_pointer() returned %TRUE for the passed in value.
+This is an internal function introduced mainly for C marshallers.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">%TRUE if @value will fit inside a pointer value.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="reset" c:identifier="g_value_reset">
+        <doc xml:whitespace="preserve">Clears the current value in @value and resets it to the default value
+(as if the value had just been initialized).</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValue structure that has been passed in</doc>
+          <type name="Value" c:type="GValue*"/>
+        </return-value>
+      </method>
+      <method name="set_boolean" c:identifier="g_value_set_boolean">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOOLEAN #GValue to @v_boolean.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="v_boolean" transfer-ownership="none">
+            <doc xml:whitespace="preserve">boolean value to be set</doc>
+            <type name="gboolean" c:type="gboolean"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_param" c:identifier="g_value_get_param">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="set_boxed" c:identifier="g_value_set_boxed">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="v_boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">boxed value to be set</doc>
+            <type name="gpointer" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="dup_param" c:identifier="g_value_dup_param">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
+      <method name="set_boxed_take_ownership"
+              c:identifier="g_value_set_boxed_take_ownership"
+              deprecated="Use g_value_take_boxed() instead."
+              deprecated-version="2.4">
+        <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="v_boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duplicated unowned boxed value to be set</doc>
+            <type name="gpointer" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="take_param" c:identifier="g_value_take_param">
+      <method name="set_char" c:identifier="g_value_set_char">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_CHAR #GValue to @v_char.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="v_char" transfer-ownership="none">
+            <doc xml:whitespace="preserve">character value to be set</doc>
+            <type name="gchar" c:type="gchar"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_param_take_ownership"
-              c:identifier="g_value_set_param_take_ownership">
+      <method name="set_double" c:identifier="g_value_set_double">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_DOUBLE #GValue to @v_double.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
+          <parameter name="v_double" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double value to be set</doc>
+            <type name="gdouble" c:type="gdouble"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_object" c:identifier="g_value_set_object">
+      <method name="set_enum" c:identifier="g_value_set_enum">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_ENUM #GValue to @v_enum.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="v_enum" transfer-ownership="none">
+            <doc xml:whitespace="preserve">enum value to be set</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_flags" c:identifier="g_value_set_flags">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_FLAGS #GValue to @v_flags.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="v_flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags value to be set</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_float" c:identifier="g_value_set_float">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_FLOAT #GValue to @v_float.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="v_float" transfer-ownership="none">
+            <doc xml:whitespace="preserve">float value to be set</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_gtype" c:identifier="g_value_set_gtype" version="2.12">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_GTYPE #GValue to @v_gtype.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="v_gtype" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#GType to be set</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_instance" c:identifier="g_value_set_instance">
+        <doc xml:whitespace="preserve">Sets @value from an instantiatable type via the
+value_table's collect_value() function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="instance" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the instance</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_int" c:identifier="g_value_set_int">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_INT #GValue to @v_int.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="v_int" transfer-ownership="none">
+            <doc xml:whitespace="preserve">integer value to be set</doc>
+            <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_object" c:identifier="g_value_get_object">
+      <method name="set_int64" c:identifier="g_value_set_int64">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_INT64 #GValue to @v_int64.</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="v_int64" transfer-ownership="none">
+            <doc xml:whitespace="preserve">64bit integer value to be set</doc>
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="dup_object" c:identifier="g_value_dup_object">
+      <method name="set_long" c:identifier="g_value_set_long">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_LONG #GValue to @v_long.</doc>
         <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="v_long" transfer-ownership="none">
+            <doc xml:whitespace="preserve">long integer value to be set</doc>
+            <type name="glong" c:type="glong"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="take_object" c:identifier="g_value_take_object">
+      <method name="set_object" c:identifier="g_value_set_object">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object.
+g_value_set_object() increases the reference count of @v_object
+(the #GValue holds a reference to @v_object).  If you do not wish
+to increase the reference count of the object (i.e. you wish to
+pass your current reference to the #GValue because you no longer
+need it), use g_value_take_object() instead.
+It is important that your #GValue holds a reference to @v_object (either its
+own, or one it has taken) to ensure that the object won't be destroyed while
+the #GValue still exists).</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+            <doc xml:whitespace="preserve">object value to be set</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
       <method name="set_object_take_ownership"
-              c:identifier="g_value_set_object_take_ownership">
+              c:identifier="g_value_set_object_take_ownership"
+              deprecated="Use g_value_take_object() instead."
+              deprecated-version="2.4">
+        <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="v_object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">object value to be set</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_param" c:identifier="g_value_set_param">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_PARAM #GValue to @param.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_param_take_ownership"
+              c:identifier="g_value_set_param_take_ownership"
+              deprecated="Use g_value_take_param() instead."
+              deprecated-version="2.4">
+        <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pointer" c:identifier="g_value_set_pointer">
+        <doc xml:whitespace="preserve">Set the contents of a pointer #GValue to @v_pointer.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="v_pointer" transfer-ownership="none">
+            <doc xml:whitespace="preserve">pointer value to be set</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_char" c:identifier="g_value_set_char">
+      <method name="set_static_boxed" c:identifier="g_value_set_static_boxed">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.
+The boxed value is assumed to be static, and is thus not duplicated
+when setting the #GValue.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_char" transfer-ownership="none">
-            <type name="int8" c:type="gchar"/>
+          <parameter name="v_boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">static boxed value to be set</doc>
+            <type name="gpointer" c:type="gconstpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_char" c:identifier="g_value_get_char">
-        <return-value transfer-ownership="none">
-          <type name="int8" c:type="gchar"/>
-        </return-value>
-      </method>
-      <method name="set_uchar" c:identifier="g_value_set_uchar">
+      <method name="set_static_string"
+              c:identifier="g_value_set_static_string">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_STRING #GValue to @v_string.
+The string is assumed to be static, and is thus not duplicated
+when setting the #GValue.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_uchar" transfer-ownership="none">
-            <type name="uint8" c:type="guchar"/>
+          <parameter name="v_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">static string to be set</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_uchar" c:identifier="g_value_get_uchar">
-        <return-value transfer-ownership="none">
-          <type name="uint8" c:type="guchar"/>
-        </return-value>
-      </method>
-      <method name="set_boolean" c:identifier="g_value_set_boolean">
+      <method name="set_string" c:identifier="g_value_set_string">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_STRING #GValue to @v_string.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_boolean" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
+          <parameter name="v_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">caller-owned string to be duplicated for the #GValue</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_boolean" c:identifier="g_value_get_boolean">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_int" c:identifier="g_value_set_int">
+      <method name="set_string_take_ownership"
+              c:identifier="g_value_set_string_take_ownership"
+              deprecated="Use g_value_take_string() instead."
+              deprecated-version="2.4">
+        <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_int" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
+          <parameter name="v_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duplicated unowned string to be set</doc>
+            <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_int" c:identifier="g_value_get_int">
+      <method name="set_uchar" c:identifier="g_value_set_uchar">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UCHAR #GValue to @v_uchar.</doc>
         <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <type name="none" c:type="void"/>
         </return-value>
+        <parameters>
+          <parameter name="v_uchar" transfer-ownership="none">
+            <doc xml:whitespace="preserve">unsigned character value to be set</doc>
+            <type name="guint8" c:type="guchar"/>
+          </parameter>
+        </parameters>
       </method>
       <method name="set_uint" c:identifier="g_value_set_uint">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UINT #GValue to @v_uint.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="v_uint" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+            <doc xml:whitespace="preserve">unsigned integer value to be set</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_uint" c:identifier="g_value_get_uint">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="set_long" c:identifier="g_value_set_long">
+      <method name="set_uint64" c:identifier="g_value_set_uint64">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UINT64 #GValue to @v_uint64.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_long" transfer-ownership="none">
-            <type name="long" c:type="glong"/>
+          <parameter name="v_uint64" transfer-ownership="none">
+            <doc xml:whitespace="preserve">unsigned 64bit integer value to be set</doc>
+            <type name="guint64" c:type="guint64"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_long" c:identifier="g_value_get_long">
-        <return-value transfer-ownership="none">
-          <type name="long" c:type="glong"/>
-        </return-value>
-      </method>
       <method name="set_ulong" c:identifier="g_value_set_ulong">
+        <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_ULONG #GValue to @v_ulong.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="v_ulong" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
+            <doc xml:whitespace="preserve">unsigned long integer value to be set</doc>
+            <type name="gulong" c:type="gulong"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_ulong" c:identifier="g_value_get_ulong">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="set_int64" c:identifier="g_value_set_int64">
+      <method name="set_variant"
+              c:identifier="g_value_set_variant"
+              version="2.26">
+        <doc xml:whitespace="preserve">Set the contents of a variant #GValue to @variant.
+If the variant is floating, it is consumed.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_int64" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
+          <parameter name="variant" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GVariant, or %NULL</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_int64" c:identifier="g_value_get_int64">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="set_uint64" c:identifier="g_value_set_uint64">
+      <method name="take_boxed"
+              c:identifier="g_value_take_boxed"
+              version="2.4">
+        <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed
+and takes over the ownership of the callers reference to @v_boxed;
+the caller doesn't have to unref it any more.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_uint64" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
+          <parameter name="v_boxed" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duplicated unowned boxed value to be set</doc>
+            <type name="gpointer" c:type="gconstpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_uint64" c:identifier="g_value_get_uint64">
-        <return-value transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </return-value>
-      </method>
-      <method name="set_float" c:identifier="g_value_set_float">
+      <method name="take_object"
+              c:identifier="g_value_take_object"
+              version="2.4">
+        <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_OBJECT derived #GValue to @v_object
+and takes over the ownership of the callers reference to @v_object;
+the caller doesn't have to unref it any more (i.e. the reference
+count of the object is not increased).
+If you want the #GValue to hold its own reference to @v_object, use
+g_value_set_object() instead.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_float" transfer-ownership="none">
-            <type name="float" c:type="gfloat"/>
+          <parameter name="v_object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">object value to be set</doc>
+            <type name="gpointer" c:type="gpointer"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_float" c:identifier="g_value_get_float">
-        <return-value transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="set_double" c:identifier="g_value_set_double">
+      <method name="take_param"
+              c:identifier="g_value_take_param"
+              version="2.4">
+        <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_PARAM #GValue to @param and takes
+over the ownership of the callers reference to @param; the caller
+doesn't have to unref it any more.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_double" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
+            <type name="ParamSpec" c:type="GParamSpec*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_double" c:identifier="g_value_get_double">
-        <return-value transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="set_string" c:identifier="g_value_set_string">
+      <method name="take_string"
+              c:identifier="g_value_take_string"
+              version="2.4">
+        <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_STRING #GValue to @v_string.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
           <parameter name="v_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">string to take ownership of</doc>
             <type name="utf8" c:type="gchar*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_static_string"
-              c:identifier="g_value_set_static_string">
+      <method name="take_variant"
+              c:identifier="g_value_take_variant"
+              version="2.26">
+        <doc xml:whitespace="preserve">Set the contents of a variant #GValue to @variant, and takes over
+the ownership of the caller's reference to @variant;
+the caller doesn't have to unref it any more (i.e. the reference
+count of the variant is not increased).
+It is a programmer error to pass a floating variant to this function.
+In particular this means that callbacks in closures, and signal handlers
+for signals of return type %G_TYPE_VARIANT, must never return floating
+variants.
+If you want the #GValue to hold its own reference to @variant, use
+g_value_set_variant() instead.
+This is an internal function introduced mainly for C marshallers.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="v_string" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="variant" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GVariant, or %NULL</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_string" c:identifier="g_value_get_string">
+      <method name="transform" c:identifier="g_value_transform">
+        <doc xml:whitespace="preserve">Tries to cast the contents of @src_value into a type appropriate
+to store in @dest_value, e.g. to transform a %G_TYPE_INT value
+into a %G_TYPE_FLOAT value. Performing transformations between
+value types might incur precision lossage. Especially
+transformations into strings might reveal seemingly arbitrary
+results and shouldn't be relied upon for production code (such
+as rcfile value or object property serialization).
+Upon failing transformations, @dest_value is left untouched.</doc>
         <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="dup_string" c:identifier="g_value_dup_string">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
+          <doc xml:whitespace="preserve">Whether a transformation rule was found and could be applied.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </return-value>
+        <parameters>
+          <parameter name="dest_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Target value.</doc>
+            <type name="Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="set_pointer" c:identifier="g_value_set_pointer">
+      <method name="unset" c:identifier="g_value_unset">
+        <doc xml:whitespace="preserve">Clears the current value in @value and "unsets" the type,
+this releases all resources associated with this GValue.
+An unset value is the same as an uninitialized (zero-filled)
+#GValue structure.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
+      </method>
+    </record>
+    <record name="ValueArray"
+            c:type="GValueArray"
+            glib:type-name="GValueArray"
+            glib:get-type="g_value_array_get_type"
+            c:symbol-prefix="value_array">
+      <doc xml:whitespace="preserve">A #GValueArray contains an array of #GValue elements.</doc>
+      <field name="n_values" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="values" writable="1">
+        <type name="Value" c:type="GValue*"/>
+      </field>
+      <field name="n_prealloced" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <constructor name="new" c:identifier="g_value_array_new">
+        <doc xml:whitespace="preserve">Allocate and initialize a new #GValueArray, optionally preserve space
+for @n_prealloced elements. New arrays always contain 0 elements,
+regardless of the value of @n_prealloced.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated #GValueArray with 0 values</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
+        </return-value>
         <parameters>
-          <parameter name="v_pointer" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
+          <parameter name="n_prealloced" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of values to preallocate space for</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="append" c:identifier="g_value_array_append">
+        <doc xml:whitespace="preserve">Insert a copy of @value as last element of @value_array. If @value is
+%NULL, an uninitialized value is appended.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
+            <type name="Value" c:type="GValue*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_pointer" c:identifier="g_value_get_pointer">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+      <method name="copy" c:identifier="g_value_array_copy">
+        <doc xml:whitespace="preserve">Construct an exact copy of a #GValueArray by duplicating all its
+contents.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">Newly allocated copy of #GValueArray</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
         </return-value>
       </method>
-      <method name="set_gtype" c:identifier="g_value_set_gtype">
+      <method name="free" c:identifier="g_value_array_free">
+        <doc xml:whitespace="preserve">Free a #GValueArray including its contents.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
+      </method>
+      <method name="get_nth" c:identifier="g_value_array_get_nth">
+        <doc xml:whitespace="preserve">Return a pointer to the value at @index_ containd in @value_array.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">pointer to a value at @index_ in @value_array</doc>
+          <type name="Value" c:type="GValue*"/>
+        </return-value>
         <parameters>
-          <parameter name="v_gtype" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">index of the value of interest</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
-      <method name="get_gtype" c:identifier="g_value_get_gtype">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+      <method name="insert" c:identifier="g_value_array_insert">
+        <doc xml:whitespace="preserve">Insert a copy of @value at specified position into @value_array. If @value
+is %NULL, an uninitialized value is inserted.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
         </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">insertion position, must be &amp;lt;= value_array-&amp;gt;n_values</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
+            <type name="Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
       </method>
-      <method name="take_string" c:identifier="g_value_take_string">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="prepend" c:identifier="g_value_array_prepend">
+        <doc xml:whitespace="preserve">Insert a copy of @value as first element of @value_array. If @value is
+%NULL, an uninitialized value is prepended.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
         </return-value>
         <parameters>
-          <parameter name="v_string" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
+            <type name="Value" c:type="GValue*"/>
           </parameter>
         </parameters>
       </method>
-      <method name="set_string_take_ownership"
-              c:identifier="g_value_set_string_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+      <method name="remove" c:identifier="g_value_array_remove">
+        <doc xml:whitespace="preserve">Remove the value at position @index_ from @value_array.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
         </return-value>
         <parameters>
-          <parameter name="v_string" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of value to remove, must be &amp;lt; value_array-&gt;n_values</doc>
+            <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
-    </record>
-    <record name="ValueArray"
-            c:type="GValueArray"
-            doc="A #GValueArray contains an array of #GValue elements."
-            glib:type-name="GValueArray"
-            glib:get-type="g_value_array_get_type">
-      <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="values" writable="1">
-        <type name="Value" c:type="GValue*"/>
-      </field>
-      <field name="n_prealloced" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <constructor name="new" c:identifier="g_value_array_new">
+      <method name="sort" c:identifier="g_value_array_sort" introspectable="0">
+        <doc xml:whitespace="preserve">Sort @value_array using @compare_func to compare the elements accoring to
+the semantics of #GCompareFunc.
+The current implementation uses Quick-Sort as sorting algorithm.</doc>
         <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
           <type name="ValueArray" c:type="GValueArray*"/>
         </return-value>
         <parameters>
-          <parameter name="n_prealloced" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
+          <parameter name="compare_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">function to compare elements</doc>
+            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
           </parameter>
         </parameters>
-      </constructor>
-      <method name="get_nth" c:identifier="g_value_array_get_nth">
+      </method>
+      <method name="sort_with_data"
+              c:identifier="g_value_array_sort_with_data"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sort @value_array using @compare_func to compare the elements accoring
+to the semantics of #GCompareDataFunc.
+The current implementation uses Quick-Sort as sorting algorithm.</doc>
         <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
+          <type name="ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="compare_func" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">function to compare elements</doc>
+            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">extra data argument provided for @compare_func</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="ValueTransform" c:type="GValueTransform">
+      <doc xml:whitespace="preserve">The type of value transformation functions which can be registered with
+g_value_register_transform_func().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="src_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Source value.</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="dest_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Target value.</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="WeakNotify" c:type="GWeakNotify">
+      <doc xml:whitespace="preserve">A #GWeakNotify function can be added to an object as a callback that gets
+triggered when the object is finalized. Since the object is already being
+finalized when the #GWeakNotify is called, there's not much you could do 
+with the object, apart from e.g. using its adress as hash-index or the like.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data that was provided when the weak reference was established</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="where_the_object_was" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object being finalized</doc>
+          <type name="Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="boxed_copy" c:identifier="g_boxed_copy" introspectable="0">
+      <doc xml:whitespace="preserve">Provide a copy of a boxed structure @src_boxed which is of type @boxed_type.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The newly created copy of the boxed structure.</doc>
+        <type name="gpointer" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="boxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The type of @src_boxed.</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="src_boxed" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The boxed structure to be copied.</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_free" c:identifier="g_boxed_free">
+      <doc xml:whitespace="preserve">Free the boxed structure @boxed which is of type @boxed_type.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="boxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The type of @boxed.</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="boxed" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The boxed structure to be freed.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_type_init" c:identifier="g_boxed_type_init">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="boxed_type_register_static"
+              c:identifier="g_boxed_type_register_static"
+              introspectable="0">
+      <doc xml:whitespace="preserve">This function creates a new %G_TYPE_BOXED derived type id for a new
+boxed type with name @name. Boxed type handling functions have to be
+provided to copy and free opaque boxed structures of this type.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">New %G_TYPE_BOXED derived type id for @name.</doc>
+        <type name="GType" c:type="GType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Name of the new boxed type.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="boxed_copy" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Boxed structure copy function.</doc>
+          <type name="BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
+        </parameter>
+        <parameter name="boxed_free" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Boxed structure free function.</doc>
+          <type name="BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_BOOLEAN__BOXED_BOXED"
+              c:identifier="g_cclosure_marshal_BOOLEAN__BOXED_BOXED">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_BOOLEAN__FLAGS"
+              c:identifier="g_cclosure_marshal_BOOLEAN__FLAGS">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter
+denotes a flags type.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue which can store the returned #gboolean</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding instance and arg1</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_STRING__OBJECT_POINTER"
+              c:identifier="g_cclosure_marshal_STRING__OBJECT_POINTER">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue, which can store the returned string</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">3</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding instance, arg1 and arg2</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__BOOLEAN"
+              c:identifier="g_cclosure_marshal_VOID__BOOLEAN">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gboolean parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__BOXED"
+              c:identifier="g_cclosure_marshal_VOID__BOXED">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GBoxed* parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__CHAR"
+              c:identifier="g_cclosure_marshal_VOID__CHAR">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gchar arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gchar parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__DOUBLE"
+              c:identifier="g_cclosure_marshal_VOID__DOUBLE">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gdouble parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__ENUM"
+              c:identifier="g_cclosure_marshal_VOID__ENUM">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter denotes an enumeration type..</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the enumeration parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__FLAGS"
+              c:identifier="g_cclosure_marshal_VOID__FLAGS">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter denotes a flags type.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the flags parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__FLOAT"
+              c:identifier="g_cclosure_marshal_VOID__FLOAT">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gfloat parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__INT"
+              c:identifier="g_cclosure_marshal_VOID__INT">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gint parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__LONG"
+              c:identifier="g_cclosure_marshal_VOID__LONG">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, glong arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #glong parameter</doc>
           <type name="Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="g_value_array_free">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="copy" c:identifier="g_value_array_copy">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-      </method>
-      <method name="prepend" c:identifier="g_value_array_prepend">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="append" c:identifier="g_value_array_append">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insert" c:identifier="g_value_array_insert">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove" c:identifier="g_value_array_remove">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sort" c:identifier="g_value_array_sort">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="compare_func"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sort_with_data"
-              c:identifier="g_value_array_sort_with_data">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="compare_func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="ValueTransform"
-              c:type="GValueTransform"
-              doc="The type of value transformation functions which can be registered with
-g_value_register_transform_func().">
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__OBJECT"
+              c:identifier="g_cclosure_marshal_VOID__OBJECT">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, GObject *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="src_value" transfer-ownership="none">
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
-        <parameter name="dest_value" transfer-ownership="none">
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GObject* parameter</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
       </parameters>
-    </callback>
-    <callback name="WeakNotify"
-              c:type="GWeakNotify"
-              doc="A #GWeakNotify function can be added to an object as a callback that gets
-triggered when the object is finalized. Since the object is already being
-finalized when the #GWeakNotify is called, there&apos;s not much you could do
-with the object, apart from e.g. using its adress as hash-index or the like.">
+    </function>
+    <function name="cclosure_marshal_VOID__PARAM"
+              c:identifier="g_cclosure_marshal_VOID__PARAM">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
         </parameter>
-        <parameter name="where_the_object_was" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GParamSpec* parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
-    </callback>
-    <function name="boxed_copy" c:identifier="g_boxed_copy">
+    </function>
+    <function name="cclosure_marshal_VOID__POINTER"
+              c:identifier="g_cclosure_marshal_VOID__POINTER">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)&lt;/literal&gt;.</doc>
       <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+        <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="boxed_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
         </parameter>
-        <parameter name="src_boxed" transfer-ownership="none">
-          <type name="any" c:type="gconstpointer"/>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gpointer parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
-    <function name="boxed_free" c:identifier="g_boxed_free">
+    <function name="cclosure_marshal_VOID__STRING"
+              c:identifier="g_cclosure_marshal_VOID__STRING">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="boxed_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gchar* parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__UCHAR"
+              c:identifier="g_cclosure_marshal_VOID__UCHAR">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, guchar arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #guchar parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__UINT"
+              c:identifier="g_cclosure_marshal_VOID__UINT">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, guint arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #guint parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__UINT_POINTER"
+              c:identifier="g_cclosure_marshal_VOID__UINT_POINTER">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">3</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding instance, arg1 and arg2</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__ULONG"
+              c:identifier="g_cclosure_marshal_VOID__ULONG">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gulong arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gulong parameter</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cclosure_marshal_VOID__VARIANT"
+              c:identifier="g_cclosure_marshal_VOID__VARIANT"
+              version="2.26">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, GVariant *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">2</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GVariant* parameter</doc>
+          <type name="Value" c:type="GValue*"/>
         </parameter>
-        <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
-    <function name="boxed_type_init" c:identifier="g_boxed_type_init">
+    <function name="cclosure_marshal_VOID__VOID"
+              c:identifier="g_cclosure_marshal_VOID__VOID">
+      <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
+&lt;literal&gt;void (*callback) (gpointer instance, gpointer user_data)&lt;/literal&gt;.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
-    </function>
-    <function name="boxed_type_register_static"
-              c:identifier="g_boxed_type_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
       <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
+        <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
+          <type name="Closure" c:type="GClosure*"/>
         </parameter>
-        <parameter name="boxed_copy" transfer-ownership="none" scope="call">
-          <type name="BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
+        <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">ignored</doc>
+          <type name="Value" c:type="GValue*"/>
         </parameter>
-        <parameter name="boxed_free" transfer-ownership="none" scope="call">
-          <type name="BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
+        <parameter name="n_param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">1</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="param_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue array holding only the instance</doc>
+          <type name="Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="invocation_hint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="marshal_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
-    <function name="cclosure_new" c:identifier="g_cclosure_new">
+    <function name="cclosure_new"
+              c:identifier="g_cclosure_new"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new closure which invokes @callback_func with @user_data as
+the last parameter.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a new #GCClosure</doc>
         <type name="Closure" c:type="GClosure*"/>
       </return-value>
       <parameters>
-        <parameter name="callback_func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="1">
+        <parameter name="callback_func" transfer-ownership="none" closure="1">
+          <doc xml:whitespace="preserve">the function to invoke</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data to pass to @callback_func</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
+        <parameter name="destroy_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">destroy notify to be called when @user_data is no longer used</doc>
           <type name="ClosureNotify" c:type="GClosureNotify"/>
         </parameter>
       </parameters>
     </function>
-    <function name="cclosure_new_object" c:identifier="g_cclosure_new_object">
+    <function name="cclosure_new_object"
+              c:identifier="g_cclosure_new_object"
+              introspectable="0">
+      <doc xml:whitespace="preserve">A variant of g_cclosure_new() which uses @object as @user_data and
+calls g_object_watch_closure() on @object and the created
+closure. This function is useful when you have a callback closely
+associated with a #GObject, and want the callback to no longer run
+after the object is is freed.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a new #GCClosure</doc>
         <type name="Closure" c:type="GClosure*"/>
       </return-value>
       <parameters>
-        <parameter name="callback_func" transfer-ownership="none" scope="call">
+        <parameter name="callback_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to invoke</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject pointer to pass to @callback_func</doc>
           <type name="Object" c:type="GObject*"/>
         </parameter>
       </parameters>
     </function>
     <function name="cclosure_new_object_swap"
-              c:identifier="g_cclosure_new_object_swap">
+              c:identifier="g_cclosure_new_object_swap"
+              introspectable="0">
+      <doc xml:whitespace="preserve">A variant of g_cclosure_new_swap() which uses @object as @user_data
+and calls g_object_watch_closure() on @object and the created
+closure. This function is useful when you have a callback closely
+associated with a #GObject, and want the callback to no longer run
+after the object is is freed.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a new #GCClosure</doc>
         <type name="Closure" c:type="GClosure*"/>
       </return-value>
       <parameters>
-        <parameter name="callback_func" transfer-ownership="none" scope="call">
+        <parameter name="callback_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to invoke</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject pointer to pass to @callback_func</doc>
           <type name="Object" c:type="GObject*"/>
         </parameter>
       </parameters>
     </function>
-    <function name="cclosure_new_swap" c:identifier="g_cclosure_new_swap">
+    <function name="cclosure_new_swap"
+              c:identifier="g_cclosure_new_swap"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new closure which invokes @callback_func with @user_data as
+the first parameter.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a new #GCClosure</doc>
         <type name="Closure" c:type="GClosure*"/>
       </return-value>
       <parameters>
-        <parameter name="callback_func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="1">
+        <parameter name="callback_func" transfer-ownership="none" closure="1">
+          <doc xml:whitespace="preserve">the function to invoke</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data to pass to @callback_func</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
+        <parameter name="destroy_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">destroy notify to be called when @user_data is no longer used</doc>
           <type name="ClosureNotify" c:type="GClosureNotify"/>
         </parameter>
       </parameters>
     </function>
     <function name="enum_complete_type_info"
               c:identifier="g_enum_complete_type_info">
+      <doc xml:whitespace="preserve">This function is meant to be called from the complete_type_info()
+function of a #GTypePlugin implementation, as in the following
+example:
+|[
+static void
+my_enum_complete_type_info (GTypePlugin     *plugin,
+GType            g_type,
+GTypeInfo       *info,
+GTypeValueTable *value_table)
+{
+static const GEnumValue values[] = {
+{ MY_ENUM_FOO, "MY_ENUM_FOO", "foo" },
+{ MY_ENUM_BAR, "MY_ENUM_BAR", "bar" },
+{ 0, NULL, NULL }
+};
+g_enum_complete_type_info (type, info, values);
+}
+]|</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_enum_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type identifier of the type being completed</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypeInfo struct to be filled in</doc>
           <type name="TypeInfo" c:type="GTypeInfo*"/>
         </parameter>
         <parameter name="const_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0.</doc>
           <type name="EnumValue" c:type="GEnumValue*"/>
         </parameter>
       </parameters>
     </function>
-    <function name="enum_get_value" c:identifier="g_enum_get_value">
-      <return-value transfer-ownership="full">
+    <function name="enum_get_value"
+              c:identifier="g_enum_get_value"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the #GEnumValue for a value.
+member of the enumeration</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GEnumValue for @value, or %NULL if @value is not a</doc>
         <type name="EnumValue" c:type="GEnumValue*"/>
       </return-value>
       <parameters>
         <parameter name="enum_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GEnumClass</doc>
           <type name="EnumClass" c:type="GEnumClass*"/>
         </parameter>
         <parameter name="value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <doc xml:whitespace="preserve">the value to look up</doc>
+          <type name="gint" c:type="gint"/>
         </parameter>
       </parameters>
     </function>
     <function name="enum_get_value_by_name"
-              c:identifier="g_enum_get_value_by_name">
-      <return-value transfer-ownership="full">
+              c:identifier="g_enum_get_value_by_name"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Looks up a #GEnumValue by name.
+enumeration doesn't have a member with that name</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GEnumValue with name @name, or %NULL if the</doc>
         <type name="EnumValue" c:type="GEnumValue*"/>
       </return-value>
       <parameters>
         <parameter name="enum_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GEnumClass</doc>
           <type name="EnumClass" c:type="GEnumClass*"/>
         </parameter>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name to look up</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="enum_get_value_by_nick"
-              c:identifier="g_enum_get_value_by_nick">
-      <return-value transfer-ownership="full">
+              c:identifier="g_enum_get_value_by_nick"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Looks up a #GEnumValue by nickname.
+enumeration doesn't have a member with that nickname</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GEnumValue with nickname @nick, or %NULL if the</doc>
         <type name="EnumValue" c:type="GEnumValue*"/>
       </return-value>
       <parameters>
         <parameter name="enum_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GEnumClass</doc>
           <type name="EnumClass" c:type="GEnumClass*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the nickname to look up</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="enum_register_static"
               c:identifier="g_enum_register_static">
+      <doc xml:whitespace="preserve">Registers a new static enumeration type with the name @name.
+It is normally more convenient to let &lt;link
+linkend="glib-mkenums"&gt;glib-mkenums&lt;/link&gt; generate a
+my_enum_get_type() function from a usual C enumeration definition
+than to write one yourself using g_enum_register_static().</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A nul-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="const_static_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0. GObject keeps a reference to the data, so it cannot be stack-allocated.</doc>
           <type name="EnumValue" c:type="GEnumValue*"/>
         </parameter>
       </parameters>
@@ -3995,449 +6455,739 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="flags_complete_type_info"
               c:identifier="g_flags_complete_type_info">
+      <doc xml:whitespace="preserve">This function is meant to be called from the complete_type_info()
+function of a #GTypePlugin implementation, see the example for
+g_enum_complete_type_info() above.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_flags_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type identifier of the type being completed</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypeInfo struct to be filled in</doc>
           <type name="TypeInfo" c:type="GTypeInfo*"/>
         </parameter>
         <parameter name="const_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array of #GFlagsValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0.</doc>
           <type name="FlagsValue" c:type="GFlagsValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="flags_get_first_value"
-              c:identifier="g_flags_get_first_value">
-      <return-value transfer-ownership="full">
+              c:identifier="g_flags_get_first_value"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the first #GFlagsValue which is set in @value.
+none is set</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the first #GFlagsValue which is set in @value, or %NULL if</doc>
         <type name="FlagsValue" c:type="GFlagsValue*"/>
       </return-value>
       <parameters>
         <parameter name="flags_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GFlagsClass</doc>
           <type name="FlagsClass" c:type="GFlagsClass*"/>
         </parameter>
         <parameter name="value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the value</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
       </parameters>
     </function>
     <function name="flags_get_value_by_name"
-              c:identifier="g_flags_get_value_by_name">
-      <return-value transfer-ownership="full">
+              c:identifier="g_flags_get_value_by_name"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Looks up a #GFlagsValue by name.
+flag with that name</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GFlagsValue with name @name, or %NULL if there is no</doc>
         <type name="FlagsValue" c:type="GFlagsValue*"/>
       </return-value>
       <parameters>
         <parameter name="flags_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GFlagsClass</doc>
           <type name="FlagsClass" c:type="GFlagsClass*"/>
         </parameter>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name to look up</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="flags_get_value_by_nick"
-              c:identifier="g_flags_get_value_by_nick">
-      <return-value transfer-ownership="full">
+              c:identifier="g_flags_get_value_by_nick"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Looks up a #GFlagsValue by nickname.
+no flag with that nickname</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GFlagsValue with nickname @nick, or %NULL if there is</doc>
         <type name="FlagsValue" c:type="GFlagsValue*"/>
       </return-value>
       <parameters>
         <parameter name="flags_class" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GFlagsClass</doc>
           <type name="FlagsClass" c:type="GFlagsClass*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the nickname to look up</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="flags_register_static"
               c:identifier="g_flags_register_static">
+      <doc xml:whitespace="preserve">Registers a new static flags type with the name @name.
+It is normally more convenient to let &lt;link
+linkend="glib-mkenums"&gt;glib-mkenums&lt;/link&gt; generate a
+my_flags_get_type() function from a usual C enumeration definition
+than to write one yourself using g_flags_register_static().</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A nul-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="const_static_values" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array of #GFlagsValue structs for the possible flags values. The array is terminated by a struct with all members being 0. GObject keeps a reference to the data, so it cannot be stack-allocated.</doc>
           <type name="FlagsValue" c:type="GFlagsValue*"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_boolean" c:identifier="g_param_spec_boolean">
-      <return-value transfer-ownership="full">
+    <function name="gtype_get_type" c:identifier="g_gtype_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="object_get_type" c:identifier="g_object_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="param_spec_boolean"
+              c:identifier="g_param_spec_boolean"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_boxed" c:identifier="g_param_spec_boxed">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_boxed"
+              c:identifier="g_param_spec_boxed"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED
+derived property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="boxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%G_TYPE_BOXED derived type of this property</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_double" c:identifier="g_param_spec_double">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_char"
+              c:identifier="g_param_spec_char"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gint8" c:type="gint8"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gint8" c:type="gint8"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gint8" c:type="gint8"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_enum" c:identifier="g_param_spec_enum">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_double"
+              c:identifier="g_param_spec_double"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="minimum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="maximum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
+          <type name="ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_enum"
+              c:identifier="g_param_spec_enum"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="enum_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_ENUM</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gint" c:type="gint"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_flags" c:identifier="g_param_spec_flags">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_flags"
+              c:identifier="g_param_spec_flags"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="flags_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_FLAGS</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_float" c:identifier="g_param_spec_float">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_float"
+              c:identifier="g_param_spec_float"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gfloat" c:type="gfloat"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gfloat" c:type="gfloat"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gfloat" c:type="gfloat"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_gtype" c:identifier="g_param_spec_gtype">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_gtype"
+              c:identifier="g_param_spec_gtype"
+              version="2.10"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecGType instance specifying a
+%G_TYPE_GTYPE property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="is_a_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType whose subtypes are allowed as values of the property (use %G_TYPE_NONE for any type)</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_int" c:identifier="g_param_spec_int">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_int"
+              c:identifier="g_param_spec_int"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gint" c:type="gint"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gint" c:type="gint"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gint" c:type="gint"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_int64" c:identifier="g_param_spec_int64">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_int64"
+              c:identifier="g_param_spec_int64"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gint64" c:type="gint64"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gint64" c:type="gint64"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gint64" c:type="gint64"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_internal" c:identifier="g_param_spec_internal">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+    <function name="param_spec_internal"
+              c:identifier="g_param_spec_internal"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpec instance.
+A property name consists of segments consisting of ASCII letters and
+digits, separated by either the '-' or '_' character. The first
+character of a property name must be a letter. Names which violate these
+rules lead to undefined behaviour.
+When creating and looking up a #GParamSpec, either separator can be
+used, but they cannot be mixed. Using '-' is considerably more
+efficient and in fact required when using property names as detail
+strings for signals.
+Beyond the name, #GParamSpec&lt;!-- --&gt;s have two more descriptive
+strings associated with them, the @nick, which should be suitable
+for use as a label for the property in a property editor, and the
+e.g. a tooltip. The @nick and @blurb should ideally be localized.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly allocated #GParamSpec instance</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="param_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType for the property; must be derived from #G_TYPE_PARAM</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the canonical name of the property</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the nickname of the property</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a short description of the property</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GParamFlags</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_long" c:identifier="g_param_spec_long">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_long"
+              c:identifier="g_param_spec_long"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="glong" c:type="glong"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="glong" c:type="glong"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="glong" c:type="glong"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_object" c:identifier="g_param_spec_object">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_object"
+              c:identifier="g_param_spec_object"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT
+derived property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="object_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%G_TYPE_OBJECT derived type of this property</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_override" c:identifier="g_param_spec_override">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_override"
+              c:identifier="g_param_spec_override"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new property of type #GParamSpecOverride. This is used
+to direct operations to another paramspec, and will not be directly
+useful unless you are implementing a new base type similar to GObject.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the property.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="overridden" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The property that is being overridden</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_param" c:identifier="g_param_spec_param">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_param"
+              c:identifier="g_param_spec_param"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="param_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_PARAM</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_pointer" c:identifier="g_param_spec_pointer">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_pointer"
+              c:identifier="g_param_spec_pointer"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecPoiner instance specifying a pointer property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_string" c:identifier="g_param_spec_string">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_pool_new"
+              c:identifier="g_param_spec_pool_new"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecPool.
+If @type_prefixing is %TRUE, lookups in the newly created pool will
+allow to specify the owner as a colon-separated prefix of the
+property name, like "GtkContainer:border-width". This feature is
+deprecated, so you should always set @type_prefixing to %FALSE.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly allocated #GParamSpecPool.</doc>
+        <type name="ParamSpecPool" c:type="GParamSpecPool*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type_prefixing" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Whether the pool will support type-prefixed property names.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_string"
+              c:identifier="g_param_spec_string"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecString instance.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
@@ -4448,109 +7198,273 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
-    <function name="param_spec_uint" c:identifier="g_param_spec_uint">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_uchar"
+              c:identifier="g_param_spec_uchar"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="guint8" c:type="guint8"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="guint8" c:type="guint8"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="guint8" c:type="guint8"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_uint64" c:identifier="g_param_spec_uint64">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_uint"
+              c:identifier="g_param_spec_uint"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="param_spec_ulong" c:identifier="g_param_spec_ulong">
-      <return-value transfer-ownership="full">
+    <function name="param_spec_uint64"
+              c:identifier="g_param_spec_uint64"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="minimum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="guint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="maximum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="guint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="guint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
+          <type name="ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_ulong"
+              c:identifier="g_param_spec_ulong"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG
+property.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="minimum" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">minimum value for the property specified</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
         <parameter name="maximum" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">maximum value for the property specified</doc>
+          <type name="gulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
+          <type name="ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_unichar"
+              c:identifier="g_param_spec_unichar"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecUnichar instance specifying a %G_TYPE_UINT
+property. #GValue structures for this property can be accessed with
+g_value_set_uint() and g_value_get_uint().
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="default_value" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">default value for the property specified</doc>
+          <type name="gunichar" c:type="gunichar"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_spec_value_array"
-              c:identifier="g_param_spec_value_array">
-      <return-value transfer-ownership="full">
+              c:identifier="g_param_spec_value_array"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecValueArray instance specifying a
+%G_TYPE_VALUE_ARRAY property. %G_TYPE_VALUE_ARRAY is a
+%G_TYPE_BOXED type, as such, #GValue structures for this property
+can be accessed with g_value_set_boxed() and g_value_get_boxed().
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly created parameter specification</doc>
         <type name="ParamSpec" c:type="GParamSpec*"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="element_spec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GParamSpec describing the elements contained in arrays of this property, may be %NULL</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
+          <type name="ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_variant"
+              c:identifier="g_param_spec_variant"
+              version="2.26"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #GParamSpecVariant instance specifying a #GVariant
+property.
+If @default_value is floating, it is consumed.
+See g_param_spec_internal() for details on property names.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
+        <type name="ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">canonical name of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">nick name for the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description of the property specified</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GVariantType</doc>
+          <type name="GLib.VariantType" c:type="GVariantType*"/>
+        </parameter>
+        <parameter name="default_value"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a #GVariant of type @type to use as the default value, or %NULL</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the property specified</doc>
           <type name="ParamFlags" c:type="GParamFlags"/>
         </parameter>
       </parameters>
@@ -4562,136 +7476,199 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="param_type_register_static"
               c:identifier="g_param_type_register_static">
+      <doc xml:whitespace="preserve">Registers @name as the name of a new static type derived from
+#G_TYPE_PARAM. The type system uses the information contained in
+the #GParamSpecTypeInfo structure pointed to by @info to manage the
+#GParamSpec type and its instances.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">0-terminated string used as the name of the new #GParamSpec type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="pspec_info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GParamSpecTypeInfo for this #GParamSpec type.</doc>
           <type name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo*"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_value_convert" c:identifier="g_param_value_convert">
+      <doc xml:whitespace="preserve">Transforms @src_value into @dest_value if possible, and then
+validates @dest_value, in order for it to conform to @pspec.  If
+transformed @dest_value complied to @pspec without modifications.
+See also g_value_type_transformable(), g_value_transform() and
+g_param_value_validate().
+%FALSE otherwise and @dest_value is left untouched.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">%TRUE if transformation and validation were successful,</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="src_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">souce #GValue</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="dest_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">destination #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="strict_validation" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">%TRUE requires @dest_value to conform to @pspec without modifications</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_value_defaults"
               c:identifier="g_param_value_defaults">
+      <doc xml:whitespace="preserve">Checks whether @value contains the default value as specified in @pspec.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">whether @value contains the canonical default for this @pspec</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_value_set_default"
               c:identifier="g_param_value_set_default">
+      <doc xml:whitespace="preserve">Sets @value to its default value as specified in @pspec.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_value_validate"
               c:identifier="g_param_value_validate">
+      <doc xml:whitespace="preserve">Ensures that the contents of @value comply with the specifications
+set out by @pspec. For example, a #GParamSpecInt might require
+that integers stored in @value may not be smaller than -42 and not be
+greater than +42. If @value contains an integer outside of this range,
+it is modified accordingly, so the resulting value will fit into the
+range -42 .. +42.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">whether modifying @value was necessary to ensure validity</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="param_values_cmp" c:identifier="g_param_values_cmp">
+      <doc xml:whitespace="preserve">Compares @value1 with @value2 according to @pspec, and return -1, 0 or +1,
+if @value1 is found to be less than, equal to or greater than @value2,
+respectively.</doc>
       <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
+        <doc xml:whitespace="preserve">-1, 0 or +1, for a less than, equal to or greater than result</doc>
+        <type name="gint" c:type="gint"/>
       </return-value>
       <parameters>
         <parameter name="pspec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
           <type name="ParamSpec" c:type="GParamSpec*"/>
         </parameter>
         <parameter name="value1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="value2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="pointer_type_register_static"
               c:identifier="g_pointer_type_register_static">
+      <doc xml:whitespace="preserve">Creates a new %G_TYPE_POINTER derived type id for a new
+pointer type with name @name.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a new %G_TYPE_POINTER derived type id for @name.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the new pointer type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_accumulator_true_handled"
-              c:identifier="g_signal_accumulator_true_handled">
+              c:identifier="g_signal_accumulator_true_handled"
+              version="2.4">
+      <doc xml:whitespace="preserve">A predefined #GSignalAccumulator for signals that return a
+boolean values. The behavior that this accumulator gives is
+callbacks will be invoked, while a return of %FALSE allows
+the emission to coninue. The idea here is that a %TRUE return
+indicates that the callback &lt;emphasis&gt;handled&lt;/emphasis&gt; the signal,
+and no further handling is needed.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">standard #GSignalAccumulator result</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="ihint" transfer-ownership="none">
+          <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
         </parameter>
         <parameter name="return_accu" transfer-ownership="none">
+          <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="handler_return" transfer-ownership="none">
+          <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="dummy" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_add_emission_hook"
               c:identifier="g_signal_add_emission_hook">
+      <doc xml:whitespace="preserve">Adds an emission hook for a signal, which will get called for any emission
+of that signal, independent of the instance. This is possible only
+for signals which don't have #G_SIGNAL_NO_HOOKS flag set.</doc>
       <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+        <doc xml:whitespace="preserve">the hook id, for later use with g_signal_remove_emission_hook().</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal identifier, as returned by g_signal_lookup().</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail on which to call the hook.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="hook_func"
@@ -4699,38 +7676,54 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
                    scope="notified"
                    closure="3"
                    destroy="4">
+          <doc xml:whitespace="preserve">a #GSignalEmissionHook function.</doc>
           <type name="SignalEmissionHook" c:type="GSignalEmissionHook"/>
         </parameter>
         <parameter name="hook_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data for @hook_func.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="data_destroy" transfer-ownership="none" scope="call">
+        <parameter name="data_destroy" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">a #GDestroyNotify for @hook_data.</doc>
           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_chain_from_overridden"
               c:identifier="g_signal_chain_from_overridden">
+      <doc xml:whitespace="preserve">Calls the original class closure of a signal. This function should only
+be called from an overridden class closure; see
+g_signal_override_class_closure() and
+g_signal_override_class_handler().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance_and_params" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the argument list of the signal emission. The first element in the array is a #GValue for the instance the signal is being emitted on. The rest are any arguments to be passed to the signal.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location for the return value.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_chain_from_overridden_handler"
-              c:identifier="g_signal_chain_from_overridden_handler">
+              c:identifier="g_signal_chain_from_overridden_handler"
+              version="2.18"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Calls the original class closure of a signal. This function should
+only be called from an overridden class closure; see
+g_signal_override_class_closure() and
+g_signal_override_class_handler().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter transfer-ownership="none">
           <varargs>
@@ -4740,110 +7733,168 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="signal_connect_closure"
               c:identifier="g_signal_connect_closure">
+      <doc xml:whitespace="preserve">Connects a closure to a signal for a particular object.</doc>
       <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+        <doc xml:whitespace="preserve">the handler id</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance to connect to.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the closure to connect.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="after" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">whether the handler should be called before or after the default handler of the signal.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_connect_closure_by_id"
               c:identifier="g_signal_connect_closure_by_id">
+      <doc xml:whitespace="preserve">Connects a closure to a signal for a particular object.</doc>
       <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+        <doc xml:whitespace="preserve">the handler id</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance to connect to.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the id of the signal.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the closure to connect.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="after" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">whether the handler should be called before or after the default handler of the signal.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
       </parameters>
     </function>
-    <function name="signal_connect_data" c:identifier="g_signal_connect_data">
+    <function name="signal_connect_data"
+              c:identifier="g_signal_connect_data"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Connects a #GCallback function to a signal for a particular object. Similar
+to g_signal_connect(), but allows to provide a #GClosureNotify for the data
+which will be called when the signal handler is disconnected and no longer
+used. Specify @connect_flags if you need &lt;literal&gt;..._after()&lt;/literal&gt; or
+&lt;literal&gt;..._swapped()&lt;/literal&gt; variants of this function.</doc>
       <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+        <doc xml:whitespace="preserve">the handler id</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance to connect to.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
-        <parameter name="c_handler"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="3">
+        <parameter name="c_handler" transfer-ownership="none" closure="3">
+          <doc xml:whitespace="preserve">the #GCallback to connect.</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">data to pass to @c_handler calls.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
+        <parameter name="destroy_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GClosureNotify for @data.</doc>
           <type name="ClosureNotify" c:type="GClosureNotify"/>
         </parameter>
         <parameter name="connect_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GConnectFlags.</doc>
           <type name="ConnectFlags" c:type="GConnectFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_connect_object"
-              c:identifier="g_signal_connect_object">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+              c:identifier="g_signal_connect_object"
+              introspectable="0">
+      <doc xml:whitespace="preserve">This is similar to g_signal_connect_data(), but uses a closure which
+ensures that the @gobject stays alive during the call to @c_handler
+by temporarily adding a reference count to @gobject.
+Note that there is a bug in GObject that makes this function
+much less useful than it might seem otherwise. Once @gobject is
+disposed, the callback will no longer be called, but, the signal
+handler is &lt;emphasis&gt;not&lt;/emphasis&gt; currently disconnected. If the
+matter, since the signal will automatically be removed, but
+if @instance persists, then the signal handler will leak. You
+should not remove the signal yourself because in a future versions of
+GObject, the handler &lt;emphasis&gt;will&lt;/emphasis&gt; automatically
+be disconnected.
+It's possible to work around this problem in a way that will
+continue to work with future versions of GObject by checking
+that the signal handler is still connected before disconnected it:
+&lt;informalexample&gt;&lt;programlisting&gt;
+if (g_signal_handler_is_connected (instance, id))
+g_signal_handler_disconnect (instance, id);
+&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the handler id.</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance to connect to.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
-        <parameter name="c_handler" transfer-ownership="none" scope="call">
+        <parameter name="c_handler" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GCallback to connect.</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
         <parameter name="gobject" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the object to pass as data to @c_handler.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="connect_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GConnnectFlags.</doc>
           <type name="ConnectFlags" c:type="GConnectFlags"/>
         </parameter>
       </parameters>
     </function>
-    <function name="signal_emit" c:identifier="g_signal_emit">
+    <function name="signal_emit"
+              c:identifier="g_signal_emit"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Emits a signal.
+Note that g_signal_emit() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal id</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter transfer-ownership="none">
@@ -4852,15 +7903,22 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
         </parameter>
       </parameters>
     </function>
-    <function name="signal_emit_by_name" c:identifier="g_signal_emit_by_name">
+    <function name="signal_emit_by_name"
+              c:identifier="g_signal_emit_by_name"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Emits a signal.
+Note that g_signal_emit_by_name() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter transfer-ownership="none">
@@ -4869,146 +7927,247 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
         </parameter>
       </parameters>
     </function>
+    <function name="signal_emit_valist"
+              c:identifier="g_signal_emit_valist"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Emits a signal.
+Note that g_signal_emit_valist() resets the return value to the default
+if no handlers are connected, in contrast to g_signal_emitv().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="instance" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="signal_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the signal id</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail</doc>
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="var_args" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a list of parameters to be passed to the signal, followed by a location for the return value. If the return type of the signal is #G_TYPE_NONE, the return value location can be omitted.</doc>
+          <type name="va_list" c:type="va_list"/>
+        </parameter>
+      </parameters>
+    </function>
     <function name="signal_emitv" c:identifier="g_signal_emitv">
+      <doc xml:whitespace="preserve">Emits a signal.
+Note that g_signal_emitv() doesn't change @return_value if no handlers are
+connected, in contrast to g_signal_emit() and g_signal_emit_valist().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance_and_params" transfer-ownership="none">
+          <doc xml:whitespace="preserve">argument list for the signal emission. The first element in the array is a #GValue for the instance the signal is being emitted on. The rest are any arguments to be passed to the signal.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal id</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="return_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location to store the return value of the signal emission.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_get_invocation_hint"
-              c:identifier="g_signal_get_invocation_hint">
-      <return-value transfer-ownership="full">
+              c:identifier="g_signal_get_invocation_hint"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the invocation hint of the innermost signal emission of instance.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the invocation hint of the innermost signal emission.</doc>
         <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the instance to query</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handler_block"
               c:identifier="g_signal_handler_block">
+      <doc xml:whitespace="preserve">Blocks a handler of an instance so it will not be called during any
+signal emissions unless it is unblocked again. Thus "blocking" a
+signal handler means to temporarily deactive it, a signal handler
+has to be unblocked exactly the same amount of times it has been
+blocked before to become active again.
+The @handler_id has to be a valid signal handler id, connected to a
+signal of @instance.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to block the signal handler of.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">Handler id of the handler to be blocked.</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handler_disconnect"
               c:identifier="g_signal_handler_disconnect">
+      <doc xml:whitespace="preserve">Disconnects a handler from an instance so it will not be called during
+any future or currently ongoing emissions of the signal it has been
+connected to. The @handler_id becomes invalid and may be reused.
+The @handler_id has to be a valid signal handler id, connected to a
+signal of @instance.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to remove the signal handler from.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">Handler id of the handler to be disconnected.</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handler_find" c:identifier="g_signal_handler_find">
+      <doc xml:whitespace="preserve">Finds the first signal handler that matches certain selection criteria.
+The criteria mask is passed as an OR-ed combination of #GSignalMatchType
+flags, and the criteria values are passed as arguments.
+The match @mask has to be non-0 for successful matches.
+If no handler was found, 0 is returned.</doc>
       <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
+        <doc xml:whitespace="preserve">A valid non-0 signal handler id for a successful match.</doc>
+        <type name="gulong" c:type="gulong"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance owning the signal handler to be found.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="mask" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handler has to match.</doc>
           <type name="SignalMatchType" c:type="GSignalMatchType"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Signal the handler has to be connected to.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal detail the handler has to be connected to.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure the handler will invoke.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The C closure callback of the handler (useless for non-C closures).</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The closure data of the handler's closure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handler_is_connected"
               c:identifier="g_signal_handler_is_connected">
+      <doc xml:whitespace="preserve">Returns whether @handler_id is the id of a handler connected to @instance.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">whether @handler_id identifies a handler connected to @instance.</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance where a signal handler is sought.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">the handler id.</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handler_unblock"
               c:identifier="g_signal_handler_unblock">
+      <doc xml:whitespace="preserve">Undoes the effect of a previous g_signal_handler_block() call.  A
+blocked handler is skipped during signal emissions and will not be
+invoked, unblocking it (for exactly the amount of times it has been
+blocked before) reverts its "blocked" state, so the handler will be
+recognized by the signal system and is called upon future or
+currently ongoing signal emissions (since the order in which
+handlers are called during signal emissions is deterministic,
+whether the unblocked handler in question is called as part of a
+currently ongoing emission depends on how far that emission has
+proceeded yet).
+The @handler_id has to be a valid id of a signal handler that is
+connected to a signal of @instance and is currently blocked.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to unblock the signal handler of.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">Handler id of the handler to be unblocked.</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handlers_block_matched"
               c:identifier="g_signal_handlers_block_matched">
+      <doc xml:whitespace="preserve">Blocks all handlers on an instance that match a certain selection criteria.
+The criteria mask is passed as an OR-ed combination of #GSignalMatchType
+flags, and the criteria values are passed as arguments.
+Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
+If no handlers were found, 0 is returned, the number of blocked handlers
+otherwise.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to block handlers from.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="mask" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
           <type name="SignalMatchType" c:type="GSignalMatchType"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
@@ -5019,85 +8178,129 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handlers_disconnect_matched"
               c:identifier="g_signal_handlers_disconnect_matched">
+      <doc xml:whitespace="preserve">Disconnects all handlers on an instance that match a certain
+selection criteria. The criteria mask is passed as an OR-ed
+combination of #GSignalMatchType flags, and the criteria values are
+passed as arguments.  Passing at least one of the
+%G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or
+%G_SIGNAL_MATCH_DATA match flags is required for successful
+matches.  If no handlers were found, 0 is returned, the number of
+disconnected handlers otherwise.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to remove handlers from.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="mask" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
           <type name="SignalMatchType" c:type="GSignalMatchType"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_handlers_unblock_matched"
               c:identifier="g_signal_handlers_unblock_matched">
+      <doc xml:whitespace="preserve">Unblocks all handlers on an instance that match a certain selection
+criteria. The criteria mask is passed as an OR-ed combination of
+#GSignalMatchType flags, and the criteria values are passed as arguments.
+Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
+If no handlers were found, 0 is returned, the number of unblocked handlers
+otherwise. The match criteria should not apply to any handlers that are
+not currently blocked.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The instance to unblock handlers from.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="mask" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
           <type name="SignalMatchType" c:type="GSignalMatchType"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
         <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_has_handler_pending"
               c:identifier="g_signal_has_handler_pending">
+      <doc xml:whitespace="preserve">Returns whether there are any handlers connected to @instance for the
+given signal id and detail.
+One example of when you might use this is when the arguments to the
+signal are difficult to compute. A class implementor may opt to not
+emit the signal if no one is attached anyway, thus saving the cost
+of building the arguments.
+otherwise.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">%TRUE if a handler is connected to the signal, %FALSE</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the object whose signal handlers are sought.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal id.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="may_be_blocked" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">whether blocked handlers should count as match.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
       </parameters>
     </function>
@@ -5107,75 +8310,111 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </return-value>
     </function>
     <function name="signal_list_ids" c:identifier="g_signal_list_ids">
-      <return-value transfer-ownership="full">
-        <type name="uint" c:type="guint*"/>
+      <doc xml:whitespace="preserve">Lists the signals by id that a certain instance or interface type
+created. Further information about the signals can be acquired through
+g_signal_query().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Newly allocated array of signal IDs.</doc>
+        <type name="guint" c:type="guint*"/>
       </return-value>
       <parameters>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Instance or interface type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="n_ids" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
+        <parameter name="n_ids" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location to store the number of signal ids for @itype.</doc>
+          <type name="guint" c:type="guint*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_lookup" c:identifier="g_signal_lookup">
+      <doc xml:whitespace="preserve">Given the name of the signal and the type of object it connects to, gets
+the signal's identifying integer. Emitting the signal by number is
+somewhat faster than using the name each time.
+Also tries the ancestors of the given type.
+See g_signal_new() for details on allowed signal names.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">the signal's identifying number, or 0 if no signal was found.</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the signal's name.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type that the signal operates on.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_name" c:identifier="g_signal_name">
+      <doc xml:whitespace="preserve">Given the signal's identifier, finds its name.
+Two different signals may have the same name, if they have differing types.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the signal name, or %NULL if the signal number was invalid.</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal's identifying number.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
       </parameters>
     </function>
-    <function name="signal_new" c:identifier="g_signal_new">
+    <function name="signal_new" c:identifier="g_signal_new" introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
+A signal name consists of segments consisting of ASCII letters and
+digits, separated by either the '-' or '_' character. The first
+character of a signal name must be a letter. Names which violate these
+rules lead to undefined behaviour of the GSignal system.
+When registering a signal and looking up a signal, either separator can
+be used, but they cannot be mixed.
+If 0 is used for @class_offset subclasses cannot override the class handler
+in their &lt;code&gt;class_init&lt;/code&gt; method by doing
+&lt;code&gt;super_class-&gt;signal_handler = my_signal_handler&lt;/code&gt;. Instead they
+will have to use g_signal_override_class_handler().</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">the signal id</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the signal</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="signal_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GSignalFlags specifying detail of when the default handler is to be invoked. You should at least specify %G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.</doc>
           <type name="SignalFlags" c:type="GSignalFlags"/>
         </parameter>
         <parameter name="class_offset" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">The offset of the function pointer in the class structure for this type. Used to invoke a class method generically. Pass 0 to not associate a class method slot with this signal.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
+        <parameter name="accumulator" transfer-ownership="none" closure="5">
+          <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
         </parameter>
         <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="c_marshaller" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
         </parameter>
         <parameter name="return_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the number of parameter types to follow.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter transfer-ownership="none">
           <varargs>
@@ -5184,40 +8423,60 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </parameters>
     </function>
     <function name="signal_new_class_handler"
-              c:identifier="g_signal_new_class_handler">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+              c:identifier="g_signal_new_class_handler"
+              version="2.18"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
+This is a variant of g_signal_new() that takes a C callback instead
+off a class offset for the signal's class handler. This function
+doesn't need a function pointer exposed in the class structure of
+an object definition, instead the function pointer is passed
+directly and can be overriden by derived classes with
+g_signal_override_class_closure() or
+g_signal_override_class_handler()and chained to with
+g_signal_chain_from_overridden() or
+g_signal_chain_from_overridden_handler().
+See g_signal_new() for information about signal names.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the signal id</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the signal</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="signal_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GSignalFlags specifying detail of when the default handler is to be invoked. You should at least specify %G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.</doc>
           <type name="SignalFlags" c:type="GSignalFlags"/>
         </parameter>
-        <parameter name="class_handler" transfer-ownership="none" scope="call">
+        <parameter name="class_handler" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GCallback which acts as class implementation of this signal. Used to invoke a class method generically. Pass %NULL to not associate a class method with this signal.</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
+        <parameter name="accumulator" transfer-ownership="none" closure="5">
+          <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
         </parameter>
         <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="c_marshaller" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
         </parameter>
         <parameter name="return_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the number of parameter types to follow.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter transfer-ownership="none">
           <varargs>
@@ -5225,240 +8484,408 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
         </parameter>
       </parameters>
     </function>
-    <function name="signal_newv" c:identifier="g_signal_newv">
+    <function name="signal_new_valist"
+              c:identifier="g_signal_new_valist"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
+See g_signal_new() for details on allowed signal names.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">the signal id</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the signal</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="signal_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GSignalFlags specifying detail of when the default handler is to be invoked. You should at least specify %G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST.</doc>
           <type name="SignalFlags" c:type="GSignalFlags"/>
         </parameter>
         <parameter name="class_closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure to invoke on signal emission; may be %NULL.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
+        <parameter name="accumulator" transfer-ownership="none" closure="5">
+          <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
+          <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
+        </parameter>
+        <parameter name="accu_data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="c_marshaller" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
+          <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
+        </parameter>
+        <parameter name="return_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="n_params" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of parameter types in @args.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="args" transfer-ownership="none">
+          <doc xml:whitespace="preserve">va_list of #GType, one for each parameter.</doc>
+          <type name="va_list" c:type="va_list"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="signal_newv"
+              c:identifier="g_signal_newv"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
+See g_signal_new() for details on allowed signal names.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the signal id</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the signal</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="signal_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a combination of #GSignalFlags specifying detail of when the default handler is to be invoked. You should at least specify %G_SIGNAL_RUN_FIRST or %G_SIGNAL_RUN_LAST</doc>
+          <type name="SignalFlags" c:type="GSignalFlags"/>
+        </parameter>
+        <parameter name="class_closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The closure to invoke on signal emission; may be %NULL</doc>
+          <type name="Closure" c:type="GClosure*"/>
+        </parameter>
+        <parameter name="accumulator" transfer-ownership="none" closure="5">
+          <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL</doc>
           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
         </parameter>
         <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">user data for the @accumulator</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="c_marshaller" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations</doc>
           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
         </parameter>
         <parameter name="return_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the length of @param_types</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-        <parameter name="param_types"
-                   direction="out"
-                   transfer-ownership="full">
+        <parameter name="param_types" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of types, one for each parameter</doc>
           <type name="GType" c:type="GType*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_override_class_closure"
               c:identifier="g_signal_override_class_closure">
+      <doc xml:whitespace="preserve">Overrides the class closure (i.e. the default handler) for the given signal
+for emissions on instances of @instance_type. @instance_type must be derived
+from the type to which the signal belongs.
+See g_signal_chain_from_overridden() and
+g_signal_chain_from_overridden_handler() for how to chain up to the
+parent class closure from inside the overridden one.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal id</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the instance type on which to override the class closure for the signal.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="class_closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the closure.</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_override_class_handler"
-              c:identifier="g_signal_override_class_handler">
+              c:identifier="g_signal_override_class_handler"
+              version="2.18"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Overrides the class closure (i.e. the default handler) for the
+given signal for emissions on instances of @instance_type with
+callabck @class_handler. @instance_type must be derived from the
+type to which the signal belongs.
+See g_signal_chain_from_overridden() and
+g_signal_chain_from_overridden_handler() for how to chain up to the
+parent class closure from inside the overridden one.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name for the signal</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the instance type on which to override the class handler for the signal.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="class_handler" transfer-ownership="none" scope="call">
+        <parameter name="class_handler" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the handler.</doc>
           <type name="Callback" c:type="GCallback"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_parse_name" c:identifier="g_signal_parse_name">
+      <doc xml:whitespace="preserve">Internal function to parse a signal name into its @signal_id
+and @detail quark.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">Whether the signal name could successfully be parsed and @signal_id_p and @detail_p contain valid return values.</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The interface/instance type that introduced "signal-name".</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="signal_id_p"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
+        <parameter name="signal_id_p" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location to store the signal id.</doc>
+          <type name="guint" c:type="guint*"/>
         </parameter>
         <parameter name="detail_p" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location to store the detail quark.</doc>
           <type name="GLib.Quark" c:type="GQuark*"/>
         </parameter>
         <parameter name="force_detail_quark" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
+          <doc xml:whitespace="preserve">%TRUE forces creation of a #GQuark for the detail.</doc>
+          <type name="gboolean" c:type="gboolean"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_query" c:identifier="g_signal_query">
+      <doc xml:whitespace="preserve">Queries the signal system for in-depth information about a
+specific signal. This function will fill in a user-provided
+structure to hold signal-specific information. If an invalid
+signal id is passed in, the @signal_id member of the #GSignalQuery
+is 0. All members filled into the #GSignalQuery structure should
+be considered constant and have to be left untouched.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">The signal id of the signal to query information for.</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="query" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A user provided structure that is filled in with constant values upon success.</doc>
           <type name="SignalQuery" c:type="GSignalQuery*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_remove_emission_hook"
               c:identifier="g_signal_remove_emission_hook">
+      <doc xml:whitespace="preserve">Deletes an emission hook.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the id of the signal</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="hook_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
+          <doc xml:whitespace="preserve">the id of the emission hook, as returned by g_signal_add_emission_hook()</doc>
+          <type name="gulong" c:type="gulong"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_stop_emission"
               c:identifier="g_signal_stop_emission">
+      <doc xml:whitespace="preserve">Stops a signal's current emission.
+This will prevent the default method from running, if the signal was
+%G_SIGNAL_RUN_LAST and you connected normally (i.e. without the "after"
+flag).
+Prints a warning if used on a signal which isn't being emitted.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the object whose signal handlers you wish to stop.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the signal identifier, as returned by g_signal_lookup().</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
         <parameter name="detail" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the detail which the signal was emitted with.</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_stop_emission_by_name"
               c:identifier="g_signal_stop_emission_by_name">
+      <doc xml:whitespace="preserve">Stops a signal's current emission.
+This is just like g_signal_stop_emission() except it will look up the
+signal id for you.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the object whose signal handlers you wish to stop.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="detailed_signal" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="signal_type_cclosure_new"
               c:identifier="g_signal_type_cclosure_new">
+      <doc xml:whitespace="preserve">Creates a new closure which invokes the function found at the offset
+identified by @itype.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a new #GCClosure</doc>
         <type name="Closure" c:type="GClosure*"/>
       </return-value>
       <parameters>
         <parameter name="itype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType identifier of an interface or classed type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="struct_offset" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">the offset of the member function of @itype's class structure which is to be invoked by the new closure</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
       </parameters>
     </function>
     <function name="source_set_closure" c:identifier="g_source_set_closure">
+      <doc xml:whitespace="preserve">Set the callback for a source as a #GClosure.
+If the source is not one of the standard GLib types, the @closure_callback
+and @closure_marshal fields of the #GSourceFuncs structure must have been
+filled in with pointers to appropriate functions.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="source" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the source</doc>
           <type name="GLib.Source" c:type="GSource*"/>
         </parameter>
         <parameter name="closure" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GClosure</doc>
           <type name="Closure" c:type="GClosure*"/>
         </parameter>
       </parameters>
     </function>
     <function name="strdup_value_contents"
               c:identifier="g_strdup_value_contents">
+      <doc xml:whitespace="preserve">Return a newly allocated string, which describes the contents of a
+#GValue.  The main purpose of this function is to describe #GValue
+contents for debugging output, the way in which the contents are
+described may change between different GLib versions.</doc>
       <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">Newly allocated string.</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#GValue which contents are to be described.</doc>
           <type name="Value" c:type="GValue*"/>
         </parameter>
       </parameters>
     </function>
+    <function name="strv_get_type" c:identifier="g_strv_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
     <function name="type_add_class_cache_func"
-              c:identifier="g_type_add_class_cache_func">
+              c:identifier="g_type_add_class_cache_func"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Adds a #GTypeClassCacheFunc to be called before the reference count of a
+class goes from one to zero. This can be used to prevent premature class
+destruction. All installed #GTypeClassCacheFunc functions will be chained
+until one of them returns %TRUE. The functions have to check the class id
+passed in to figure whether they actually want to cache the class of this
+type, since all classes are routed through the same #GTypeClassCacheFunc
+chain.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="cache_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">data to be passed to @cache_func</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="cache_func" transfer-ownership="none" scope="call">
+        <parameter name="cache_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GTypeClassCacheFunc</doc>
           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_add_class_private"
-              c:identifier="g_type_add_class_private">
+              c:identifier="g_type_add_class_private"
+              version="2.24">
+      <doc xml:whitespace="preserve">Registers a private class structure for a classed type;
+when the class is allocated, the private structures for
+the class and all of its parent types are allocated
+sequentially in the same memory block as the public
+structures. This function should be called in the
+type's get_type() function after the type is registered.
+The private structure can be retrieved using the
+G_TYPE_CLASS_GET_PRIVATE() macro.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="class_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">GType of an classed type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="private_size" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
+          <doc xml:whitespace="preserve">size of private structure.</doc>
+          <type name="gulong" c:type="gsize"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_add_interface_check"
-              c:identifier="g_type_add_interface_check">
+              c:identifier="g_type_add_interface_check"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Adds a function to be called after an interface vtable is
+initialized for any class (i.e. after the @interface_init member of
+#GInterfaceInfo has been called).
+This function is useful when you want to check an invariant that
+depends on the interfaces of a class. For instance, the
+implementation of #GObject uses this facility to check that an
+object implements all of the properties that are defined on its
+interfaces.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">data to pass to @check_func</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="check_func" transfer-ownership="none" scope="call">
+        <parameter name="check_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">function to be called after each interface is initialized.</doc>
           <type name="TypeInterfaceCheckFunc"
                 c:type="GTypeInterfaceCheckFunc"/>
         </parameter>
@@ -5466,41 +8893,54 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="type_add_interface_dynamic"
               c:identifier="g_type_add_interface_dynamic">
+      <doc xml:whitespace="preserve">Adds the dynamic @interface_type to @instantiable_type. The information
+contained in the #GTypePlugin structure pointed to by @plugin
+is used to manage the relationship.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType value of an instantiable type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType value of an interface type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GTypePlugin structure to retrieve the #GInterfaceInfo from.</doc>
           <type name="TypePlugin" c:type="GTypePlugin*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_add_interface_static"
               c:identifier="g_type_add_interface_static">
+      <doc xml:whitespace="preserve">Adds the static @interface_type to @instantiable_type.  The information
+contained in the #GTypeInterfaceInfo structure pointed to by @info
+is used to manage the relationship.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#GType value of an instantiable type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#GType value of an interface type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GInterfaceInfo structure for this (@instance_type, @interface_type) combination.</doc>
           <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_check_class_cast"
-              c:identifier="g_type_check_class_cast">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_check_class_cast"
+              introspectable="0">
+      <return-value>
         <type name="TypeClass" c:type="GTypeClass*"/>
       </return-value>
       <parameters>
@@ -5515,7 +8955,7 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     <function name="type_check_class_is_a"
               c:identifier="g_type_check_class_is_a">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
@@ -5527,18 +8967,22 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </parameters>
     </function>
     <function name="type_check_instance" c:identifier="g_type_check_instance">
+      <doc xml:whitespace="preserve">Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE()
+macro.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A valid #GTypeInstance structure.</doc>
           <type name="TypeInstance" c:type="GTypeInstance*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_check_instance_cast"
-              c:identifier="g_type_check_instance_cast">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_check_instance_cast"
+              introspectable="0">
+      <return-value>
         <type name="TypeInstance" c:type="GTypeInstance*"/>
       </return-value>
       <parameters>
@@ -5553,7 +8997,7 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     <function name="type_check_instance_is_a"
               c:identifier="g_type_check_instance_is_a">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
@@ -5567,7 +9011,7 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     <function name="type_check_is_value_type"
               c:identifier="g_type_check_is_value_type">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
@@ -5577,7 +9021,7 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="type_check_value" c:identifier="g_type_check_value">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="value" transfer-ownership="none">
@@ -5588,7 +9032,7 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     <function name="type_check_value_holds"
               c:identifier="g_type_check_value_holds">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="value" transfer-ownership="none">
@@ -5600,326 +9044,565 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </parameters>
     </function>
     <function name="type_children" c:identifier="g_type_children">
-      <return-value transfer-ownership="full">
+      <doc xml:whitespace="preserve">Return a newly allocated and 0-terminated array of type IDs, listing the
+child types of @type. The return value has to be g_free()ed after use.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Newly allocated and 0-terminated array of child types.</doc>
         <type name="GType" c:type="GType*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The parent type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="n_children" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
+        <parameter name="n_children" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional #guint pointer to contain the number of child types.</doc>
+          <type name="guint" c:type="guint*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_class_add_private"
-              c:identifier="g_type_class_add_private">
+              c:identifier="g_type_class_add_private"
+              version="2.4">
+      <doc xml:whitespace="preserve">Registers a private structure for an instantiatable type.
+When an object is allocated, the private structures for
+the type and all of its parent types are allocated
+sequentially in the same memory block as the public
+structures.
+Note that the accumulated size of the private structures of
+a type and all its parent types cannot excced 64kB.
+This function should be called in the type's class_init() function.
+The private structure can be retrieved using the
+G_TYPE_INSTANCE_GET_PRIVATE() macro.
+The following example shows attaching a private structure
+&lt;structname&gt;MyObjectPrivate&lt;/structname&gt; to an object
+&lt;structname&gt;MyObject&lt;/structname&gt; defined in the standard GObject
+fashion.
+type's class_init() function.
+|[
+typedef struct _MyObject        MyObject;
+typedef struct _MyObjectPrivate MyObjectPrivate;
+struct _MyObject {
+GObject parent;
+MyObjectPrivate *priv;
+};
+struct _MyObjectPrivate {
+int some_field;
+};
+static void
+my_object_class_init (MyObjectClass *klass)
+{
+g_type_class_add_private (klass, sizeof (MyObjectPrivate));
+}
+static void
+my_object_init (MyObject *my_object)
+{
+my_object-&gt;priv = G_TYPE_INSTANCE_GET_PRIVATE (my_object,
+MY_TYPE_OBJECT,
+MyObjectPrivate);
+}
+static int
+my_object_get_some_field (MyObject *my_object)
+{
+MyObjectPrivate *priv = my_object-&gt;priv;
+return priv-&gt;some_field;
+}
+]|</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">class structure for an instantiatable type</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="private_size" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
+          <doc xml:whitespace="preserve">size of private structure.</doc>
+          <type name="gulong" c:type="gsize"/>
         </parameter>
       </parameters>
     </function>
-    <function name="type_class_peek" c:identifier="g_type_class_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+    <function name="type_class_peek"
+              c:identifier="g_type_class_peek"
+              introspectable="0">
+      <doc xml:whitespace="preserve">This function is essentially the same as g_type_class_ref(), except that
+the classes reference count isn't incremented. As a consequence, this function
+may return %NULL if the class of the type passed in does not currently
+exist (hasn't been referenced before).
+if the class does not currently exist.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID or %NULL</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_class_peek_parent"
-              c:identifier="g_type_class_peek_parent">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+              c:identifier="g_type_class_peek_parent"
+              introspectable="0">
+      <doc xml:whitespace="preserve">This is a convenience function often needed in class initializers.
+It returns the class structure of the immediate parent type of the
+class passed in.  Since derived classes hold a reference count on
+their parent classes as long as they are instantiated, the returned
+class will always exist. This function is essentially equivalent
+to:
+&lt;programlisting&gt;
+g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
+&lt;/programlisting&gt;</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The parent class of @g_class.</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to retrieve the parent class for.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_class_peek_static"
-              c:identifier="g_type_class_peek_static">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+              c:identifier="g_type_class_peek_static"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">A more efficient version of g_type_class_peek() which works only for
+static types.
+if the class does not currently exist or is dynamically loaded.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID or %NULL</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
-    <function name="type_class_ref" c:identifier="g_type_class_ref">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+    <function name="type_class_ref"
+              c:identifier="g_type_class_ref"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Increments the reference count of the class structure belonging to
+exist already.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID.</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_class_unref" c:identifier="g_type_class_unref">
+      <doc xml:whitespace="preserve">Decrements the reference count of the class structure being passed in.
+Once the last reference count of a class has been released, classes
+may be finalized by the type system, so further dereferencing of a
+class pointer after g_type_class_unref() are invalid.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to unreference.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_class_unref_uncached"
               c:identifier="g_type_class_unref_uncached">
+      <doc xml:whitespace="preserve">A variant of g_type_class_unref() for use in #GTypeClassCacheFunc
+implementations. It unreferences a class without consulting the chain
+of #GTypeClassCacheFunc&lt;!-- --&gt;s, avoiding the recursion which would occur
+otherwise.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">The #GTypeClass structure to unreference.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_create_instance"
-              c:identifier="g_type_create_instance">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_create_instance"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates and initializes an instance of @type if @type is valid and
+can be instantiated. The type system only performs basic allocation
+happen through functions supplied by the type's fundamental type
+implementation.  So use of g_type_create_instance() is reserved for
+implementators of fundamental types only. E.g. instances of the
+#GObject hierarchy should be created via g_object_new() and
+&lt;emphasis&gt;never&lt;/emphasis&gt; directly through
+g_type_create_instance() which doesn't handle things like singleton
+use this function, unless you're implementing a fundamental
+type. Also language bindings should &lt;emphasis&gt;not&lt;/emphasis&gt; use
+this function but g_object_new() instead.
+treatment by the fundamental type implementation.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">An allocated and initialized instance, subject to further</doc>
         <type name="TypeInstance" c:type="GTypeInstance*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An instantiatable type to create an instance for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_default_interface_peek"
-              c:identifier="g_type_default_interface_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+              c:identifier="g_type_default_interface_peek"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">If the interface type @g_type is currently in use, returns its
+default interface vtable.
+if the type is not currently in use.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the default vtable for the interface, or %NULL</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="g_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an interface type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_default_interface_ref"
-              c:identifier="g_type_default_interface_ref">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+              c:identifier="g_type_default_interface_ref"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Increments the reference count for the interface type @g_type,
+and returns the default interface vtable for the type.
+If the type is not currently in use, then the default vtable
+for the type will be created and initalized by calling
+the base interface init and default vtable init functions for
+the type (the @&lt;structfield&gt;base_init&lt;/structfield&gt;
+and &lt;structfield&gt;class_init&lt;/structfield&gt; members of #GTypeInfo).
+Calling g_type_default_interface_ref() is useful when you
+want to make sure that signals and properties for an interface
+have been installed.
+g_type_default_interface_unref() when you are done using
+the interface.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the default vtable for the interface; call</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="g_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an interface type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_default_interface_unref"
-              c:identifier="g_type_default_interface_unref">
+              c:identifier="g_type_default_interface_unref"
+              version="2.4">
+      <doc xml:whitespace="preserve">Decrements the reference count for the type corresponding to the
+interface default vtable @g_iface. If the type is dynamic, then
+when no one is using the interface and all references have
+been released, the finalize function for the interface's default
+vtable (the &lt;structfield&gt;class_finalize&lt;/structfield&gt; member of
+#GTypeInfo) will be called.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the default vtable structure for a interface, as returned by g_type_default_interface_ref()</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_depth" c:identifier="g_type_depth">
+      <doc xml:whitespace="preserve">Returns the length of the ancestry of the passed in type. This
+includes the type itself, so that e.g. a fundamental type has depth 1.</doc>
       <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
+        <doc xml:whitespace="preserve">The depth of @type.</doc>
+        <type name="guint" c:type="guint"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GType value.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_free_instance" c:identifier="g_type_free_instance">
+      <doc xml:whitespace="preserve">Frees an instance of a type, returning it to the instance pool for
+the type, if there is one.
+Like g_type_create_instance(), this function is reserved for
+implementors of fundamental types.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="instance" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an instance of a type.</doc>
           <type name="TypeInstance" c:type="GTypeInstance*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_from_name" c:identifier="g_type_from_name">
+      <doc xml:whitespace="preserve">Lookup the type ID from a given type name, returning 0 if no type
+has been registered under this name (this is the preferred method
+to find out by name whether a specific type has been registered
+yet).</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Corresponding type ID or 0.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type name to lookup.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_fundamental" c:identifier="g_type_fundamental">
+      <doc xml:whitespace="preserve">Internal function, used to extract the fundamental type ID portion.
+use G_TYPE_FUNDAMENTAL() instead.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">fundamental type ID</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="type_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">valid type ID</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_fundamental_next"
               c:identifier="g_type_fundamental_next">
+      <doc xml:whitespace="preserve">Returns the next free fundamental type id which can be used to
+register a new fundamental type with g_type_register_fundamental().
+The returned type ID represents the highest currently registered
+fundamental type identifier.
+or 0 if the type system ran out of fundamental type IDs.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The nextmost fundamental type ID to be registered,</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
     </function>
-    <function name="type_get_plugin" c:identifier="g_type_get_plugin">
-      <return-value transfer-ownership="full">
+    <function name="type_get_plugin"
+              c:identifier="g_type_get_plugin"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the #GTypePlugin structure for @type or
+%NULL if @type does not have a #GTypePlugin structure.
+%NULL otherwise.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The corresponding plugin if @type is a dynamic type,</doc>
         <type name="TypePlugin" c:type="GTypePlugin*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GType to retrieve the plugin for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
-    <function name="type_get_qdata" c:identifier="g_type_get_qdata">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+    <function name="type_get_qdata"
+              c:identifier="g_type_get_qdata"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Obtains data which has previously been attached to @type
+with g_type_set_qdata().</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the data, or %NULL if no data was found</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="quark" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GQuark id to identify the data</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_init" c:identifier="g_type_init">
+      <doc xml:whitespace="preserve">Prior to any use of the type system, g_type_init() has to be called
+to initialize the type system and assorted other code portions
+(such as the various fundamental type implementations or the signal
+system).
+Since version 2.24 this also initializes the thread system</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
     <function name="type_init_with_debug_flags"
               c:identifier="g_type_init_with_debug_flags">
+      <doc xml:whitespace="preserve">Similar to g_type_init(), but additionally sets debug flags.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="debug_flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bitwise combination of #GTypeDebugFlags values for debugging purposes.</doc>
           <type name="TypeDebugFlags" c:type="GTypeDebugFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_interface_add_prerequisite"
               c:identifier="g_type_interface_add_prerequisite">
+      <doc xml:whitespace="preserve">Adds @prerequisite_type to the list of prerequisites of @interface_type.
+This means that any type implementing @interface_type must also implement
+interface derivation (which GType doesn't support). An interface can have
+at most one instantiatable prerequisite type.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#GType value of an interface type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="prerequisite_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#GType value of an interface or instantiatable type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_interface_get_plugin"
-              c:identifier="g_type_interface_get_plugin">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_interface_get_plugin"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the #GTypePlugin structure for the dynamic interface
+have a #GTypePlugin structure. See g_type_add_interface_dynamic().
+of @instance_type.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the #GTypePlugin for the dynamic interface @interface_type</doc>
         <type name="TypePlugin" c:type="GTypePlugin*"/>
       </return-value>
       <parameters>
         <parameter name="instance_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType value of an instantiatable type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType value of an interface type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
-    <function name="type_interface_peek" c:identifier="g_type_interface_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+    <function name="type_interface_peek"
+              c:identifier="g_type_interface_peek"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the #GTypeInterface structure of an interface to which the
+passed in class conforms.
+by @instance_class, %NULL otherwise</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The GTypeInterface structure of iface_type if implemented</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="instance_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">A #GTypeClass structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
         <parameter name="iface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An interface ID which this class conforms to.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_interface_peek_parent"
-              c:identifier="g_type_interface_peek_parent">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
+              c:identifier="g_type_interface_peek_parent"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the corresponding #GTypeInterface structure of the parent type
+of the instance type to which @g_iface belongs. This is useful when
+deriving the implementation of an interface from the parent type and
+then possibly overriding some methods.
+type of the instance type to which @g_iface belongs, or
+%NULL if the parent type doesn't conform to the interface.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">The corresponding #GTypeInterface structure of the parent</doc>
+        <type name="gpointer" c:type="gpointer"/>
       </return-value>
       <parameters>
         <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">A #GTypeInterface structure.</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_interface_prerequisites"
-              c:identifier="g_type_interface_prerequisites">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_interface_prerequisites"
+              version="2.2">
+      <doc xml:whitespace="preserve">Returns the prerequisites of an interfaces type.
+the prerequisites of @interface_type</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a newly-allocated zero-terminated array of #GType containing</doc>
         <type name="GType" c:type="GType*"/>
       </return-value>
       <parameters>
         <parameter name="interface_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an interface type</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="n_prerequisites"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
+        <parameter name="n_prerequisites" transfer-ownership="none">
+          <doc xml:whitespace="preserve">location to return the number of prerequisites, or %NULL</doc>
+          <type name="guint" c:type="guint*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_interfaces" c:identifier="g_type_interfaces">
-      <return-value transfer-ownership="full">
+      <doc xml:whitespace="preserve">Return a newly allocated and 0-terminated array of type IDs, listing the
+interface types that @type conforms to. The return value has to be
+g_free()ed after use.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Newly allocated and 0-terminated array of interface types.</doc>
         <type name="GType" c:type="GType*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The type to list interface types for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="n_interfaces"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
+        <parameter name="n_interfaces" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional #guint pointer to contain the number of interface types.</doc>
+          <type name="guint" c:type="guint*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_is_a" c:identifier="g_type_is_a">
+      <doc xml:whitespace="preserve">If @is_a_type is a derivable type, check whether @type is a
+descendant of @is_a_type.  If @is_a_type is an interface, check
+whether @type conforms to it.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">%TRUE if @type is_a @is_a_type holds true.</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type to check anchestry for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="is_a_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Possible anchestor of @type or interface @type could conform to.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_name" c:identifier="g_type_name">
+      <doc xml:whitespace="preserve">Get the unique name that is assigned to a type ID.  Note that this
+function (like all other GType API) cannot cope with invalid type
+IDs. %G_TYPE_INVALID may be passed to this function, as may be any
+other validly registered type ID, but randomized type IDs should
+not be passed in and will most likely lead to a crash.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Static type name or %NULL.</doc>
         <type name="utf8" c:type="gchar*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type to return name for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
@@ -5947,208 +9630,297 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </parameters>
     </function>
     <function name="type_next_base" c:identifier="g_type_next_base">
-      <return-value transfer-ownership="none">
+      <doc xml:whitespace="preserve">Given a @leaf_type and a @root_type which is contained in its
+anchestry, return the type that @root_type is the immediate parent
+of.  In other words, this function determines the type that is
+derived directly from @root_type which is also a base class of
+be used to determine the types and order in which the leaf type is
+descended from the root type.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Immediate child of @root_type and anchestor of @leaf_type.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="leaf_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Descendant of @root_type and the type to be returned.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="root_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Immediate parent of the returned type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_parent" c:identifier="g_type_parent">
+      <doc xml:whitespace="preserve">Return the direct parent type of the passed in type.  If the passed
+in type has no parent, i.e. is a fundamental type, 0 is returned.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The parent type.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The derived type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_qname" c:identifier="g_type_qname">
-      <return-value transfer-ownership="full">
+      <doc xml:whitespace="preserve">Get the corresponding quark of the type IDs name.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The type names quark or 0.</doc>
         <type name="GLib.Quark" c:type="GQuark"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type to return quark of type name for.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_query" c:identifier="g_type_query">
+      <doc xml:whitespace="preserve">Queries the type system for information about a specific type.
+This function will fill in a user-provided structure to hold
+type-specific information. If an invalid #GType is passed in, the
+#GTypeQuery structure should be considered constant and have to be
+left untouched.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType value of a static, classed type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="query" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A user provided structure that is filled in with constant values upon success.</doc>
           <type name="TypeQuery" c:type="GTypeQuery*"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_register_dynamic"
               c:identifier="g_type_register_dynamic">
+      <doc xml:whitespace="preserve">Registers @type_name as the name of a new dynamic type derived from
+#GTypePlugin structure pointed to by @plugin to manage the type and its
+instances (if not abstract).  The value of @flags determines the nature
+(e.g. abstract or not) of the type.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier or #G_TYPE_INVALID if registration failed.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="parent_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="type_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="plugin" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GTypePlugin structure to retrieve the #GTypeInfo from.</doc>
           <type name="TypePlugin" c:type="GTypePlugin*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
           <type name="TypeFlags" c:type="GTypeFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_register_fundamental"
               c:identifier="g_type_register_fundamental">
-      <return-value transfer-ownership="none">
+      <doc xml:whitespace="preserve">Registers @type_id as the predefined identifier and @type_name as the
+name of a fundamental type.  The type system uses the information
+contained in the #GTypeInfo structure pointed to by @info and the
+#GTypeFundamentalInfo structure pointed to by @finfo to manage the
+type and its instances.  The value of @flags determines additional
+characteristics of the fundamental type.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The predefined type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="type_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A predefined type identifier.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="type_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GTypeInfo structure for this type.</doc>
           <type name="TypeInfo" c:type="GTypeInfo*"/>
         </parameter>
         <parameter name="finfo" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GTypeFundamentalInfo structure for this type.</doc>
           <type name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
           <type name="TypeFlags" c:type="GTypeFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_register_static"
               c:identifier="g_type_register_static">
+      <doc xml:whitespace="preserve">Registers @type_name as the name of a new static type derived from
+#GTypeInfo structure pointed to by @info to manage the type and its
+instances (if not abstract).  The value of @flags determines the nature
+(e.g. abstract or not) of the type.</doc>
       <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="parent_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="type_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="info" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GTypeInfo structure for this type.</doc>
           <type name="TypeInfo" c:type="GTypeInfo*"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
           <type name="TypeFlags" c:type="GTypeFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_register_static_simple"
-              c:identifier="g_type_register_static_simple">
-      <return-value transfer-ownership="none">
+              c:identifier="g_type_register_static_simple"
+              version="2.12"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Registers @type_name as the name of a new static type derived from
+abstract or not) of the type. It works by filling a #GTypeInfo
+struct and calling g_type_register_static().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The new type identifier.</doc>
         <type name="GType" c:type="GType"/>
       </return-value>
       <parameters>
         <parameter name="parent_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="type_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
           <type name="utf8" c:type="gchar*"/>
         </parameter>
         <parameter name="class_size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Size of the class structure (see #GTypeInfo)</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-        <parameter name="class_init" transfer-ownership="none" scope="call">
+        <parameter name="class_init" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location of the class initialization function (see #GTypeInfo)</doc>
           <type name="ClassInitFunc" c:type="GClassInitFunc"/>
         </parameter>
         <parameter name="instance_size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <doc xml:whitespace="preserve">Size of the instance structure (see #GTypeInfo)</doc>
+          <type name="guint" c:type="guint"/>
         </parameter>
-        <parameter name="instance_init" transfer-ownership="none" scope="call">
+        <parameter name="instance_init" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Location of the instance initialization function (see #GTypeInfo)</doc>
           <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
           <type name="TypeFlags" c:type="GTypeFlags"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_remove_class_cache_func"
-              c:identifier="g_type_remove_class_cache_func">
+              c:identifier="g_type_remove_class_cache_func"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Removes a previously installed #GTypeClassCacheFunc. The cache
+maintained by @cache_func has to be empty when calling
+g_type_remove_class_cache_func() to avoid leaks.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="cache_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">data that was given when adding @cache_func</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="cache_func" transfer-ownership="none" scope="call">
+        <parameter name="cache_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GTypeClassCacheFunc</doc>
           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_remove_interface_check"
-              c:identifier="g_type_remove_interface_check">
+              c:identifier="g_type_remove_interface_check"
+              version="2.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Removes an interface check function added with
+g_type_add_interface_check().</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">callback data passed to g_type_add_interface_check()</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
-        <parameter name="check_func" transfer-ownership="none" scope="call">
+        <parameter name="check_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">callback function passed to g_type_add_interface_check()</doc>
           <type name="TypeInterfaceCheckFunc"
                 c:type="GTypeInterfaceCheckFunc"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_set_qdata" c:identifier="g_type_set_qdata">
+      <doc xml:whitespace="preserve">Attaches arbitrary data to a type.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="quark" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GQuark id to identify the data</doc>
           <type name="GLib.Quark" c:type="GQuark"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
+          <doc xml:whitespace="preserve">the data</doc>
+          <type name="gpointer" c:type="gpointer"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_test_flags" c:identifier="g_type_test_flags">
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="flags" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
+          <type name="guint" c:type="guint"/>
         </parameter>
       </parameters>
     </function>
     <function name="type_value_table_peek"
-              c:identifier="g_type_value_table_peek">
-      <return-value transfer-ownership="full">
+              c:identifier="g_type_value_table_peek"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns the location of the #GTypeValueTable associated with @type.
+&lt;emphasis&gt;Note that this function should only be used from source code
+that implements or has internal knowledge of the implementation of
+%NULL if there is no #GTypeValueTable associated with @type.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">Location of the #GTypeValueTable associated with @type or</doc>
         <type name="TypeValueTable" c:type="GTypeValueTable*"/>
       </return-value>
       <parameters>
         <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GType value.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
@@ -6159,20 +9931,25 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
       </return-value>
     </function>
     <function name="value_register_transform_func"
-              c:identifier="g_value_register_transform_func">
+              c:identifier="g_value_register_transform_func"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Registers a value transformation function for use in g_value_transform().
+A previously registered transformation function for @src_type and @dest_type
+will be replaced.</doc>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
         <parameter name="src_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Source type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="dest_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Target type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
-        <parameter name="transform_func"
-                   transfer-ownership="none"
-                   scope="call">
+        <parameter name="transform_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a function which transforms values of type @src_type into value of type @dest_type</doc>
           <type name="ValueTransform" c:type="GValueTransform"/>
         </parameter>
       </parameters>
@@ -6185,28 +9962,38 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
     </function>
     <function name="value_type_compatible"
               c:identifier="g_value_type_compatible">
+      <doc xml:whitespace="preserve">Returns whether a #GValue of type @src_type can be copied into
+a #GValue of type @dest_type.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">%TRUE if g_value_copy() is possible with @src_type and @dest_type.</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="src_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">source type to be copied.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="dest_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">destination type for copying.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
     </function>
     <function name="value_type_transformable"
               c:identifier="g_value_type_transformable">
+      <doc xml:whitespace="preserve">Check whether g_value_transform() is able to transform values
+of type @src_type into values of type @dest_type.</doc>
       <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
+        <doc xml:whitespace="preserve">%TRUE if the transformation is possible, %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
       </return-value>
       <parameters>
         <parameter name="src_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Source type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
         <parameter name="dest_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Target type.</doc>
           <type name="GType" c:type="GType"/>
         </parameter>
       </parameters>
@@ -6216,7 +10003,10 @@ with the object, apart from e.g. using its adress as hash-index or the like.">
         <type name="none" c:type="void"/>
       </return-value>
     </function>
-    <function name="variant_get_gtype" c:identifier="g_variant_get_gtype">
+    <function name="variant_get_gtype"
+              c:identifier="g_variant_get_gtype"
+              version="2.24"
+              deprecated="2.26">
       <return-value transfer-ownership="none">
         <type name="GType" c:type="GType"/>
       </return-value>