]> gitweb.factorcode.org Git - factor.git/blob - basis/gobject/GObject-2.0.gir
Fixes #2966
[factor.git] / basis / gobject / GObject-2.0.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.2"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <package name="gobject-2.0"/>
11   <c:include name="glib-object.h"/>
12   <namespace name="GObject"
13              version="2.0"
14              shared-library="libgobject-2.0.so.0"
15              c:identifier-prefixes="G"
16              c:symbol-prefixes="g">
17     <alias name="SignalCMarshaller" c:type="GSignalCMarshaller">
18       <doc xml:whitespace="preserve">This is the signature of marshaller functions, required to marshall
19 arrays of parameter values to signal emissions into C language callback
20 invocations. It is merely an alias to #GClosureMarshal since the #GClosure
21 mechanism takes over responsibility of actual function invocation for the
22 signal system.</doc>
23       <type name="ClosureMarshal" c:type="GClosureMarshal"/>
24     </alias>
25     <alias name="Strv" c:type="GStrv">
26       <doc xml:whitespace="preserve">A C representable type name for #G_TYPE_STRV.</doc>
27       <type name="gpointer" c:type="gpointer"/>
28     </alias>
29     <alias name="Type" c:type="GType">
30       <doc xml:whitespace="preserve">A numerical value which represents the unique identifier of a registered
31 type.</doc>
32       <type name="gulong" c:type="gsize"/>
33     </alias>
34     <glib:boxed glib:name="Array"
35                 c:symbol-prefix="array"
36                 glib:type-name="GArray"
37                 glib:get-type="g_array_get_type">
38     </glib:boxed>
39     <callback name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc">
40       <doc xml:whitespace="preserve">A callback function used by the type system to finalize those portions
41 of a derived types class structure that were setup from the corresponding
42 GBaseInitFunc() function. Class finalization basically works the inverse
43 way in which class intialization is performed.
44 See GClassInitFunc() for a discussion of the class intialization process.</doc>
45       <return-value transfer-ownership="none">
46         <type name="none" c:type="void"/>
47       </return-value>
48       <parameters>
49         <parameter name="g_class" transfer-ownership="none">
50           <doc xml:whitespace="preserve">The #GTypeClass structure to finalize.</doc>
51           <type name="gpointer" c:type="gpointer"/>
52         </parameter>
53       </parameters>
54     </callback>
55     <callback name="BaseInitFunc" c:type="GBaseInitFunc">
56       <doc xml:whitespace="preserve">A callback function used by the type system to do base initialization
57 of the class structures of derived types. It is called as part of the
58 initialization process of all derived classes and should reallocate
59 or reset all dynamic class members copied over from the parent class.
60 For example, class members (such as strings) that are not sufficiently
61 handled by a plain memory copy of the parent class into the derived class
62 have to be altered. See GClassInitFunc() for a discussion of the class
63 intialization process.</doc>
64       <return-value transfer-ownership="none">
65         <type name="none" c:type="void"/>
66       </return-value>
67       <parameters>
68         <parameter name="g_class" transfer-ownership="none">
69           <doc xml:whitespace="preserve">The #GTypeClass structure to initialize.</doc>
70           <type name="gpointer" c:type="gpointer"/>
71         </parameter>
72       </parameters>
73     </callback>
74     <class name="Binding"
75            c:symbol-prefix="binding"
76            c:type="GBinding"
77            version="2.26"
78            parent="Object"
79            glib:type-name="GBinding"
80            glib:get-type="g_binding_get_type">
81       <doc xml:whitespace="preserve">&lt;structname&gt;GBinding&lt;/structname&gt; is an opaque structure whose members
82 cannot be accessed directly.</doc>
83       <method name="get_flags"
84               c:identifier="g_binding_get_flags"
85               version="2.26">
86         <doc xml:whitespace="preserve">Retrieves the flags passed when constructing the #GBinding</doc>
87         <return-value transfer-ownership="none">
88           <doc xml:whitespace="preserve">the #GBindingFlags used by the #GBinding</doc>
89           <type name="BindingFlags" c:type="GBindingFlags"/>
90         </return-value>
91       </method>
92       <method name="get_source"
93               c:identifier="g_binding_get_source"
94               version="2.26">
95         <doc xml:whitespace="preserve">Retrieves the #GObject instance used as the source of the binding</doc>
96         <return-value transfer-ownership="none">
97           <doc xml:whitespace="preserve">the source #GObject</doc>
98           <type name="Object" c:type="GObject*"/>
99         </return-value>
100       </method>
101       <method name="get_source_property"
102               c:identifier="g_binding_get_source_property"
103               version="2.26">
104         <doc xml:whitespace="preserve">Retrieves the name of the property of #GBinding:source used as the source
105 of the binding</doc>
106         <return-value transfer-ownership="none">
107           <doc xml:whitespace="preserve">the name of the source property</doc>
108           <type name="utf8" c:type="gchar*"/>
109         </return-value>
110       </method>
111       <method name="get_target"
112               c:identifier="g_binding_get_target"
113               version="2.26">
114         <doc xml:whitespace="preserve">Retrieves the #GObject instance used as the target of the binding</doc>
115         <return-value transfer-ownership="none">
116           <doc xml:whitespace="preserve">the target #GObject</doc>
117           <type name="Object" c:type="GObject*"/>
118         </return-value>
119       </method>
120       <method name="get_target_property"
121               c:identifier="g_binding_get_target_property"
122               version="2.26">
123         <doc xml:whitespace="preserve">Retrieves the name of the property of #GBinding:target used as the target
124 of the binding</doc>
125         <return-value transfer-ownership="none">
126           <doc xml:whitespace="preserve">the name of the target property</doc>
127           <type name="utf8" c:type="gchar*"/>
128         </return-value>
129       </method>
130       <property name="flags"
131                 version="2.26"
132                 writable="1"
133                 construct-only="1"
134                 transfer-ownership="none">
135         <doc xml:whitespace="preserve">Flags to be used to control the #GBinding</doc>
136         <type name="BindingFlags"/>
137       </property>
138       <property name="source"
139                 version="2.26"
140                 writable="1"
141                 construct-only="1"
142                 transfer-ownership="none">
143         <doc xml:whitespace="preserve">The #GObject that should be used as the source of the binding</doc>
144         <type name="Object"/>
145       </property>
146       <property name="source-property"
147                 version="2.26"
148                 writable="1"
149                 construct-only="1"
150                 transfer-ownership="none">
151         <doc xml:whitespace="preserve">The name of the property of #GBinding:source that should be used
152 as the source of the binding</doc>
153         <type name="utf8"/>
154       </property>
155       <property name="target"
156                 version="2.26"
157                 writable="1"
158                 construct-only="1"
159                 transfer-ownership="none">
160         <doc xml:whitespace="preserve">The #GObject that should be used as the target of the binding</doc>
161         <type name="Object"/>
162       </property>
163       <property name="target-property"
164                 version="2.26"
165                 writable="1"
166                 construct-only="1"
167                 transfer-ownership="none">
168         <doc xml:whitespace="preserve">The name of the property of #GBinding:target that should be used
169 as the target of the binding</doc>
170         <type name="utf8"/>
171       </property>
172     </class>
173     <bitfield name="BindingFlags"
174               version="2.26"
175               glib:type-name="GBindingFlags"
176               glib:get-type="g_binding_flags_get_type"
177               c:type="GBindingFlags">
178       <doc xml:whitespace="preserve">Flags to be passed to g_object_bind_property() or
179 g_object_bind_property_full().
180 This enumeration can be extended at later date.</doc>
181       <member name="default"
182               value="0"
183               c:identifier="G_BINDING_DEFAULT"
184               glib:nick="default"/>
185       <member name="bidirectional"
186               value="1"
187               c:identifier="G_BINDING_BIDIRECTIONAL"
188               glib:nick="bidirectional"/>
189       <member name="sync_create"
190               value="2"
191               c:identifier="G_BINDING_SYNC_CREATE"
192               glib:nick="sync-create"/>
193       <member name="invert_boolean"
194               value="4"
195               c:identifier="G_BINDING_INVERT_BOOLEAN"
196               glib:nick="invert-boolean"/>
197     </bitfield>
198     <callback name="BindingTransformFunc"
199               c:type="GBindingTransformFunc"
200               version="2.26">
201       <doc xml:whitespace="preserve">A function to be called to transform the source property of @source
202 from @source_value into the target property of @target
203 using @target_value.
204 otherwise</doc>
205       <return-value transfer-ownership="none">
206         <doc xml:whitespace="preserve">%TRUE if the transformation was successful, and %FALSE</doc>
207         <type name="gboolean" c:type="gboolean"/>
208       </return-value>
209       <parameters>
210         <parameter name="binding" transfer-ownership="none">
211           <doc xml:whitespace="preserve">a #GBinding</doc>
212           <type name="Binding" c:type="GBinding*"/>
213         </parameter>
214         <parameter name="source_value" transfer-ownership="none">
215           <doc xml:whitespace="preserve">the value of the source property</doc>
216           <type name="Value" c:type="GValue*"/>
217         </parameter>
218         <parameter name="target_value" transfer-ownership="none">
219           <doc xml:whitespace="preserve">the value of the target property</doc>
220           <type name="Value" c:type="GValue*"/>
221         </parameter>
222         <parameter name="user_data" transfer-ownership="none" closure="3">
223           <doc xml:whitespace="preserve">data passed to the transform function</doc>
224           <type name="gpointer" c:type="gpointer"/>
225         </parameter>
226       </parameters>
227     </callback>
228     <callback name="BoxedCopyFunc" c:type="GBoxedCopyFunc" introspectable="0">
229       <doc xml:whitespace="preserve">This function is provided by the user and should produce a copy of the passed
230 in boxed structure.</doc>
231       <return-value>
232         <doc xml:whitespace="preserve">The newly created copy of the boxed structure.</doc>
233         <type name="gpointer" c:type="gpointer"/>
234       </return-value>
235       <parameters>
236         <parameter name="boxed" transfer-ownership="none">
237           <doc xml:whitespace="preserve">The boxed structure to be copied.</doc>
238           <type name="gpointer" c:type="gpointer"/>
239         </parameter>
240       </parameters>
241     </callback>
242     <callback name="BoxedFreeFunc" c:type="GBoxedFreeFunc">
243       <doc xml:whitespace="preserve">This function is provided by the user and should free the boxed
244 structure passed.</doc>
245       <return-value transfer-ownership="none">
246         <type name="none" c:type="void"/>
247       </return-value>
248       <parameters>
249         <parameter name="boxed" transfer-ownership="none">
250           <doc xml:whitespace="preserve">The boxed structure to be freed.</doc>
251           <type name="gpointer" c:type="gpointer"/>
252         </parameter>
253       </parameters>
254     </callback>
255     <glib:boxed glib:name="ByteArray"
256                 c:symbol-prefix="byte_array"
257                 glib:type-name="GByteArray"
258                 glib:get-type="g_byte_array_get_type">
259     </glib:boxed>
260     <record name="CClosure" c:type="GCClosure">
261       <doc xml:whitespace="preserve">A #GCClosure is a specialization of #GClosure for C function callbacks.</doc>
262       <field name="closure" writable="1">
263         <type name="Closure" c:type="GClosure"/>
264       </field>
265       <field name="callback" writable="1">
266         <type name="gpointer" c:type="gpointer"/>
267       </field>
268     </record>
269     <callback name="Callback" c:type="GCallback">
270       <doc xml:whitespace="preserve">The type used for callback functions in structure definitions and function 
271 signatures. This doesn't mean that all callback functions must take no 
272 parameters and return void. The required signature of a callback function 
273 is determined by the context in which is used (e.g. the signal to which it 
274 is connected). Use G_CALLBACK() to cast the callback function to a #GCallback.</doc>
275       <return-value transfer-ownership="none">
276         <type name="none" c:type="void"/>
277       </return-value>
278     </callback>
279     <callback name="ClassFinalizeFunc" c:type="GClassFinalizeFunc">
280       <doc xml:whitespace="preserve">A callback function used by the type system to finalize a class.
281 This function is rarely needed, as dynamically allocated class resources
282 should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
283 Also, specification of a GClassFinalizeFunc() in the #GTypeInfo
284 structure of a static type is invalid, because classes of static types
285 will never be finalized (they are artificially kept alive when their
286 reference count drops to zero).</doc>
287       <return-value transfer-ownership="none">
288         <type name="none" c:type="void"/>
289       </return-value>
290       <parameters>
291         <parameter name="g_class" transfer-ownership="none">
292           <doc xml:whitespace="preserve">The #GTypeClass structure to finalize.</doc>
293           <type name="gpointer" c:type="gpointer"/>
294         </parameter>
295         <parameter name="class_data" transfer-ownership="none">
296           <doc xml:whitespace="preserve">The @class_data member supplied via the #GTypeInfo structure.</doc>
297           <type name="gpointer" c:type="gpointer"/>
298         </parameter>
299       </parameters>
300     </callback>
301     <callback name="ClassInitFunc" c:type="GClassInitFunc">
302       <doc xml:whitespace="preserve">A callback function used by the type system to initialize the class
303 of a specific type. This function should initialize all static class
304 members.
305 The initialization process of a class involves:
306 &lt;itemizedlist&gt;
307 &lt;listitem&gt;&lt;para&gt;
308 1 - Copying common members from the parent class over to the
309 derived class structure.
310 &lt;/para&gt;&lt;/listitem&gt;
311 &lt;listitem&gt;&lt;para&gt;
312 2 -  Zero initialization of the remaining members not copied
313 over from the parent class.
314 &lt;/para&gt;&lt;/listitem&gt;
315 &lt;listitem&gt;&lt;para&gt;
316 3 - Invocation of the GBaseInitFunc() initializers of all parent
317 types and the class' type.
318 &lt;/para&gt;&lt;/listitem&gt;
319 &lt;listitem&gt;&lt;para&gt;
320 4 - Invocation of the class' GClassInitFunc() initializer.
321 &lt;/para&gt;&lt;/listitem&gt;
322 &lt;/itemizedlist&gt;
323 Since derived classes are partially initialized through a memory copy
324 of the parent class, the general rule is that GBaseInitFunc() and
325 GBaseFinalizeFunc() should take care of necessary reinitialization
326 and release of those class members that were introduced by the type
327 that specified these GBaseInitFunc()/GBaseFinalizeFunc().
328 GClassInitFunc() should only care about initializing static
329 class members, while dynamic class members (such as allocated strings
330 or reference counted resources) are better handled by a GBaseInitFunc()
331 for this type, so proper initialization of the dynamic class members
332 is performed for class initialization of derived types as well.
333 An example may help to correspond the intend of the different class
334 initializers:
335 |[
336 typedef struct {
337 GObjectClass parent_class;
338 gint         static_integer;
339 gchar       *dynamic_string;
340 } TypeAClass;
341 static void
342 type_a_base_class_init (TypeAClass *class)
343 {
344 class-&gt;dynamic_string = g_strdup ("some string");
345 }
346 static void
347 type_a_base_class_finalize (TypeAClass *class)
348 {
349 g_free (class-&gt;dynamic_string);
350 }
351 static void
352 type_a_class_init (TypeAClass *class)
353 {
354 class-&gt;static_integer = 42;
355 }
356 typedef struct {
357 TypeAClass   parent_class;
358 gfloat       static_float;
359 GString     *dynamic_gstring;
360 } TypeBClass;
361 static void
362 type_b_base_class_init (TypeBClass *class)
363 {
364 class-&gt;dynamic_gstring = g_string_new ("some other string");
365 }
366 static void
367 type_b_base_class_finalize (TypeBClass *class)
368 {
369 g_string_free (class-&gt;dynamic_gstring);
370 }
371 static void
372 type_b_class_init (TypeBClass *class)
373 {
374 class-&gt;static_float = 3.14159265358979323846;
375 }
376 ]|
377 Initialization of TypeBClass will first cause initialization of
378 TypeAClass (derived classes reference their parent classes, see
379 g_type_class_ref() on this).
380 Initialization of TypeAClass roughly involves zero-initializing its fields,
381 then calling its GBaseInitFunc() type_a_base_class_init() to allocate
382 its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
383 type_a_class_init() to initialize its static members (static_integer).
384 The first step in the initialization process of TypeBClass is then
385 a plain memory copy of the contents of TypeAClass into TypeBClass and 
386 zero-initialization of the remaining fields in TypeBClass.
387 The dynamic members of TypeAClass within TypeBClass now need
388 reinitialization which is performed by calling type_a_base_class_init()
389 with an argument of TypeBClass.
390 After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init()
391 is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
392 and finally the GClassInitFunc() of TypeBClass, type_b_class_init(),
393 is called to complete the initialization process with the static members
394 (static_float).
395 Corresponding finalization counter parts to the GBaseInitFunc() functions
396 have to be provided to release allocated resources at class finalization
397 time.</doc>
398       <return-value transfer-ownership="none">
399         <type name="none" c:type="void"/>
400       </return-value>
401       <parameters>
402         <parameter name="g_class" transfer-ownership="none">
403           <doc xml:whitespace="preserve">The #GTypeClass structure to initialize.</doc>
404           <type name="gpointer" c:type="gpointer"/>
405         </parameter>
406         <parameter name="class_data" transfer-ownership="none">
407           <doc xml:whitespace="preserve">The @class_data member supplied via the #GTypeInfo structure.</doc>
408           <type name="gpointer" c:type="gpointer"/>
409         </parameter>
410       </parameters>
411     </callback>
412     <record name="Closure"
413             c:type="GClosure"
414             glib:type-name="GClosure"
415             glib:get-type="g_closure_get_type"
416             c:symbol-prefix="closure">
417       <doc xml:whitespace="preserve">A #GClosure represents a callback supplied by the programmer.</doc>
418       <field name="ref_count" writable="1" bits="15">
419         <type name="guint" c:type="guint"/>
420       </field>
421       <field name="meta_marshal" writable="1" bits="1">
422         <type name="guint" c:type="guint"/>
423       </field>
424       <field name="n_guards" writable="1" bits="1">
425         <type name="guint" c:type="guint"/>
426       </field>
427       <field name="n_fnotifiers" writable="1" bits="2">
428         <type name="guint" c:type="guint"/>
429       </field>
430       <field name="n_inotifiers" writable="1" bits="8">
431         <type name="guint" c:type="guint"/>
432       </field>
433       <field name="in_inotify" writable="1" bits="1">
434         <type name="guint" c:type="guint"/>
435       </field>
436       <field name="floating" writable="1" bits="1">
437         <type name="guint" c:type="guint"/>
438       </field>
439       <field name="derivative_flag" writable="1" bits="1">
440         <type name="guint" c:type="guint"/>
441       </field>
442       <field name="in_marshal" writable="1" bits="1">
443         <type name="guint" c:type="guint"/>
444       </field>
445       <field name="is_invalid" writable="1" bits="1">
446         <type name="guint" c:type="guint"/>
447       </field>
448       <field name="marshal">
449         <callback name="marshal">
450           <return-value transfer-ownership="none">
451             <type name="none" c:type="void"/>
452           </return-value>
453           <parameters>
454             <parameter name="closure" transfer-ownership="none">
455               <type name="Closure" c:type="GClosure*"/>
456             </parameter>
457             <parameter name="return_value" transfer-ownership="none">
458               <type name="Value" c:type="GValue*"/>
459             </parameter>
460             <parameter name="n_param_values" transfer-ownership="none">
461               <type name="guint" c:type="guint"/>
462             </parameter>
463             <parameter name="param_values" transfer-ownership="none">
464               <type name="Value" c:type="GValue*"/>
465             </parameter>
466             <parameter name="invocation_hint" transfer-ownership="none">
467               <type name="gpointer" c:type="gpointer"/>
468             </parameter>
469             <parameter name="marshal_data" transfer-ownership="none">
470               <type name="gpointer" c:type="gpointer"/>
471             </parameter>
472           </parameters>
473         </callback>
474       </field>
475       <field name="data" writable="1">
476         <type name="gpointer" c:type="gpointer"/>
477       </field>
478       <field name="notifiers" writable="1">
479         <type name="ClosureNotifyData" c:type="GClosureNotifyData*"/>
480       </field>
481       <constructor name="new_object" c:identifier="g_closure_new_object">
482         <doc xml:whitespace="preserve">A variant of g_closure_new_simple() which stores @object in the
483 when implementing new types of closures.</doc>
484         <return-value transfer-ownership="full">
485           <doc xml:whitespace="preserve">a newly allocated #GClosure</doc>
486           <type name="Closure" c:type="GClosure*"/>
487         </return-value>
488         <parameters>
489           <parameter name="sizeof_closure" transfer-ownership="none">
490             <doc xml:whitespace="preserve">the size of the structure to allocate, must be at least &lt;literal&gt;sizeof (GClosure)&lt;/literal&gt;</doc>
491             <type name="guint" c:type="guint"/>
492           </parameter>
493           <parameter name="object" transfer-ownership="none">
494             <doc xml:whitespace="preserve">a #GObject pointer to store in the @data field of the newly allocated #GClosure</doc>
495             <type name="Object" c:type="GObject*"/>
496           </parameter>
497         </parameters>
498       </constructor>
499       <constructor name="new_simple" c:identifier="g_closure_new_simple">
500         <doc xml:whitespace="preserve">Allocates a struct of the given size and initializes the initial
501 part as a #GClosure. This function is mainly useful when
502 implementing new types of closures.
503 |[
504 typedef struct _MyClosure MyClosure;
505 struct _MyClosure
506 {
507 GClosure closure;
508 // extra data goes here
509 };
510 static void
511 my_closure_finalize (gpointer  notify_data,
512 GClosure *closure)
513 {
514 MyClosure *my_closure = (MyClosure *)closure;
515 // free extra data here
516 }
517 MyClosure *my_closure_new (gpointer data)
518 {
519 GClosure *closure;
520 MyClosure *my_closure;
521 closure = g_closure_new_simple (sizeof (MyClosure), data);
522 my_closure = (MyClosure *) closure;
523 // initialize extra data here
524 g_closure_add_finalize_notifier (closure, notify_data,
525 my_closure_finalize);
526 return my_closure;
527 }
528 ]|</doc>
529         <return-value transfer-ownership="full">
530           <doc xml:whitespace="preserve">a newly allocated #GClosure</doc>
531           <type name="Closure" c:type="GClosure*"/>
532         </return-value>
533         <parameters>
534           <parameter name="sizeof_closure" transfer-ownership="none">
535             <doc xml:whitespace="preserve">the size of the structure to allocate, must be at least &lt;literal&gt;sizeof (GClosure)&lt;/literal&gt;</doc>
536             <type name="guint" c:type="guint"/>
537           </parameter>
538           <parameter name="data" transfer-ownership="none">
539             <doc xml:whitespace="preserve">data to store in the @data field of the newly allocated #GClosure</doc>
540             <type name="gpointer" c:type="gpointer"/>
541           </parameter>
542         </parameters>
543       </constructor>
544       <method name="add_finalize_notifier"
545               c:identifier="g_closure_add_finalize_notifier"
546               introspectable="0">
547         <doc xml:whitespace="preserve">Registers a finalization notifier which will be called when the
548 reference count of @closure goes down to 0. Multiple finalization
549 notifiers on a single closure are invoked in unspecified order. If
550 a single call to g_closure_unref() results in the closure being
551 both invalidated and finalized, then the invalidate notifiers will
552 be run before the finalize notifiers.</doc>
553         <return-value transfer-ownership="none">
554           <type name="none" c:type="void"/>
555         </return-value>
556         <parameters>
557           <parameter name="notify_data" transfer-ownership="none">
558             <doc xml:whitespace="preserve">data to pass to @notify_func</doc>
559             <type name="gpointer" c:type="gpointer"/>
560           </parameter>
561           <parameter name="notify_func" transfer-ownership="none">
562             <doc xml:whitespace="preserve">the callback function to register</doc>
563             <type name="ClosureNotify" c:type="GClosureNotify"/>
564           </parameter>
565         </parameters>
566       </method>
567       <method name="add_invalidate_notifier"
568               c:identifier="g_closure_add_invalidate_notifier"
569               introspectable="0">
570         <doc xml:whitespace="preserve">Registers an invalidation notifier which will be called when the
571 notifiers are invoked before finalization notifiers, in an
572 unspecified order.</doc>
573         <return-value transfer-ownership="none">
574           <type name="none" c:type="void"/>
575         </return-value>
576         <parameters>
577           <parameter name="notify_data" transfer-ownership="none">
578             <doc xml:whitespace="preserve">data to pass to @notify_func</doc>
579             <type name="gpointer" c:type="gpointer"/>
580           </parameter>
581           <parameter name="notify_func" transfer-ownership="none">
582             <doc xml:whitespace="preserve">the callback function to register</doc>
583             <type name="ClosureNotify" c:type="GClosureNotify"/>
584           </parameter>
585         </parameters>
586       </method>
587       <method name="add_marshal_guards"
588               c:identifier="g_closure_add_marshal_guards"
589               introspectable="0">
590         <doc xml:whitespace="preserve">Adds a pair of notifiers which get invoked before and after the
591 closure callback, respectively. This is typically used to protect
592 the extra arguments for the duration of the callback. See
593 g_object_watch_closure() for an example of marshal guards.</doc>
594         <return-value transfer-ownership="none">
595           <type name="none" c:type="void"/>
596         </return-value>
597         <parameters>
598           <parameter name="pre_marshal_data" transfer-ownership="none">
599             <doc xml:whitespace="preserve">data to pass to @pre_marshal_notify</doc>
600             <type name="gpointer" c:type="gpointer"/>
601           </parameter>
602           <parameter name="pre_marshal_notify"
603                      transfer-ownership="none"
604                      closure="2">
605             <doc xml:whitespace="preserve">a function to call before the closure callback</doc>
606             <type name="ClosureNotify" c:type="GClosureNotify"/>
607           </parameter>
608           <parameter name="post_marshal_data" transfer-ownership="none">
609             <doc xml:whitespace="preserve">data to pass to @post_marshal_notify</doc>
610             <type name="gpointer" c:type="gpointer"/>
611           </parameter>
612           <parameter name="post_marshal_notify" transfer-ownership="none">
613             <doc xml:whitespace="preserve">a function to call after the closure callback</doc>
614             <type name="ClosureNotify" c:type="GClosureNotify"/>
615           </parameter>
616         </parameters>
617       </method>
618       <method name="invalidate" c:identifier="g_closure_invalidate">
619         <doc xml:whitespace="preserve">Sets a flag on the closure to indicate that its calling
620 environment has become invalid, and thus causes any future
621 invocations of g_closure_invoke() on this @closure to be
622 ignored. Also, invalidation notifiers installed on the closure will
623 be called at this point. Note that unless you are holding a
624 reference to the closure yourself, the invalidation notifiers may
625 unref the closure and cause it to be destroyed, so if you need to
626 access the closure after calling g_closure_invalidate(), make sure
627 that you've previously called g_closure_ref().
628 Note that g_closure_invalidate() will also be called when the
629 reference count of a closure drops to zero (unless it has already
630 been invalidated before).</doc>
631         <return-value transfer-ownership="none">
632           <type name="none" c:type="void"/>
633         </return-value>
634       </method>
635       <method name="invoke" c:identifier="g_closure_invoke">
636         <doc xml:whitespace="preserve">Invokes the closure, i.e. executes the callback represented by the @closure.</doc>
637         <return-value transfer-ownership="none">
638           <type name="none" c:type="void"/>
639         </return-value>
640         <parameters>
641           <parameter name="return_value" transfer-ownership="none">
642             <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>
643             <type name="Value" c:type="GValue*"/>
644           </parameter>
645           <parameter name="n_param_values" transfer-ownership="none">
646             <doc xml:whitespace="preserve">the length of the @param_values array</doc>
647             <type name="guint" c:type="guint"/>
648           </parameter>
649           <parameter name="param_values" transfer-ownership="none">
650             <doc xml:whitespace="preserve">an array of #GValue&lt;!-- --&gt;s holding the arguments on which to invoke the callback of @closure</doc>
651             <type name="Value" c:type="GValue*"/>
652           </parameter>
653           <parameter name="invocation_hint" transfer-ownership="none">
654             <doc xml:whitespace="preserve">a context-dependent invocation hint</doc>
655             <type name="gpointer" c:type="gpointer"/>
656           </parameter>
657         </parameters>
658       </method>
659       <method name="ref" c:identifier="g_closure_ref">
660         <doc xml:whitespace="preserve">Increments the reference count on a closure to force it staying
661 alive while the caller holds a pointer to it.</doc>
662         <return-value transfer-ownership="full">
663           <doc xml:whitespace="preserve">The @closure passed in, for convenience</doc>
664           <type name="Closure" c:type="GClosure*"/>
665         </return-value>
666       </method>
667       <method name="remove_finalize_notifier"
668               c:identifier="g_closure_remove_finalize_notifier"
669               introspectable="0">
670         <doc xml:whitespace="preserve">Removes a finalization notifier.
671 Notice that notifiers are automatically removed after they are run.</doc>
672         <return-value transfer-ownership="none">
673           <type name="none" c:type="void"/>
674         </return-value>
675         <parameters>
676           <parameter name="notify_data" transfer-ownership="none">
677             <doc xml:whitespace="preserve">data which was passed to g_closure_add_finalize_notifier() when registering @notify_func</doc>
678             <type name="gpointer" c:type="gpointer"/>
679           </parameter>
680           <parameter name="notify_func" transfer-ownership="none">
681             <doc xml:whitespace="preserve">the callback function to remove</doc>
682             <type name="ClosureNotify" c:type="GClosureNotify"/>
683           </parameter>
684         </parameters>
685       </method>
686       <method name="remove_invalidate_notifier"
687               c:identifier="g_closure_remove_invalidate_notifier"
688               introspectable="0">
689         <doc xml:whitespace="preserve">Removes an invalidation notifier.
690 Notice that notifiers are automatically removed after they are run.</doc>
691         <return-value transfer-ownership="none">
692           <type name="none" c:type="void"/>
693         </return-value>
694         <parameters>
695           <parameter name="notify_data" transfer-ownership="none">
696             <doc xml:whitespace="preserve">data which was passed to g_closure_add_invalidate_notifier() when registering @notify_func</doc>
697             <type name="gpointer" c:type="gpointer"/>
698           </parameter>
699           <parameter name="notify_func" transfer-ownership="none">
700             <doc xml:whitespace="preserve">the callback function to remove</doc>
701             <type name="ClosureNotify" c:type="GClosureNotify"/>
702           </parameter>
703         </parameters>
704       </method>
705       <method name="set_marshal"
706               c:identifier="g_closure_set_marshal"
707               introspectable="0">
708         <doc xml:whitespace="preserve">Sets the marshaller of @closure. The &lt;literal&gt;marshal_data&lt;/literal&gt;
709 of @marshal provides a way for a meta marshaller to provide additional
710 information to the marshaller. (See g_closure_set_meta_marshal().) For
711 GObject's C predefined marshallers (the g_cclosure_marshal_*()
712 functions), what it provides is a callback function to use instead of</doc>
713         <return-value transfer-ownership="none">
714           <type name="none" c:type="void"/>
715         </return-value>
716         <parameters>
717           <parameter name="marshal" transfer-ownership="none">
718             <doc xml:whitespace="preserve">a #GClosureMarshal function</doc>
719             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
720           </parameter>
721         </parameters>
722       </method>
723       <method name="set_meta_marshal"
724               c:identifier="g_closure_set_meta_marshal"
725               introspectable="0">
726         <doc xml:whitespace="preserve">Sets the meta marshaller of @closure.  A meta marshaller wraps
727 fashion. The most common use of this facility is for C callbacks.
728 The same marshallers (generated by &lt;link
729 linkend="glib-genmarshal"&gt;glib-genmarshal&lt;/link&gt;) are used
730 everywhere, but the way that we get the callback function
731 differs. In most cases we want to use @closure-&gt;callback, but in
732 other cases we want to use some different technique to retrieve the
733 callback function.
734 For example, class closures for signals (see
735 g_signal_type_cclosure_new()) retrieve the callback function from a
736 fixed offset in the class structure.  The meta marshaller retrieves
737 the right callback and passes it to the marshaller as the</doc>
738         <return-value transfer-ownership="none">
739           <type name="none" c:type="void"/>
740         </return-value>
741         <parameters>
742           <parameter name="marshal_data" transfer-ownership="none">
743             <doc xml:whitespace="preserve">context-dependent data to pass to @meta_marshal</doc>
744             <type name="gpointer" c:type="gpointer"/>
745           </parameter>
746           <parameter name="meta_marshal" transfer-ownership="none">
747             <doc xml:whitespace="preserve">a #GClosureMarshal function</doc>
748             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
749           </parameter>
750         </parameters>
751       </method>
752       <method name="sink" c:identifier="g_closure_sink">
753         <doc xml:whitespace="preserve">Takes over the initial ownership of a closure.  Each closure is
754 initially created in a &lt;firstterm&gt;floating&lt;/firstterm&gt; state, which
755 means that the initial reference count is not owned by any caller.
756 g_closure_sink() checks to see if the object is still floating, and
757 if so, unsets the floating state and decreases the reference
758 count. If the closure is not floating, g_closure_sink() does
759 nothing. The reason for the existance of the floating state is to
760 prevent cumbersome code sequences like:
761 |[
762 closure = g_cclosure_new (cb_func, cb_data);
763 g_source_set_closure (source, closure);
764 g_closure_unref (closure); // XXX GObject doesn't really need this
765 ]|
766 Because g_source_set_closure() (and similar functions) take ownership of the
767 initial reference count, if it is unowned, we instead can write:
768 |[
769 g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
770 ]|
771 Generally, this function is used together with g_closure_ref(). Ane example
772 of storing a closure for later notification looks like:
773 |[
774 static GClosure *notify_closure = NULL;
775 void
776 foo_notify_set_closure (GClosure *closure)
777 {
778 if (notify_closure)
779 g_closure_unref (notify_closure);
780 notify_closure = closure;
781 if (notify_closure)
782 {
783 g_closure_ref (notify_closure);
784 g_closure_sink (notify_closure);
785 }
786 }
787 ]|
788 Because g_closure_sink() may decrement the reference count of a closure
789 (if it hasn't been called on @closure yet) just like g_closure_unref(),
790 g_closure_ref() should be called prior to this function.</doc>
791         <return-value transfer-ownership="none">
792           <type name="none" c:type="void"/>
793         </return-value>
794       </method>
795       <method name="unref" c:identifier="g_closure_unref">
796         <doc xml:whitespace="preserve">Decrements the reference count of a closure after it was previously
797 incremented by the same caller. If no other callers are using the
798 closure, then the closure will be destroyed and freed.</doc>
799         <return-value transfer-ownership="none">
800           <type name="none" c:type="void"/>
801         </return-value>
802       </method>
803     </record>
804     <callback name="ClosureMarshal" c:type="GClosureMarshal">
805       <doc xml:whitespace="preserve">The type used for marshaller functions.</doc>
806       <return-value transfer-ownership="none">
807         <type name="none" c:type="void"/>
808       </return-value>
809       <parameters>
810         <parameter name="closure" transfer-ownership="none">
811           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
812           <type name="Closure" c:type="GClosure*"/>
813         </parameter>
814         <parameter name="return_value" transfer-ownership="none">
815           <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>
816           <type name="Value" c:type="GValue*"/>
817         </parameter>
818         <parameter name="n_param_values" transfer-ownership="none">
819           <doc xml:whitespace="preserve">the length of the @param_values array</doc>
820           <type name="guint" c:type="guint"/>
821         </parameter>
822         <parameter name="param_values" transfer-ownership="none">
823           <doc xml:whitespace="preserve">an array of #GValue&lt;!-- --&gt;s holding the arguments on which to invoke the callback of @closure</doc>
824           <type name="Value" c:type="GValue*"/>
825         </parameter>
826         <parameter name="invocation_hint" transfer-ownership="none">
827           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
828           <type name="gpointer" c:type="gpointer"/>
829         </parameter>
830         <parameter name="marshal_data" transfer-ownership="none">
831           <doc xml:whitespace="preserve">additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal()</doc>
832           <type name="gpointer" c:type="gpointer"/>
833         </parameter>
834       </parameters>
835     </callback>
836     <callback name="ClosureNotify" c:type="GClosureNotify">
837       <doc xml:whitespace="preserve">The type used for the various notification callbacks which can be registered
838 on closures.</doc>
839       <return-value transfer-ownership="none">
840         <type name="none" c:type="void"/>
841       </return-value>
842       <parameters>
843         <parameter name="data" transfer-ownership="none">
844           <doc xml:whitespace="preserve">data specified when registering the notification callback</doc>
845           <type name="gpointer" c:type="gpointer"/>
846         </parameter>
847         <parameter name="closure" transfer-ownership="none">
848           <doc xml:whitespace="preserve">the #GClosure on which the notification is emitted</doc>
849           <type name="Closure" c:type="GClosure*"/>
850         </parameter>
851       </parameters>
852     </callback>
853     <record name="ClosureNotifyData" c:type="GClosureNotifyData">
854       <field name="data" writable="1">
855         <type name="gpointer" c:type="gpointer"/>
856       </field>
857       <field name="notify" writable="1">
858         <type name="ClosureNotify" c:type="GClosureNotify"/>
859       </field>
860     </record>
861     <bitfield name="ConnectFlags" c:type="GConnectFlags">
862       <doc xml:whitespace="preserve">The connection flags are used to specify the behaviour of a signal's 
863 connection.</doc>
864       <member name="after" value="1" c:identifier="G_CONNECT_AFTER"/>
865       <member name="swapped" value="2" c:identifier="G_CONNECT_SWAPPED"/>
866     </bitfield>
867     <glib:boxed glib:name="Date"
868                 c:symbol-prefix="date"
869                 glib:type-name="GDate"
870                 glib:get-type="g_date_get_type">
871     </glib:boxed>
872     <glib:boxed glib:name="DateTime"
873                 c:symbol-prefix="date_time"
874                 glib:type-name="GDateTime"
875                 glib:get-type="g_date_time_get_type">
876     </glib:boxed>
877     <record name="EnumClass" c:type="GEnumClass">
878       <doc xml:whitespace="preserve">The class of an enumeration type holds information about its 
879 possible values.</doc>
880       <field name="g_type_class" writable="1">
881         <type name="TypeClass" c:type="GTypeClass"/>
882       </field>
883       <field name="minimum" writable="1">
884         <type name="gint" c:type="gint"/>
885       </field>
886       <field name="maximum" writable="1">
887         <type name="gint" c:type="gint"/>
888       </field>
889       <field name="n_values" writable="1">
890         <type name="guint" c:type="guint"/>
891       </field>
892       <field name="values" writable="1">
893         <type name="EnumValue" c:type="GEnumValue*"/>
894       </field>
895     </record>
896     <record name="EnumValue" c:type="GEnumValue">
897       <doc xml:whitespace="preserve">A structure which contains a single enum value, its name, and its
898 nickname.</doc>
899       <field name="value" writable="1">
900         <type name="gint" c:type="gint"/>
901       </field>
902       <field name="value_name" writable="1">
903         <type name="utf8" c:type="gchar*"/>
904       </field>
905       <field name="value_nick" writable="1">
906         <type name="utf8" c:type="gchar*"/>
907       </field>
908     </record>
909     <glib:boxed glib:name="Error"
910                 c:symbol-prefix="error"
911                 glib:type-name="GError"
912                 glib:get-type="g_error_get_type">
913     </glib:boxed>
914     <record name="FlagsClass" c:type="GFlagsClass">
915       <doc xml:whitespace="preserve">The class of a flags type holds information about its 
916 possible values.</doc>
917       <field name="g_type_class" writable="1">
918         <type name="TypeClass" c:type="GTypeClass"/>
919       </field>
920       <field name="mask" writable="1">
921         <type name="guint" c:type="guint"/>
922       </field>
923       <field name="n_values" writable="1">
924         <type name="guint" c:type="guint"/>
925       </field>
926       <field name="values" writable="1">
927         <type name="FlagsValue" c:type="GFlagsValue*"/>
928       </field>
929     </record>
930     <record name="FlagsValue" c:type="GFlagsValue">
931       <doc xml:whitespace="preserve">A structure which contains a single flags value, its name, and its
932 nickname.</doc>
933       <field name="value" writable="1">
934         <type name="guint" c:type="guint"/>
935       </field>
936       <field name="value_name" writable="1">
937         <type name="utf8" c:type="gchar*"/>
938       </field>
939       <field name="value_nick" writable="1">
940         <type name="utf8" c:type="gchar*"/>
941       </field>
942     </record>
943     <glib:boxed glib:name="HashTable"
944                 c:symbol-prefix="hash_table"
945                 glib:type-name="GHashTable"
946                 glib:get-type="g_hash_table_get_type">
947     </glib:boxed>
948     <glib:boxed glib:name="IOChannel"
949                 c:symbol-prefix="io_channel"
950                 glib:type-name="GIOChannel"
951                 glib:get-type="g_io_channel_get_type">
952     </glib:boxed>
953     <bitfield name="IOCondition"
954               glib:type-name="GIOCondition"
955               glib:get-type="g_io_condition_get_type"
956               c:type="GIOCondition">
957       <member name="in" value="1" c:identifier="G_IO_IN" glib:nick="in"/>
958       <member name="out" value="4" c:identifier="G_IO_OUT" glib:nick="out"/>
959       <member name="pri" value="2" c:identifier="G_IO_PRI" glib:nick="pri"/>
960       <member name="err" value="8" c:identifier="G_IO_ERR" glib:nick="err"/>
961       <member name="hup" value="16" c:identifier="G_IO_HUP" glib:nick="hup"/>
962       <member name="nval"
963               value="32"
964               c:identifier="G_IO_NVAL"
965               glib:nick="nval"/>
966     </bitfield>
967     <class name="InitiallyUnowned"
968            c:symbol-prefix="object"
969            parent="Object"
970            abstract="1"
971            glib:type-name="GInitiallyUnowned"
972            glib:get-type="g_initially_unowned_get_type"
973            glib:type-struct="InitiallyUnownedClass">
974       <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; structure 
975 are private to the #GInitiallyUnowned implementation and should never be 
976 accessed directly.</doc>
977       <function name="bind_property"
978                 c:identifier="g_object_bind_property"
979                 version="2.26">
980         <doc xml:whitespace="preserve">Creates a binding between @source_property on @source and @target_property
981 on @target. Whenever the @source_property is changed the @target_property is
982 updated using the same value. For instance:
983 |[
984 g_object_bind_property (action, "active", widget, "sensitive", 0);
985 ]|
986 Will result in the "sensitive" property of the widget #GObject instance to be
987 updated with the same value of the "active" property of the action #GObject
988 instance.
989 If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
990 if @target_property on @target changes then the @source_property on @source
991 will be updated as well.
992 The binding will automatically be removed when either the @source or the
993 #GBinding instance.
994 A #GObject can have multiple bindings.
995 binding between the two #GObject instances. The binding is released
996 whenever the #GBinding reference count reaches zero.</doc>
997         <return-value transfer-ownership="none">
998           <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
999           <type name="Binding" c:type="GBinding*"/>
1000         </return-value>
1001         <parameters>
1002           <parameter name="source" transfer-ownership="none">
1003             <doc xml:whitespace="preserve">the source #GObject</doc>
1004             <type name="gpointer" c:type="gpointer"/>
1005           </parameter>
1006           <parameter name="source_property" transfer-ownership="none">
1007             <doc xml:whitespace="preserve">the property on @source to bind</doc>
1008             <type name="utf8" c:type="gchar*"/>
1009           </parameter>
1010           <parameter name="target" transfer-ownership="none">
1011             <doc xml:whitespace="preserve">the target #GObject</doc>
1012             <type name="gpointer" c:type="gpointer"/>
1013           </parameter>
1014           <parameter name="target_property" transfer-ownership="none">
1015             <doc xml:whitespace="preserve">the property on @target to bind</doc>
1016             <type name="utf8" c:type="gchar*"/>
1017           </parameter>
1018           <parameter name="flags" transfer-ownership="none">
1019             <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
1020             <type name="BindingFlags" c:type="GBindingFlags"/>
1021           </parameter>
1022         </parameters>
1023       </function>
1024       <function name="bind_property_full"
1025                 c:identifier="g_object_bind_property_full"
1026                 shadowed-by="bind_property_with_closures"
1027                 version="2.26">
1028         <doc xml:whitespace="preserve">Complete version of g_object_bind_property().
1029 Creates a binding between @source_property on @source and @target_property
1030 on @target, allowing you to set the transformation functions to be used by
1031 the binding.
1032 If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
1033 if @target_property on @target changes then the @source_property on @source
1034 will be updated as well. The @transform_from function is only used in case
1035 of bidirectional bindings, otherwise it will be ignored
1036 The binding will automatically be removed when either the @source or the
1037 #GBinding instance.
1038 A #GObject can have multiple bindings.
1039 &lt;note&gt;The same @user_data parameter will be used for both @transform_to
1040 and @transform_from transformation functions; the @notify function will
1041 be called once, when the binding is removed. If you need different data
1042 for each transformation function, please use
1043 g_object_bind_property_with_closures() instead.&lt;/note&gt;
1044 binding between the two #GObject instances. The binding is released
1045 whenever the #GBinding reference count reaches zero.</doc>
1046         <return-value transfer-ownership="none">
1047           <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
1048           <type name="Binding" c:type="GBinding*"/>
1049         </return-value>
1050         <parameters>
1051           <parameter name="source" transfer-ownership="none">
1052             <doc xml:whitespace="preserve">the source #GObject</doc>
1053             <type name="gpointer" c:type="gpointer"/>
1054           </parameter>
1055           <parameter name="source_property" transfer-ownership="none">
1056             <doc xml:whitespace="preserve">the property on @source to bind</doc>
1057             <type name="utf8" c:type="gchar*"/>
1058           </parameter>
1059           <parameter name="target" transfer-ownership="none">
1060             <doc xml:whitespace="preserve">the target #GObject</doc>
1061             <type name="gpointer" c:type="gpointer"/>
1062           </parameter>
1063           <parameter name="target_property" transfer-ownership="none">
1064             <doc xml:whitespace="preserve">the property on @target to bind</doc>
1065             <type name="utf8" c:type="gchar*"/>
1066           </parameter>
1067           <parameter name="flags" transfer-ownership="none">
1068             <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
1069             <type name="BindingFlags" c:type="GBindingFlags"/>
1070           </parameter>
1071           <parameter name="transform_to"
1072                      transfer-ownership="none"
1073                      allow-none="1"
1074                      scope="notified">
1075             <doc xml:whitespace="preserve">the transformation function from the @source to the @target, or %NULL to use the default</doc>
1076             <type name="BindingTransformFunc" c:type="GBindingTransformFunc"/>
1077           </parameter>
1078           <parameter name="transform_from"
1079                      transfer-ownership="none"
1080                      allow-none="1"
1081                      scope="notified"
1082                      closure="7"
1083                      destroy="8">
1084             <doc xml:whitespace="preserve">the transformation function from the @target to the @source, or %NULL to use the default</doc>
1085             <type name="BindingTransformFunc" c:type="GBindingTransformFunc"/>
1086           </parameter>
1087           <parameter name="user_data" transfer-ownership="none">
1088             <doc xml:whitespace="preserve">custom data to be passed to the transformation functions, or %NULL</doc>
1089             <type name="gpointer" c:type="gpointer"/>
1090           </parameter>
1091           <parameter name="notify" transfer-ownership="none" scope="async">
1092             <doc xml:whitespace="preserve">function to be called when disposing the binding, to free the resources used by the transformation functions</doc>
1093             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1094           </parameter>
1095         </parameters>
1096       </function>
1097       <function name="bind_property_with_closures"
1098                 c:identifier="g_object_bind_property_with_closures"
1099                 shadows="bind_property_full"
1100                 version="2.26">
1101         <doc xml:whitespace="preserve">Creates a binding between @source_property on @source and @target_property
1102 on @target, allowing you to set the transformation functions to be used by
1103 the binding.
1104 This function is the language bindings friendly version of
1105 g_object_bind_property_full(), using #GClosure&lt;!-- --&gt;s instead of
1106 function pointers.
1107 binding between the two #GObject instances. The binding is released
1108 whenever the #GBinding reference count reaches zero.</doc>
1109         <return-value transfer-ownership="none">
1110           <doc xml:whitespace="preserve">the #GBinding instance representing the</doc>
1111           <type name="Binding" c:type="GBinding*"/>
1112         </return-value>
1113         <parameters>
1114           <parameter name="source" transfer-ownership="none">
1115             <doc xml:whitespace="preserve">the source #GObject</doc>
1116             <type name="gpointer" c:type="gpointer"/>
1117           </parameter>
1118           <parameter name="source_property" transfer-ownership="none">
1119             <doc xml:whitespace="preserve">the property on @source to bind</doc>
1120             <type name="utf8" c:type="gchar*"/>
1121           </parameter>
1122           <parameter name="target" transfer-ownership="none">
1123             <doc xml:whitespace="preserve">the target #GObject</doc>
1124             <type name="gpointer" c:type="gpointer"/>
1125           </parameter>
1126           <parameter name="target_property" transfer-ownership="none">
1127             <doc xml:whitespace="preserve">the property on @target to bind</doc>
1128             <type name="utf8" c:type="gchar*"/>
1129           </parameter>
1130           <parameter name="flags" transfer-ownership="none">
1131             <doc xml:whitespace="preserve">flags to pass to #GBinding</doc>
1132             <type name="BindingFlags" c:type="GBindingFlags"/>
1133           </parameter>
1134           <parameter name="transform_to" transfer-ownership="none">
1135             <doc xml:whitespace="preserve">a #GClosure wrapping the transformation function from the @source to the @target, or %NULL to use the default</doc>
1136             <type name="Closure" c:type="GClosure*"/>
1137           </parameter>
1138           <parameter name="transform_from" transfer-ownership="none">
1139             <doc xml:whitespace="preserve">a #GClosure wrapping the transformation function from the @target to the @source, or %NULL to use the default</doc>
1140             <type name="Closure" c:type="GClosure*"/>
1141           </parameter>
1142         </parameters>
1143       </function>
1144       <function name="compat_control" c:identifier="g_object_compat_control">
1145         <return-value transfer-ownership="none">
1146           <type name="gulong" c:type="gsize"/>
1147         </return-value>
1148         <parameters>
1149           <parameter name="what" transfer-ownership="none">
1150             <type name="gulong" c:type="gsize"/>
1151           </parameter>
1152           <parameter name="data" transfer-ownership="none">
1153             <type name="gpointer" c:type="gpointer"/>
1154           </parameter>
1155         </parameters>
1156       </function>
1157       <function name="connect"
1158                 c:identifier="g_object_connect"
1159                 introspectable="0">
1160         <doc xml:whitespace="preserve">A convenience function to connect multiple signals at once.
1161 The signal specs expected by this function have the form
1162 "modifier::signal_name", where modifier can be one of the following:
1163 &lt;variablelist&gt;
1164 &lt;varlistentry&gt;
1165 &lt;term&gt;signal&lt;/term&gt;
1166 &lt;listitem&gt;&lt;para&gt;
1167 equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, 0)&lt;/literal&gt;
1168 &lt;/para&gt;&lt;/listitem&gt;
1169 &lt;/varlistentry&gt;
1170 &lt;varlistentry&gt;
1171 &lt;term&gt;object_signal&lt;/term&gt;
1172 &lt;term&gt;object-signal&lt;/term&gt;
1173 &lt;listitem&gt;&lt;para&gt;
1174 equivalent to &lt;literal&gt;g_signal_connect_object (..., 0)&lt;/literal&gt;
1175 &lt;/para&gt;&lt;/listitem&gt;
1176 &lt;/varlistentry&gt;
1177 &lt;varlistentry&gt;
1178 &lt;term&gt;swapped_signal&lt;/term&gt;
1179 &lt;term&gt;swapped-signal&lt;/term&gt;
1180 &lt;listitem&gt;&lt;para&gt;
1181 equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED)&lt;/literal&gt;
1182 &lt;/para&gt;&lt;/listitem&gt;
1183 &lt;/varlistentry&gt;
1184 &lt;varlistentry&gt;
1185 &lt;term&gt;swapped_object_signal&lt;/term&gt;
1186 &lt;term&gt;swapped-object-signal&lt;/term&gt;
1187 &lt;listitem&gt;&lt;para&gt;
1188 equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_SWAPPED)&lt;/literal&gt;
1189 &lt;/para&gt;&lt;/listitem&gt;
1190 &lt;/varlistentry&gt;
1191 &lt;varlistentry&gt;
1192 &lt;term&gt;signal_after&lt;/term&gt;
1193 &lt;term&gt;signal-after&lt;/term&gt;
1194 &lt;listitem&gt;&lt;para&gt;
1195 equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_AFTER)&lt;/literal&gt;
1196 &lt;/para&gt;&lt;/listitem&gt;
1197 &lt;/varlistentry&gt;
1198 &lt;varlistentry&gt;
1199 &lt;term&gt;object_signal_after&lt;/term&gt;
1200 &lt;term&gt;object-signal-after&lt;/term&gt;
1201 &lt;listitem&gt;&lt;para&gt;
1202 equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_AFTER)&lt;/literal&gt;
1203 &lt;/para&gt;&lt;/listitem&gt;
1204 &lt;/varlistentry&gt;
1205 &lt;varlistentry&gt;
1206 &lt;term&gt;swapped_signal_after&lt;/term&gt;
1207 &lt;term&gt;swapped-signal-after&lt;/term&gt;
1208 &lt;listitem&gt;&lt;para&gt;
1209 equivalent to &lt;literal&gt;g_signal_connect_data (..., NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER)&lt;/literal&gt;
1210 &lt;/para&gt;&lt;/listitem&gt;
1211 &lt;/varlistentry&gt;
1212 &lt;varlistentry&gt;
1213 &lt;term&gt;swapped_object_signal_after&lt;/term&gt;
1214 &lt;term&gt;swapped-object-signal-after&lt;/term&gt;
1215 &lt;listitem&gt;&lt;para&gt;
1216 equivalent to &lt;literal&gt;g_signal_connect_object (..., G_CONNECT_SWAPPED | G_CONNECT_AFTER)&lt;/literal&gt;
1217 &lt;/para&gt;&lt;/listitem&gt;
1218 &lt;/varlistentry&gt;
1219 &lt;/variablelist&gt;
1220 |[
1221 menu-&gt;toplevel = g_object_connect (g_object_new (GTK_TYPE_WINDOW,
1222 "type", GTK_WINDOW_POPUP,
1223 "child", menu,
1224 NULL),
1225 "signal::event", gtk_menu_window_event, menu,
1226 "signal::size_request", gtk_menu_window_size_request, menu,
1227 "signal::destroy", gtk_widget_destroyed, &amp;amp;menu-&amp;gt;toplevel,
1228 NULL);
1229 ]|</doc>
1230         <return-value>
1231           <doc xml:whitespace="preserve">@object</doc>
1232           <type name="gpointer" c:type="gpointer"/>
1233         </return-value>
1234         <parameters>
1235           <parameter name="object" transfer-ownership="none">
1236             <doc xml:whitespace="preserve">a #GObject</doc>
1237             <type name="gpointer" c:type="gpointer"/>
1238           </parameter>
1239           <parameter name="signal_spec" transfer-ownership="none">
1240             <doc xml:whitespace="preserve">the spec for the first signal</doc>
1241             <type name="utf8" c:type="gchar*"/>
1242           </parameter>
1243           <parameter transfer-ownership="none">
1244             <varargs>
1245             </varargs>
1246           </parameter>
1247         </parameters>
1248       </function>
1249       <function name="disconnect"
1250                 c:identifier="g_object_disconnect"
1251                 introspectable="0">
1252         <doc xml:whitespace="preserve">A convenience function to disconnect multiple signals at once.
1253 The signal specs expected by this function have the form
1254 "any_signal", which means to disconnect any signal with matching
1255 callback and data, or "any_signal::signal_name", which only
1256 disconnects the signal named "signal_name".</doc>
1257         <return-value transfer-ownership="none">
1258           <type name="none" c:type="void"/>
1259         </return-value>
1260         <parameters>
1261           <parameter name="object" transfer-ownership="none">
1262             <doc xml:whitespace="preserve">a #GObject</doc>
1263             <type name="gpointer" c:type="gpointer"/>
1264           </parameter>
1265           <parameter name="signal_spec" transfer-ownership="none">
1266             <doc xml:whitespace="preserve">the spec for the first signal</doc>
1267             <type name="utf8" c:type="gchar*"/>
1268           </parameter>
1269           <parameter transfer-ownership="none">
1270             <varargs>
1271             </varargs>
1272           </parameter>
1273         </parameters>
1274       </function>
1275       <function name="get" c:identifier="g_object_get" introspectable="0">
1276         <doc xml:whitespace="preserve">Gets properties of an object.
1277 In general, a copy is made of the property contents and the caller
1278 is responsible for freeing the memory in the appropriate manner for
1279 the type, for instance by calling g_free() or g_object_unref().
1280 &lt;example&gt;
1281 &lt;title&gt;Using g_object_get(&lt;!-- --&gt;)&lt;/title&gt;
1282 An example of using g_object_get() to get the contents
1283 of three properties - one of type #G_TYPE_INT,
1284 one of type #G_TYPE_STRING, and one of type #G_TYPE_OBJECT:
1285 &lt;programlisting&gt;
1286 gint intval;
1287 gchar *strval;
1288 GObject *objval;
1289 g_object_get (my_object,
1290 "int-property", &amp;intval,
1291 "str-property", &amp;strval,
1292 "obj-property", &amp;objval,
1293 NULL);
1294 // Do something with intval, strval, objval
1295 g_free (strval);
1296 g_object_unref (objval);
1297 &lt;/programlisting&gt;
1298 &lt;/example&gt;</doc>
1299         <return-value transfer-ownership="none">
1300           <type name="none" c:type="void"/>
1301         </return-value>
1302         <parameters>
1303           <parameter name="object" transfer-ownership="none">
1304             <doc xml:whitespace="preserve">a #GObject</doc>
1305             <type name="gpointer" c:type="gpointer"/>
1306           </parameter>
1307           <parameter name="first_property_name" transfer-ownership="none">
1308             <doc xml:whitespace="preserve">name of the first property to get</doc>
1309             <type name="utf8" c:type="gchar*"/>
1310           </parameter>
1311           <parameter transfer-ownership="none">
1312             <varargs>
1313             </varargs>
1314           </parameter>
1315         </parameters>
1316       </function>
1317       <function name="interface_find_property"
1318                 c:identifier="g_object_interface_find_property"
1319                 version="2.4"
1320                 introspectable="0">
1321         <doc xml:whitespace="preserve">Find the #GParamSpec with the given name for an
1322 interface. Generally, the interface vtable passed in as @g_iface
1323 will be the default vtable from g_type_default_interface_ref(), or,
1324 if you know the interface has already been loaded,
1325 g_type_default_interface_peek().
1326 name @property_name, or %NULL if no such property exists.</doc>
1327         <return-value>
1328           <doc xml:whitespace="preserve">the #GParamSpec for the property of the interface with the</doc>
1329           <type name="ParamSpec" c:type="GParamSpec*"/>
1330         </return-value>
1331         <parameters>
1332           <parameter name="g_iface" transfer-ownership="none">
1333             <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface</doc>
1334             <type name="gpointer" c:type="gpointer"/>
1335           </parameter>
1336           <parameter name="property_name" transfer-ownership="none">
1337             <doc xml:whitespace="preserve">name of a property to lookup.</doc>
1338             <type name="utf8" c:type="gchar*"/>
1339           </parameter>
1340         </parameters>
1341       </function>
1342       <function name="interface_install_property"
1343                 c:identifier="g_object_interface_install_property"
1344                 version="2.4">
1345         <doc xml:whitespace="preserve">Add a property to an interface; this is only useful for interfaces
1346 that are added to GObject-derived types. Adding a property to an
1347 interface forces all objects classes with that interface to have a
1348 compatible property. The compatible property could be a newly
1349 created #GParamSpec, but normally
1350 g_object_class_override_property() will be used so that the object
1351 class only needs to provide an implementation and inherits the
1352 property description, default value, bounds, and so forth from the
1353 interface property.
1354 This function is meant to be called from the interface's default
1355 vtable initialization function (the @class_init member of
1356 #GTypeInfo.) It must not be called after after @class_init has
1357 been called for any object types implementing this interface.</doc>
1358         <return-value transfer-ownership="none">
1359           <type name="none" c:type="void"/>
1360         </return-value>
1361         <parameters>
1362           <parameter name="g_iface" transfer-ownership="none">
1363             <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface.</doc>
1364             <type name="gpointer" c:type="gpointer"/>
1365           </parameter>
1366           <parameter name="pspec" transfer-ownership="none">
1367             <doc xml:whitespace="preserve">the #GParamSpec for the new property</doc>
1368             <type name="ParamSpec" c:type="GParamSpec*"/>
1369           </parameter>
1370         </parameters>
1371       </function>
1372       <function name="interface_list_properties"
1373                 c:identifier="g_object_interface_list_properties"
1374                 version="2.4"
1375                 introspectable="0">
1376         <doc xml:whitespace="preserve">Lists the properties of an interface.Generally, the interface
1377 vtable passed in as @g_iface will be the default vtable from
1378 g_type_default_interface_ref(), or, if you know the interface has
1379 already been loaded, g_type_default_interface_peek().
1380 structures. The paramspecs are owned by GLib, but the
1381 array should be freed with g_free() when you are done with
1382 it.</doc>
1383         <return-value>
1384           <doc xml:whitespace="preserve">a pointer to an array of pointers to #GParamSpec</doc>
1385           <type name="ParamSpec" c:type="GParamSpec**"/>
1386         </return-value>
1387         <parameters>
1388           <parameter name="g_iface" transfer-ownership="none">
1389             <doc xml:whitespace="preserve">any interface vtable for the interface, or the default vtable for the interface</doc>
1390             <type name="gpointer" c:type="gpointer"/>
1391           </parameter>
1392           <parameter name="n_properties_p" transfer-ownership="none">
1393             <doc xml:whitespace="preserve">location to store number of properties returned.</doc>
1394             <type name="guint" c:type="guint*"/>
1395           </parameter>
1396         </parameters>
1397       </function>
1398       <function name="is_floating"
1399                 c:identifier="g_object_is_floating"
1400                 version="2.10">
1401         <doc xml:whitespace="preserve">Checks wether @object has a &lt;link linkend="floating-ref"&gt;floating&lt;/link&gt;
1402 reference.</doc>
1403         <return-value transfer-ownership="none">
1404           <doc xml:whitespace="preserve">%TRUE if @object has a floating reference</doc>
1405           <type name="gboolean" c:type="gboolean"/>
1406         </return-value>
1407         <parameters>
1408           <parameter name="object" transfer-ownership="none">
1409             <doc xml:whitespace="preserve">a #GObject</doc>
1410             <type name="gpointer" c:type="gpointer"/>
1411           </parameter>
1412         </parameters>
1413       </function>
1414       <function name="new" c:identifier="g_object_new" introspectable="0">
1415         <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
1416 Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
1417 which are not explicitly specified are set to their default values.</doc>
1418         <return-value>
1419           <doc xml:whitespace="preserve">a new instance of @object_type</doc>
1420           <type name="gpointer" c:type="gpointer"/>
1421         </return-value>
1422         <parameters>
1423           <parameter name="object_type" transfer-ownership="none">
1424             <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
1425             <type name="GType" c:type="GType"/>
1426           </parameter>
1427           <parameter name="first_property_name" transfer-ownership="none">
1428             <doc xml:whitespace="preserve">the name of the first property</doc>
1429             <type name="utf8" c:type="gchar*"/>
1430           </parameter>
1431           <parameter transfer-ownership="none">
1432             <varargs>
1433             </varargs>
1434           </parameter>
1435         </parameters>
1436       </function>
1437       <function name="new_valist"
1438                 c:identifier="g_object_new_valist"
1439                 introspectable="0">
1440         <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
1441 Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
1442 which are not explicitly specified are set to their default values.</doc>
1443         <return-value>
1444           <doc xml:whitespace="preserve">a new instance of @object_type</doc>
1445           <type name="Object" c:type="GObject*"/>
1446         </return-value>
1447         <parameters>
1448           <parameter name="object_type" transfer-ownership="none">
1449             <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
1450             <type name="GType" c:type="GType"/>
1451           </parameter>
1452           <parameter name="first_property_name" transfer-ownership="none">
1453             <doc xml:whitespace="preserve">the name of the first property</doc>
1454             <type name="utf8" c:type="gchar*"/>
1455           </parameter>
1456           <parameter name="var_args" transfer-ownership="none">
1457             <doc xml:whitespace="preserve">the value of the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
1458             <type name="va_list" c:type="va_list"/>
1459           </parameter>
1460         </parameters>
1461       </function>
1462       <function name="newv" c:identifier="g_object_newv" introspectable="0">
1463         <doc xml:whitespace="preserve">Creates a new instance of a #GObject subtype and sets its properties.
1464 Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
1465 which are not explicitly specified are set to their default values.</doc>
1466         <return-value>
1467           <doc xml:whitespace="preserve">a new instance of @object_type</doc>
1468           <type name="gpointer" c:type="gpointer"/>
1469         </return-value>
1470         <parameters>
1471           <parameter name="object_type" transfer-ownership="none">
1472             <doc xml:whitespace="preserve">the type id of the #GObject subtype to instantiate</doc>
1473             <type name="GType" c:type="GType"/>
1474           </parameter>
1475           <parameter name="n_parameters" transfer-ownership="none">
1476             <doc xml:whitespace="preserve">the length of the @parameters array</doc>
1477             <type name="guint" c:type="guint"/>
1478           </parameter>
1479           <parameter name="parameters" transfer-ownership="none">
1480             <doc xml:whitespace="preserve">an array of #GParameter</doc>
1481             <type name="Parameter" c:type="GParameter*"/>
1482           </parameter>
1483         </parameters>
1484       </function>
1485       <function name="ref" c:identifier="g_object_ref" introspectable="0">
1486         <doc xml:whitespace="preserve">Increases the reference count of @object.</doc>
1487         <return-value>
1488           <doc xml:whitespace="preserve">the same @object</doc>
1489           <type name="gpointer" c:type="gpointer"/>
1490         </return-value>
1491         <parameters>
1492           <parameter name="object" transfer-ownership="none">
1493             <doc xml:whitespace="preserve">a #GObject</doc>
1494             <type name="gpointer" c:type="gpointer"/>
1495           </parameter>
1496         </parameters>
1497       </function>
1498       <function name="ref_sink"
1499                 c:identifier="g_object_ref_sink"
1500                 version="2.10"
1501                 introspectable="0">
1502         <doc xml:whitespace="preserve">Increase the reference count of @object, and possibly remove the
1503 &lt;link linkend="floating-ref"&gt;floating&lt;/link&gt; reference, if @object
1504 has a floating reference.
1505 In other words, if the object is floating, then this call "assumes
1506 ownership" of the floating reference, converting it to a normal
1507 reference by clearing the floating flag while leaving the reference
1508 count unchanged.  If the object is not floating, then this call
1509 adds a new normal reference increasing the reference count by one.</doc>
1510         <return-value>
1511           <doc xml:whitespace="preserve">@object</doc>
1512           <type name="gpointer" c:type="gpointer"/>
1513         </return-value>
1514         <parameters>
1515           <parameter name="object" transfer-ownership="none">
1516             <doc xml:whitespace="preserve">a #GObject</doc>
1517             <type name="gpointer" c:type="gpointer"/>
1518           </parameter>
1519         </parameters>
1520       </function>
1521       <function name="set" c:identifier="g_object_set" introspectable="0">
1522         <doc xml:whitespace="preserve">Sets properties on an object.</doc>
1523         <return-value transfer-ownership="none">
1524           <type name="none" c:type="void"/>
1525         </return-value>
1526         <parameters>
1527           <parameter name="object" transfer-ownership="none">
1528             <doc xml:whitespace="preserve">a #GObject</doc>
1529             <type name="gpointer" c:type="gpointer"/>
1530           </parameter>
1531           <parameter name="first_property_name" transfer-ownership="none">
1532             <doc xml:whitespace="preserve">name of the first property to set</doc>
1533             <type name="utf8" c:type="gchar*"/>
1534           </parameter>
1535           <parameter transfer-ownership="none">
1536             <varargs>
1537             </varargs>
1538           </parameter>
1539         </parameters>
1540       </function>
1541       <function name="type_init" c:identifier="g_object_type_init">
1542         <return-value transfer-ownership="none">
1543           <type name="none" c:type="void"/>
1544         </return-value>
1545       </function>
1546       <function name="unref" c:identifier="g_object_unref">
1547         <doc xml:whitespace="preserve">Decreases the reference count of @object. When its reference count
1548 drops to 0, the object is finalized (i.e. its memory is freed).</doc>
1549         <return-value transfer-ownership="none">
1550           <type name="none" c:type="void"/>
1551         </return-value>
1552         <parameters>
1553           <parameter name="object" transfer-ownership="none">
1554             <doc xml:whitespace="preserve">a #GObject</doc>
1555             <type name="gpointer" c:type="gpointer"/>
1556           </parameter>
1557         </parameters>
1558       </function>
1559       <field name="g_type_instance" writable="1">
1560         <type name="TypeInstance" c:type="GTypeInstance"/>
1561       </field>
1562       <field name="ref_count" writable="1">
1563         <type name="guint" c:type="guint"/>
1564       </field>
1565       <field name="qdata" writable="1">
1566         <type name="GLib.Data" c:type="GData*"/>
1567       </field>
1568     </class>
1569     <record name="InitiallyUnownedClass"
1570             c:type="GInitiallyUnownedClass"
1571             disguised="1"
1572             glib:is-gtype-struct-for="InitiallyUnowned">
1573       <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; type.</doc>
1574       <field name="g_type_class">
1575         <type name="TypeClass" c:type="GTypeClass"/>
1576       </field>
1577       <field name="construct_properties">
1578         <type name="GLib.SList" c:type="GSList*">
1579           <type name="gpointer" c:type="gpointer"/>
1580         </type>
1581       </field>
1582       <field name="constructor" introspectable="0">
1583         <callback name="constructor" introspectable="0">
1584           <return-value>
1585             <type name="Object" c:type="GObject*"/>
1586           </return-value>
1587           <parameters>
1588             <parameter name="type" transfer-ownership="none">
1589               <type name="GType" c:type="GType"/>
1590             </parameter>
1591             <parameter name="n_construct_properties" transfer-ownership="none">
1592               <type name="guint" c:type="guint"/>
1593             </parameter>
1594             <parameter name="construct_properties" transfer-ownership="none">
1595               <type name="ObjectConstructParam"
1596                     c:type="GObjectConstructParam*"/>
1597             </parameter>
1598           </parameters>
1599         </callback>
1600       </field>
1601       <field name="set_property">
1602         <callback name="set_property">
1603           <return-value transfer-ownership="none">
1604             <type name="none" c:type="void"/>
1605           </return-value>
1606           <parameters>
1607             <parameter name="object" transfer-ownership="none">
1608               <type name="Object" c:type="GObject*"/>
1609             </parameter>
1610             <parameter name="property_id" transfer-ownership="none">
1611               <type name="guint" c:type="guint"/>
1612             </parameter>
1613             <parameter name="value" transfer-ownership="none">
1614               <type name="Value" c:type="GValue*"/>
1615             </parameter>
1616             <parameter name="pspec" transfer-ownership="none">
1617               <type name="ParamSpec" c:type="GParamSpec*"/>
1618             </parameter>
1619           </parameters>
1620         </callback>
1621       </field>
1622       <field name="get_property">
1623         <callback name="get_property">
1624           <return-value transfer-ownership="none">
1625             <type name="none" c:type="void"/>
1626           </return-value>
1627           <parameters>
1628             <parameter name="object" transfer-ownership="none">
1629               <type name="Object" c:type="GObject*"/>
1630             </parameter>
1631             <parameter name="property_id" transfer-ownership="none">
1632               <type name="guint" c:type="guint"/>
1633             </parameter>
1634             <parameter name="value" transfer-ownership="none">
1635               <type name="Value" c:type="GValue*"/>
1636             </parameter>
1637             <parameter name="pspec" transfer-ownership="none">
1638               <type name="ParamSpec" c:type="GParamSpec*"/>
1639             </parameter>
1640           </parameters>
1641         </callback>
1642       </field>
1643       <field name="dispose">
1644         <callback name="dispose">
1645           <return-value transfer-ownership="none">
1646             <type name="none" c:type="void"/>
1647           </return-value>
1648           <parameters>
1649             <parameter name="object" transfer-ownership="none">
1650               <type name="Object" c:type="GObject*"/>
1651             </parameter>
1652           </parameters>
1653         </callback>
1654       </field>
1655       <field name="finalize">
1656         <callback name="finalize">
1657           <return-value transfer-ownership="none">
1658             <type name="none" c:type="void"/>
1659           </return-value>
1660           <parameters>
1661             <parameter name="object" transfer-ownership="none">
1662               <type name="Object" c:type="GObject*"/>
1663             </parameter>
1664           </parameters>
1665         </callback>
1666       </field>
1667       <field name="dispatch_properties_changed">
1668         <callback name="dispatch_properties_changed">
1669           <return-value transfer-ownership="none">
1670             <type name="none" c:type="void"/>
1671           </return-value>
1672           <parameters>
1673             <parameter name="object" transfer-ownership="none">
1674               <type name="Object" c:type="GObject*"/>
1675             </parameter>
1676             <parameter name="n_pspecs" transfer-ownership="none">
1677               <type name="guint" c:type="guint"/>
1678             </parameter>
1679             <parameter name="pspecs" transfer-ownership="none">
1680               <type name="ParamSpec" c:type="GParamSpec**"/>
1681             </parameter>
1682           </parameters>
1683         </callback>
1684       </field>
1685       <field name="notify">
1686         <callback name="notify">
1687           <return-value transfer-ownership="none">
1688             <type name="none" c:type="void"/>
1689           </return-value>
1690           <parameters>
1691             <parameter name="object" transfer-ownership="none">
1692               <type name="Object" c:type="GObject*"/>
1693             </parameter>
1694             <parameter name="pspec" transfer-ownership="none">
1695               <type name="ParamSpec" c:type="GParamSpec*"/>
1696             </parameter>
1697           </parameters>
1698         </callback>
1699       </field>
1700       <field name="constructed">
1701         <callback name="constructed">
1702           <return-value transfer-ownership="none">
1703             <type name="none" c:type="void"/>
1704           </return-value>
1705           <parameters>
1706             <parameter name="object" transfer-ownership="none">
1707               <type name="Object" c:type="GObject*"/>
1708             </parameter>
1709           </parameters>
1710         </callback>
1711       </field>
1712       <field name="flags">
1713         <type name="gulong" c:type="gsize"/>
1714       </field>
1715       <field name="pdummy">
1716         <array zero-terminated="0" c:type="gpointer" fixed-size="6">
1717           <type name="gpointer" c:type="gpointer"/>
1718         </array>
1719       </field>
1720     </record>
1721     <callback name="InstanceInitFunc" c:type="GInstanceInitFunc">
1722       <doc xml:whitespace="preserve">A callback function used by the type system to initialize a new
1723 instance of a type. This function initializes all instance members and
1724 allocates any resources required by it.
1725 Initialization of a derived instance involves calling all its parent
1726 types instance initializers, so the class member of the instance
1727 is altered during its initialization to always point to the class that
1728 belongs to the type the current initializer was introduced for.</doc>
1729       <return-value transfer-ownership="none">
1730         <type name="none" c:type="void"/>
1731       </return-value>
1732       <parameters>
1733         <parameter name="instance" transfer-ownership="none">
1734           <doc xml:whitespace="preserve">The instance to initialize.</doc>
1735           <type name="TypeInstance" c:type="GTypeInstance*"/>
1736         </parameter>
1737         <parameter name="g_class" transfer-ownership="none">
1738           <doc xml:whitespace="preserve">The class of the type the instance is created for.</doc>
1739           <type name="gpointer" c:type="gpointer"/>
1740         </parameter>
1741       </parameters>
1742     </callback>
1743     <callback name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc">
1744       <doc xml:whitespace="preserve">A callback function used by the type system to finalize an interface.
1745 This function should destroy any internal data and release any resources
1746 allocated by the corresponding GInterfaceInitFunc() function.</doc>
1747       <return-value transfer-ownership="none">
1748         <type name="none" c:type="void"/>
1749       </return-value>
1750       <parameters>
1751         <parameter name="g_iface" transfer-ownership="none">
1752           <doc xml:whitespace="preserve">The interface structure to finalize.</doc>
1753           <type name="gpointer" c:type="gpointer"/>
1754         </parameter>
1755         <parameter name="iface_data" transfer-ownership="none">
1756           <doc xml:whitespace="preserve">The @interface_data supplied via the #GInterfaceInfo structure.</doc>
1757           <type name="gpointer" c:type="gpointer"/>
1758         </parameter>
1759       </parameters>
1760     </callback>
1761     <record name="InterfaceInfo" c:type="GInterfaceInfo">
1762       <doc xml:whitespace="preserve">A structure that provides information to the type system which is
1763 used specifically for managing interface types.</doc>
1764       <field name="interface_init" writable="1">
1765         <type name="InterfaceInitFunc" c:type="GInterfaceInitFunc"/>
1766       </field>
1767       <field name="interface_finalize" writable="1">
1768         <type name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc"/>
1769       </field>
1770       <field name="interface_data" writable="1">
1771         <type name="gpointer" c:type="gpointer"/>
1772       </field>
1773     </record>
1774     <callback name="InterfaceInitFunc" c:type="GInterfaceInitFunc">
1775       <doc xml:whitespace="preserve">A callback function used by the type system to initialize a new
1776 interface.  This function should initialize all internal data and
1777 allocate any resources required by the interface.</doc>
1778       <return-value transfer-ownership="none">
1779         <type name="none" c:type="void"/>
1780       </return-value>
1781       <parameters>
1782         <parameter name="g_iface" transfer-ownership="none">
1783           <doc xml:whitespace="preserve">The interface structure to initialize.</doc>
1784           <type name="gpointer" c:type="gpointer"/>
1785         </parameter>
1786         <parameter name="iface_data" transfer-ownership="none">
1787           <doc xml:whitespace="preserve">The @interface_data supplied via the #GInterfaceInfo structure.</doc>
1788           <type name="gpointer" c:type="gpointer"/>
1789         </parameter>
1790       </parameters>
1791     </callback>
1792     <class name="Object"
1793            c:symbol-prefix="object"
1794            parent="Object"
1795            abstract="1"
1796            glib:type-name="GObject"
1797            glib:get-type="intern"
1798            glib:type-struct="ObjectClass">
1799       <doc xml:whitespace="preserve">All the fields in the &lt;structname&gt;GObject&lt;/structname&gt; structure are private 
1800 to the #GObject implementation and should never be accessed directly.</doc>
1801       <virtual-method name="constructed">
1802         <return-value transfer-ownership="none">
1803           <type name="none" c:type="void"/>
1804         </return-value>
1805       </virtual-method>
1806       <virtual-method name="dispatch_properties_changed">
1807         <return-value transfer-ownership="none">
1808           <type name="none" c:type="void"/>
1809         </return-value>
1810         <parameters>
1811           <parameter name="n_pspecs" transfer-ownership="none">
1812             <type name="guint" c:type="guint"/>
1813           </parameter>
1814           <parameter name="pspecs" transfer-ownership="none">
1815             <type name="ParamSpec" c:type="GParamSpec**"/>
1816           </parameter>
1817         </parameters>
1818       </virtual-method>
1819       <virtual-method name="dispose">
1820         <return-value transfer-ownership="none">
1821           <type name="none" c:type="void"/>
1822         </return-value>
1823       </virtual-method>
1824       <virtual-method name="finalize">
1825         <return-value transfer-ownership="none">
1826           <type name="none" c:type="void"/>
1827         </return-value>
1828       </virtual-method>
1829       <virtual-method name="get_property">
1830         <return-value transfer-ownership="none">
1831           <type name="none" c:type="void"/>
1832         </return-value>
1833         <parameters>
1834           <parameter name="property_id" transfer-ownership="none">
1835             <type name="guint" c:type="guint"/>
1836           </parameter>
1837           <parameter name="value" transfer-ownership="none">
1838             <type name="Value" c:type="GValue*"/>
1839           </parameter>
1840           <parameter name="pspec" transfer-ownership="none">
1841             <type name="ParamSpec" c:type="GParamSpec*"/>
1842           </parameter>
1843         </parameters>
1844       </virtual-method>
1845       <virtual-method name="notify" invoker="notify">
1846         <doc xml:whitespace="preserve">Emits a "notify" signal for the property @property_name on @object.
1847 When possible, eg. when signaling a property change from within the class
1848 that registered the property, you should use g_object_notify_by_pspec()
1849 instead.</doc>
1850         <return-value transfer-ownership="none">
1851           <type name="none" c:type="void"/>
1852         </return-value>
1853         <parameters>
1854           <parameter name="pspec" transfer-ownership="none">
1855             <type name="ParamSpec" c:type="GParamSpec*"/>
1856           </parameter>
1857         </parameters>
1858       </virtual-method>
1859       <virtual-method name="set_property">
1860         <return-value transfer-ownership="none">
1861           <type name="none" c:type="void"/>
1862         </return-value>
1863         <parameters>
1864           <parameter name="property_id" transfer-ownership="none">
1865             <type name="guint" c:type="guint"/>
1866           </parameter>
1867           <parameter name="value" transfer-ownership="none">
1868             <type name="Value" c:type="GValue*"/>
1869           </parameter>
1870           <parameter name="pspec" transfer-ownership="none">
1871             <type name="ParamSpec" c:type="GParamSpec*"/>
1872           </parameter>
1873         </parameters>
1874       </virtual-method>
1875       <method name="add_toggle_ref"
1876               c:identifier="g_object_add_toggle_ref"
1877               version="2.8"
1878               introspectable="0">
1879         <doc xml:whitespace="preserve">Increases the reference count of the object by one and sets a
1880 callback to be called when all other references to the object are
1881 dropped, or when this is already the last reference to the object
1882 and another reference is established.
1883 This functionality is intended for binding @object to a proxy
1884 object managed by another memory manager. This is done with two
1885 g_object_add_toggle_ref() and a reverse reference to the proxy
1886 object which is either a strong reference or weak reference.
1887 The setup is that when there are no other references to @object,
1888 only a weak reference is held in the reverse direction from @object
1889 to the proxy object, but when there are other references held to
1890 when the reference from @object to the proxy object should be
1891 &lt;firstterm&gt;toggled&lt;/firstterm&gt; from strong to weak (@is_last_ref
1892 true) or weak to strong (@is_last_ref false).
1893 Since a (normal) reference must be held to the object before
1894 calling g_object_toggle_ref(), the initial state of the reverse
1895 link is always strong.
1896 Multiple toggle references may be added to the same gobject,
1897 however if there are multiple toggle references to an object, none
1898 of them will ever be notified until all but one are removed.  For
1899 this reason, you should only ever use a toggle reference if there
1900 is important state in the proxy object.</doc>
1901         <return-value transfer-ownership="none">
1902           <type name="none" c:type="void"/>
1903         </return-value>
1904         <parameters>
1905           <parameter name="notify" transfer-ownership="none" closure="1">
1906             <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>
1907             <type name="ToggleNotify" c:type="GToggleNotify"/>
1908           </parameter>
1909           <parameter name="data" transfer-ownership="none">
1910             <doc xml:whitespace="preserve">data to pass to @notify</doc>
1911             <type name="gpointer" c:type="gpointer"/>
1912           </parameter>
1913         </parameters>
1914       </method>
1915       <method name="add_weak_pointer" c:identifier="g_object_add_weak_pointer">
1916         <doc xml:whitespace="preserve">Adds a weak reference from weak_pointer to @object to indicate that
1917 the pointer located at @weak_pointer_location is only valid during
1918 the lifetime of @object. When the @object is finalized,</doc>
1919         <return-value transfer-ownership="none">
1920           <type name="none" c:type="void"/>
1921         </return-value>
1922         <parameters>
1923           <parameter name="weak_pointer_location"
1924                      direction="inout"
1925                      caller-allocates="0"
1926                      transfer-ownership="full">
1927             <doc xml:whitespace="preserve">The memory address of a pointer.</doc>
1928             <type name="gpointer" c:type="gpointer*"/>
1929           </parameter>
1930         </parameters>
1931       </method>
1932       <method name="force_floating"
1933               c:identifier="g_object_force_floating"
1934               version="2.10">
1935         <doc xml:whitespace="preserve">This function is intended for #GObject implementations to re-enforce a
1936 &lt;link linkend="floating-ref"&gt;floating&lt;/link&gt; object reference.
1937 Doing this is seldomly required, all
1938 #GInitiallyUnowned&lt;!-- --&gt;s are created with a floating reference which
1939 usually just needs to be sunken by calling g_object_ref_sink().</doc>
1940         <return-value transfer-ownership="none">
1941           <type name="none" c:type="void"/>
1942         </return-value>
1943       </method>
1944       <method name="freeze_notify" c:identifier="g_object_freeze_notify">
1945         <doc xml:whitespace="preserve">Increases the freeze count on @object. If the freeze count is
1946 non-zero, the emission of "notify" signals on @object is
1947 stopped. The signals are queued until the freeze count is decreased
1948 to zero.
1949 This is necessary for accessors that modify multiple properties to prevent
1950 premature notification while the object is still being modified.</doc>
1951         <return-value transfer-ownership="none">
1952           <type name="none" c:type="void"/>
1953         </return-value>
1954       </method>
1955       <method name="get_data"
1956               c:identifier="g_object_get_data"
1957               introspectable="0">
1958         <doc xml:whitespace="preserve">Gets a named field from the objects table of associations (see g_object_set_data()).</doc>
1959         <return-value>
1960           <doc xml:whitespace="preserve">the data if found, or %NULL if no such data exists.</doc>
1961           <type name="gpointer" c:type="gpointer"/>
1962         </return-value>
1963         <parameters>
1964           <parameter name="key" transfer-ownership="none">
1965             <doc xml:whitespace="preserve">name of the key for that association</doc>
1966             <type name="utf8" c:type="gchar*"/>
1967           </parameter>
1968         </parameters>
1969       </method>
1970       <method name="get_property" c:identifier="g_object_get_property">
1971         <doc xml:whitespace="preserve">Gets a property of an object.
1972 In general, a copy is made of the property contents and the caller is
1973 responsible for freeing the memory by calling g_value_unset().
1974 Note that g_object_get_property() is really intended for language
1975 bindings, g_object_get() is much more convenient for C programming.</doc>
1976         <return-value transfer-ownership="none">
1977           <type name="none" c:type="void"/>
1978         </return-value>
1979         <parameters>
1980           <parameter name="property_name" transfer-ownership="none">
1981             <doc xml:whitespace="preserve">the name of the property to get</doc>
1982             <type name="utf8" c:type="gchar*"/>
1983           </parameter>
1984           <parameter name="value" transfer-ownership="none">
1985             <doc xml:whitespace="preserve">return location for the property value</doc>
1986             <type name="Value" c:type="GValue*"/>
1987           </parameter>
1988         </parameters>
1989       </method>
1990       <method name="get_qdata"
1991               c:identifier="g_object_get_qdata"
1992               introspectable="0">
1993         <doc xml:whitespace="preserve">This function gets back user data pointers stored via
1994 g_object_set_qdata().</doc>
1995         <return-value>
1996           <doc xml:whitespace="preserve">The user data pointer set, or %NULL</doc>
1997           <type name="gpointer" c:type="gpointer"/>
1998         </return-value>
1999         <parameters>
2000           <parameter name="quark" transfer-ownership="none">
2001             <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
2002             <type name="GLib.Quark" c:type="GQuark"/>
2003           </parameter>
2004         </parameters>
2005       </method>
2006       <method name="get_valist"
2007               c:identifier="g_object_get_valist"
2008               introspectable="0">
2009         <doc xml:whitespace="preserve">Gets properties of an object.
2010 In general, a copy is made of the property contents and the caller
2011 is responsible for freeing the memory in the appropriate manner for
2012 the type, for instance by calling g_free() or g_object_unref().
2013 See g_object_get().</doc>
2014         <return-value transfer-ownership="none">
2015           <type name="none" c:type="void"/>
2016         </return-value>
2017         <parameters>
2018           <parameter name="first_property_name" transfer-ownership="none">
2019             <doc xml:whitespace="preserve">name of the first property to get</doc>
2020             <type name="utf8" c:type="gchar*"/>
2021           </parameter>
2022           <parameter name="var_args" transfer-ownership="none">
2023             <doc xml:whitespace="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
2024             <type name="va_list" c:type="va_list"/>
2025           </parameter>
2026         </parameters>
2027       </method>
2028       <method name="notify" c:identifier="g_object_notify">
2029         <doc xml:whitespace="preserve">Emits a "notify" signal for the property @property_name on @object.
2030 When possible, eg. when signaling a property change from within the class
2031 that registered the property, you should use g_object_notify_by_pspec()
2032 instead.</doc>
2033         <return-value transfer-ownership="none">
2034           <type name="none" c:type="void"/>
2035         </return-value>
2036         <parameters>
2037           <parameter name="property_name" transfer-ownership="none">
2038             <doc xml:whitespace="preserve">the name of a property installed on the class of @object.</doc>
2039             <type name="utf8" c:type="gchar*"/>
2040           </parameter>
2041         </parameters>
2042       </method>
2043       <method name="notify_by_pspec"
2044               c:identifier="g_object_notify_by_pspec"
2045               version="2.26">
2046         <doc xml:whitespace="preserve">Emits a "notify" signal for the property specified by @pspec on @object.
2047 This function omits the property name lookup, hence it is faster than
2048 g_object_notify().
2049 One way to avoid using g_object_notify() from within the
2050 class that registered the properties, and using g_object_notify_by_pspec()
2051 instead, is to store the GParamSpec used with
2052 g_object_class_install_property() inside a static array, e.g.:
2053 |[
2054 enum
2055 {
2056 PROP_0,
2057 PROP_FOO,
2058 PROP_LAST
2059 };
2060 static GParamSpec *properties[PROP_LAST];
2061 static void
2062 my_object_class_init (MyObjectClass *klass)
2063 {
2064 properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
2065 0, 100,
2066 50,
2067 G_PARAM_READWRITE);
2068 g_object_class_install_property (gobject_class,
2069 PROP_FOO,
2070 properties[PROP_FOO]);
2071 }
2072 ]|
2073 and then notify a change on the "foo" property with:
2074 |[
2075 g_object_notify_by_pspec (self, properties[PROP_FOO]);
2076 ]|</doc>
2077         <return-value transfer-ownership="none">
2078           <type name="none" c:type="void"/>
2079         </return-value>
2080         <parameters>
2081           <parameter name="pspec" transfer-ownership="none">
2082             <doc xml:whitespace="preserve">the #GParamSpec of a property installed on the class of @object.</doc>
2083             <type name="ParamSpec" c:type="GParamSpec*"/>
2084           </parameter>
2085         </parameters>
2086       </method>
2087       <method name="remove_toggle_ref"
2088               c:identifier="g_object_remove_toggle_ref"
2089               version="2.8"
2090               introspectable="0">
2091         <doc xml:whitespace="preserve">Removes a reference added with g_object_add_toggle_ref(). The
2092 reference count of the object is decreased by one.</doc>
2093         <return-value transfer-ownership="none">
2094           <type name="none" c:type="void"/>
2095         </return-value>
2096         <parameters>
2097           <parameter name="notify" transfer-ownership="none" closure="1">
2098             <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>
2099             <type name="ToggleNotify" c:type="GToggleNotify"/>
2100           </parameter>
2101           <parameter name="data" transfer-ownership="none">
2102             <doc xml:whitespace="preserve">data to pass to @notify</doc>
2103             <type name="gpointer" c:type="gpointer"/>
2104           </parameter>
2105         </parameters>
2106       </method>
2107       <method name="remove_weak_pointer"
2108               c:identifier="g_object_remove_weak_pointer">
2109         <doc xml:whitespace="preserve">Removes a weak reference from @object that was previously added
2110 using g_object_add_weak_pointer(). The @weak_pointer_location has
2111 to match the one used with g_object_add_weak_pointer().</doc>
2112         <return-value transfer-ownership="none">
2113           <type name="none" c:type="void"/>
2114         </return-value>
2115         <parameters>
2116           <parameter name="weak_pointer_location"
2117                      direction="inout"
2118                      caller-allocates="0"
2119                      transfer-ownership="full">
2120             <doc xml:whitespace="preserve">The memory address of a pointer.</doc>
2121             <type name="gpointer" c:type="gpointer*"/>
2122           </parameter>
2123         </parameters>
2124       </method>
2125       <method name="run_dispose" c:identifier="g_object_run_dispose">
2126         <doc xml:whitespace="preserve">Releases all references to other objects. This can be used to break
2127 reference cycles.
2128 This functions should only be called from object system implementations.</doc>
2129         <return-value transfer-ownership="none">
2130           <type name="none" c:type="void"/>
2131         </return-value>
2132       </method>
2133       <method name="set_data" c:identifier="g_object_set_data">
2134         <doc xml:whitespace="preserve">Each object carries around a table of associations from
2135 strings to pointers.  This function lets you set an association.
2136 If the object already had an association with that name,
2137 the old association will be destroyed.</doc>
2138         <return-value transfer-ownership="none">
2139           <type name="none" c:type="void"/>
2140         </return-value>
2141         <parameters>
2142           <parameter name="key" transfer-ownership="none">
2143             <doc xml:whitespace="preserve">name of the key</doc>
2144             <type name="utf8" c:type="gchar*"/>
2145           </parameter>
2146           <parameter name="data" transfer-ownership="none">
2147             <doc xml:whitespace="preserve">data to associate with that key</doc>
2148             <type name="gpointer" c:type="gpointer"/>
2149           </parameter>
2150         </parameters>
2151       </method>
2152       <method name="set_data_full" c:identifier="g_object_set_data_full">
2153         <doc xml:whitespace="preserve">Like g_object_set_data() except it adds notification
2154 for when the association is destroyed, either by setting it
2155 to a different value or when the object is destroyed.
2156 Note that the @destroy callback is not called if @data is %NULL.</doc>
2157         <return-value transfer-ownership="none">
2158           <type name="none" c:type="void"/>
2159         </return-value>
2160         <parameters>
2161           <parameter name="key" transfer-ownership="none">
2162             <doc xml:whitespace="preserve">name of the key</doc>
2163             <type name="utf8" c:type="gchar*"/>
2164           </parameter>
2165           <parameter name="data" transfer-ownership="none">
2166             <doc xml:whitespace="preserve">data to associate with that key</doc>
2167             <type name="gpointer" c:type="gpointer"/>
2168           </parameter>
2169           <parameter name="destroy" transfer-ownership="none" scope="async">
2170             <doc xml:whitespace="preserve">function to call when the association is destroyed</doc>
2171             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2172           </parameter>
2173         </parameters>
2174       </method>
2175       <method name="set_property" c:identifier="g_object_set_property">
2176         <doc xml:whitespace="preserve">Sets a property on an object.</doc>
2177         <return-value transfer-ownership="none">
2178           <type name="none" c:type="void"/>
2179         </return-value>
2180         <parameters>
2181           <parameter name="property_name" transfer-ownership="none">
2182             <doc xml:whitespace="preserve">the name of the property to set</doc>
2183             <type name="utf8" c:type="gchar*"/>
2184           </parameter>
2185           <parameter name="value" transfer-ownership="none">
2186             <doc xml:whitespace="preserve">the value</doc>
2187             <type name="Value" c:type="GValue*"/>
2188           </parameter>
2189         </parameters>
2190       </method>
2191       <method name="set_qdata" c:identifier="g_object_set_qdata">
2192         <doc xml:whitespace="preserve">This sets an opaque, named pointer on an object.
2193 The name is specified through a #GQuark (retrived e.g. via
2194 g_quark_from_static_string()), and the pointer
2195 can be gotten back from the @object with g_object_get_qdata()
2196 until the @object is finalized.
2197 Setting a previously set user data pointer, overrides (frees)
2198 the old pointer set, using #NULL as pointer essentially
2199 removes the data stored.</doc>
2200         <return-value transfer-ownership="none">
2201           <type name="none" c:type="void"/>
2202         </return-value>
2203         <parameters>
2204           <parameter name="quark" transfer-ownership="none">
2205             <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
2206             <type name="GLib.Quark" c:type="GQuark"/>
2207           </parameter>
2208           <parameter name="data" transfer-ownership="none">
2209             <doc xml:whitespace="preserve">An opaque user data pointer</doc>
2210             <type name="gpointer" c:type="gpointer"/>
2211           </parameter>
2212         </parameters>
2213       </method>
2214       <method name="set_qdata_full" c:identifier="g_object_set_qdata_full">
2215         <doc xml:whitespace="preserve">This function works like g_object_set_qdata(), but in addition,
2216 a void (*destroy) (gpointer) function may be specified which is
2217 called with @data as argument when the @object is finalized, or
2218 the data is being overwritten by a call to g_object_set_qdata()
2219 with the same @quark.</doc>
2220         <return-value transfer-ownership="none">
2221           <type name="none" c:type="void"/>
2222         </return-value>
2223         <parameters>
2224           <parameter name="quark" transfer-ownership="none">
2225             <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
2226             <type name="GLib.Quark" c:type="GQuark"/>
2227           </parameter>
2228           <parameter name="data" transfer-ownership="none">
2229             <doc xml:whitespace="preserve">An opaque user data pointer</doc>
2230             <type name="gpointer" c:type="gpointer"/>
2231           </parameter>
2232           <parameter name="destroy" transfer-ownership="none" scope="async">
2233             <doc xml:whitespace="preserve">Function to invoke with @data as argument, when @data needs to be freed</doc>
2234             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2235           </parameter>
2236         </parameters>
2237       </method>
2238       <method name="set_valist"
2239               c:identifier="g_object_set_valist"
2240               introspectable="0">
2241         <doc xml:whitespace="preserve">Sets properties on an object.</doc>
2242         <return-value transfer-ownership="none">
2243           <type name="none" c:type="void"/>
2244         </return-value>
2245         <parameters>
2246           <parameter name="first_property_name" transfer-ownership="none">
2247             <doc xml:whitespace="preserve">name of the first property to set</doc>
2248             <type name="utf8" c:type="gchar*"/>
2249           </parameter>
2250           <parameter name="var_args" transfer-ownership="none">
2251             <doc xml:whitespace="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
2252             <type name="va_list" c:type="va_list"/>
2253           </parameter>
2254         </parameters>
2255       </method>
2256       <method name="steal_data"
2257               c:identifier="g_object_steal_data"
2258               introspectable="0">
2259         <doc xml:whitespace="preserve">Remove a specified datum from the object's data associations,
2260 without invoking the association's destroy handler.</doc>
2261         <return-value>
2262           <doc xml:whitespace="preserve">the data if found, or %NULL if no such data exists.</doc>
2263           <type name="gpointer" c:type="gpointer"/>
2264         </return-value>
2265         <parameters>
2266           <parameter name="key" transfer-ownership="none">
2267             <doc xml:whitespace="preserve">name of the key</doc>
2268             <type name="utf8" c:type="gchar*"/>
2269           </parameter>
2270         </parameters>
2271       </method>
2272       <method name="steal_qdata"
2273               c:identifier="g_object_steal_qdata"
2274               introspectable="0">
2275         <doc xml:whitespace="preserve">This function gets back user data pointers stored via
2276 g_object_set_qdata() and removes the @data from object
2277 without invoking its destroy() function (if any was
2278 set).
2279 Usually, calling this function is only required to update
2280 user data pointers with a destroy notifier, for example:
2281 |[
2282 void
2283 object_add_to_user_list (GObject     *object,
2284 const gchar *new_string)
2285 {
2286 // the quark, naming the object data
2287 GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
2288 // retrive the old string list
2289 GList *list = g_object_steal_qdata (object, quark_string_list);
2290 // prepend new string
2291 list = g_list_prepend (list, g_strdup (new_string));
2292 // this changed 'list', so we need to set it again
2293 g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
2294 }
2295 static void
2296 free_string_list (gpointer data)
2297 {
2298 GList *node, *list = data;
2299 for (node = list; node; node = node-&gt;next)
2300 g_free (node-&gt;data);
2301 g_list_free (list);
2302 }
2303 ]|
2304 Using g_object_get_qdata() in the above example, instead of
2305 g_object_steal_qdata() would have left the destroy function set,
2306 and thus the partial string list would have been freed upon
2307 g_object_set_qdata_full().</doc>
2308         <return-value>
2309           <doc xml:whitespace="preserve">The user data pointer set, or %NULL</doc>
2310           <type name="gpointer" c:type="gpointer"/>
2311         </return-value>
2312         <parameters>
2313           <parameter name="quark" transfer-ownership="none">
2314             <doc xml:whitespace="preserve">A #GQuark, naming the user data pointer</doc>
2315             <type name="GLib.Quark" c:type="GQuark"/>
2316           </parameter>
2317         </parameters>
2318       </method>
2319       <method name="thaw_notify" c:identifier="g_object_thaw_notify">
2320         <doc xml:whitespace="preserve">Reverts the effect of a previous call to
2321 g_object_freeze_notify(). The freeze count is decreased on @object
2322 and when it reaches zero, all queued "notify" signals are emitted.
2323 It is an error to call this function when the freeze count is zero.</doc>
2324         <return-value transfer-ownership="none">
2325           <type name="none" c:type="void"/>
2326         </return-value>
2327       </method>
2328       <method name="watch_closure" c:identifier="g_object_watch_closure">
2329         <doc xml:whitespace="preserve">This function essentially limits the life time of the @closure to
2330 the life time of the object. That is, when the object is finalized,
2331 the @closure is invalidated by calling g_closure_invalidate() on
2332 it, in order to prevent invocations of the closure with a finalized
2333 (nonexisting) object. Also, g_object_ref() and g_object_unref() are
2334 added as marshal guards to the @closure, to ensure that an extra
2335 reference count is held on @object during invocation of the
2336 use this @object as closure data.</doc>
2337         <return-value transfer-ownership="none">
2338           <type name="none" c:type="void"/>
2339         </return-value>
2340         <parameters>
2341           <parameter name="closure" transfer-ownership="none">
2342             <doc xml:whitespace="preserve">GClosure to watch</doc>
2343             <type name="Closure" c:type="GClosure*"/>
2344           </parameter>
2345         </parameters>
2346       </method>
2347       <method name="weak_ref"
2348               c:identifier="g_object_weak_ref"
2349               introspectable="0">
2350         <doc xml:whitespace="preserve">Adds a weak reference callback to an object. Weak references are
2351 used for notification when an object is finalized. They are called
2352 "weak references" because they allow you to safely hold a pointer
2353 to an object without calling g_object_ref() (g_object_ref() adds a
2354 strong reference, that is, forces the object to stay alive).</doc>
2355         <return-value transfer-ownership="none">
2356           <type name="none" c:type="void"/>
2357         </return-value>
2358         <parameters>
2359           <parameter name="notify" transfer-ownership="none" closure="1">
2360             <doc xml:whitespace="preserve">callback to invoke before the object is freed</doc>
2361             <type name="WeakNotify" c:type="GWeakNotify"/>
2362           </parameter>
2363           <parameter name="data" transfer-ownership="none">
2364             <doc xml:whitespace="preserve">extra data to pass to notify</doc>
2365             <type name="gpointer" c:type="gpointer"/>
2366           </parameter>
2367         </parameters>
2368       </method>
2369       <method name="weak_unref"
2370               c:identifier="g_object_weak_unref"
2371               introspectable="0">
2372         <doc xml:whitespace="preserve">Removes a weak reference callback to an object.</doc>
2373         <return-value transfer-ownership="none">
2374           <type name="none" c:type="void"/>
2375         </return-value>
2376         <parameters>
2377           <parameter name="notify" transfer-ownership="none" closure="1">
2378             <doc xml:whitespace="preserve">callback to search for</doc>
2379             <type name="WeakNotify" c:type="GWeakNotify"/>
2380           </parameter>
2381           <parameter name="data" transfer-ownership="none">
2382             <doc xml:whitespace="preserve">data to search for</doc>
2383             <type name="gpointer" c:type="gpointer"/>
2384           </parameter>
2385         </parameters>
2386       </method>
2387       <field name="g_type_instance" writable="1">
2388         <type name="TypeInstance" c:type="GTypeInstance"/>
2389       </field>
2390       <field name="ref_count" writable="1">
2391         <type name="guint" c:type="guint"/>
2392       </field>
2393       <field name="qdata" writable="1">
2394         <type name="GLib.Data" c:type="GData*"/>
2395       </field>
2396     </class>
2397     <record name="ObjectClass"
2398             c:type="GObjectClass"
2399             glib:is-gtype-struct-for="Object">
2400       <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GObject&lt;/structname&gt; type.
2401 &lt;example&gt;
2402 &lt;title&gt;Implementing singletons using a constructor&lt;/title&gt;
2403 &lt;programlisting&gt;
2404 static MySingleton *the_singleton = NULL;
2405 static GObject*
2406 my_singleton_constructor (GType                  type,
2407 guint                  n_construct_params,
2408 GObjectConstructParam *construct_params)
2409 {
2410 GObject *object;
2411 if (!the_singleton)
2412 {
2413 object = G_OBJECT_CLASS (parent_class)-&gt;constructor (type,
2414 n_construct_params,
2415 construct_params);
2416 the_singleton = MY_SINGLETON (object);
2417 }
2418 else
2419 object = g_object_ref (G_OBJECT (the_singleton));
2420 return object;
2421 }
2422 &lt;/programlisting&gt;&lt;/example&gt;</doc>
2423       <field name="g_type_class">
2424         <type name="TypeClass" c:type="GTypeClass"/>
2425       </field>
2426       <field name="construct_properties">
2427         <type name="GLib.SList" c:type="GSList*">
2428           <type name="gpointer" c:type="gpointer"/>
2429         </type>
2430       </field>
2431       <field name="constructor" introspectable="0">
2432         <callback name="constructor" introspectable="0">
2433           <return-value>
2434             <type name="Object" c:type="GObject*"/>
2435           </return-value>
2436           <parameters>
2437             <parameter name="type" transfer-ownership="none">
2438               <type name="GType" c:type="GType"/>
2439             </parameter>
2440             <parameter name="n_construct_properties" transfer-ownership="none">
2441               <type name="guint" c:type="guint"/>
2442             </parameter>
2443             <parameter name="construct_properties" transfer-ownership="none">
2444               <type name="ObjectConstructParam"
2445                     c:type="GObjectConstructParam*"/>
2446             </parameter>
2447           </parameters>
2448         </callback>
2449       </field>
2450       <field name="set_property">
2451         <callback name="set_property">
2452           <return-value transfer-ownership="none">
2453             <type name="none" c:type="void"/>
2454           </return-value>
2455           <parameters>
2456             <parameter name="object" transfer-ownership="none">
2457               <type name="Object" c:type="GObject*"/>
2458             </parameter>
2459             <parameter name="property_id" transfer-ownership="none">
2460               <type name="guint" c:type="guint"/>
2461             </parameter>
2462             <parameter name="value" transfer-ownership="none">
2463               <type name="Value" c:type="GValue*"/>
2464             </parameter>
2465             <parameter name="pspec" transfer-ownership="none">
2466               <type name="ParamSpec" c:type="GParamSpec*"/>
2467             </parameter>
2468           </parameters>
2469         </callback>
2470       </field>
2471       <field name="get_property">
2472         <callback name="get_property">
2473           <return-value transfer-ownership="none">
2474             <type name="none" c:type="void"/>
2475           </return-value>
2476           <parameters>
2477             <parameter name="object" transfer-ownership="none">
2478               <type name="Object" c:type="GObject*"/>
2479             </parameter>
2480             <parameter name="property_id" transfer-ownership="none">
2481               <type name="guint" c:type="guint"/>
2482             </parameter>
2483             <parameter name="value" transfer-ownership="none">
2484               <type name="Value" c:type="GValue*"/>
2485             </parameter>
2486             <parameter name="pspec" transfer-ownership="none">
2487               <type name="ParamSpec" c:type="GParamSpec*"/>
2488             </parameter>
2489           </parameters>
2490         </callback>
2491       </field>
2492       <field name="dispose">
2493         <callback name="dispose">
2494           <return-value transfer-ownership="none">
2495             <type name="none" c:type="void"/>
2496           </return-value>
2497           <parameters>
2498             <parameter name="object" transfer-ownership="none">
2499               <type name="Object" c:type="GObject*"/>
2500             </parameter>
2501           </parameters>
2502         </callback>
2503       </field>
2504       <field name="finalize">
2505         <callback name="finalize">
2506           <return-value transfer-ownership="none">
2507             <type name="none" c:type="void"/>
2508           </return-value>
2509           <parameters>
2510             <parameter name="object" transfer-ownership="none">
2511               <type name="Object" c:type="GObject*"/>
2512             </parameter>
2513           </parameters>
2514         </callback>
2515       </field>
2516       <field name="dispatch_properties_changed">
2517         <callback name="dispatch_properties_changed">
2518           <return-value transfer-ownership="none">
2519             <type name="none" c:type="void"/>
2520           </return-value>
2521           <parameters>
2522             <parameter name="object" transfer-ownership="none">
2523               <type name="Object" c:type="GObject*"/>
2524             </parameter>
2525             <parameter name="n_pspecs" transfer-ownership="none">
2526               <type name="guint" c:type="guint"/>
2527             </parameter>
2528             <parameter name="pspecs" transfer-ownership="none">
2529               <type name="ParamSpec" c:type="GParamSpec**"/>
2530             </parameter>
2531           </parameters>
2532         </callback>
2533       </field>
2534       <field name="notify">
2535         <callback name="notify">
2536           <return-value transfer-ownership="none">
2537             <type name="none" c:type="void"/>
2538           </return-value>
2539           <parameters>
2540             <parameter name="object" transfer-ownership="none">
2541               <type name="Object" c:type="GObject*"/>
2542             </parameter>
2543             <parameter name="pspec" transfer-ownership="none">
2544               <type name="ParamSpec" c:type="GParamSpec*"/>
2545             </parameter>
2546           </parameters>
2547         </callback>
2548       </field>
2549       <field name="constructed">
2550         <callback name="constructed">
2551           <return-value transfer-ownership="none">
2552             <type name="none" c:type="void"/>
2553           </return-value>
2554           <parameters>
2555             <parameter name="object" transfer-ownership="none">
2556               <type name="Object" c:type="GObject*"/>
2557             </parameter>
2558           </parameters>
2559         </callback>
2560       </field>
2561       <field name="flags">
2562         <type name="gulong" c:type="gsize"/>
2563       </field>
2564       <field name="pdummy">
2565         <array zero-terminated="0" c:type="gpointer" fixed-size="6">
2566           <type name="gpointer" c:type="gpointer"/>
2567         </array>
2568       </field>
2569       <method name="find_property"
2570               c:identifier="g_object_class_find_property"
2571               introspectable="0">
2572         <doc xml:whitespace="preserve">Looks up the #GParamSpec for a property of a class.
2573 doesn't have a property of that name</doc>
2574         <return-value>
2575           <doc xml:whitespace="preserve">the #GParamSpec for the property, or %NULL if the class</doc>
2576           <type name="ParamSpec" c:type="GParamSpec*"/>
2577         </return-value>
2578         <parameters>
2579           <parameter name="property_name" transfer-ownership="none">
2580             <doc xml:whitespace="preserve">the name of the property to look up</doc>
2581             <type name="utf8" c:type="gchar*"/>
2582           </parameter>
2583         </parameters>
2584       </method>
2585       <method name="install_properties"
2586               c:identifier="g_object_class_install_properties"
2587               version="2.26">
2588         <doc xml:whitespace="preserve">Installs new properties from an array of #GParamSpec&lt;!-- --&gt;s. This is
2589 usually done in the class initializer.
2590 The property id of each property is the index of each #GParamSpec in
2591 the @pspecs array.
2592 The property id of 0 is treated specially by #GObject and it should not
2593 be used to store a #GParamSpec.
2594 This function should be used if you plan to use a static array of
2595 #GParamSpec&lt;!-- --&gt;s and g_object_notify_pspec(). For instance, this
2596 class initialization:
2597 |[
2598 enum {
2599 PROP_0, PROP_FOO, PROP_BAR, N_PROPERTIES
2600 };
2601 static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
2602 static void
2603 my_object_class_init (MyObjectClass *klass)
2604 {
2605 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
2606 obj_properties[PROP_FOO] =
2607 g_param_spec_int ("foo", "Foo", "Foo",
2608 -1, G_MAXINT,
2609 0,
2610 G_PARAM_READWRITE);
2611 obj_properties[PROP_BAR] =
2612 g_param_spec_string ("bar", "Bar", "Bar",
2613 NULL,
2614 G_PARAM_READWRITE);
2615 gobject_class-&gt;set_property = my_object_set_property;
2616 gobject_class-&gt;get_property = my_object_get_property;
2617 g_object_class_install_properties (gobject_class,
2618 N_PROPERTIES,
2619 obj_properties);
2620 }
2621 ]|
2622 allows calling g_object_notify_by_pspec() to notify of property changes:
2623 |[
2624 void
2625 my_object_set_foo (MyObject *self, gint foo)
2626 {
2627 if (self-&gt;foo != foo)
2628 {
2629 self-&gt;foo = foo;
2630 g_object_notify_by_pspec (G_OBJECT (self), obj_properties[PROP_FOO]);
2631 }
2632 }
2633 ]|</doc>
2634         <return-value transfer-ownership="none">
2635           <type name="none" c:type="void"/>
2636         </return-value>
2637         <parameters>
2638           <parameter name="n_pspecs" transfer-ownership="none">
2639             <doc xml:whitespace="preserve">the length of the #GParamSpec&lt;!-- --&gt;s array</doc>
2640             <type name="guint" c:type="guint"/>
2641           </parameter>
2642           <parameter name="pspecs" transfer-ownership="none">
2643             <doc xml:whitespace="preserve">the #GParamSpec&lt;!-- --&gt;s array defining the new properties</doc>
2644             <array length="0" c:type="GParamSpec**">
2645               <type name="ParamSpec"/>
2646             </array>
2647           </parameter>
2648         </parameters>
2649       </method>
2650       <method name="install_property"
2651               c:identifier="g_object_class_install_property">
2652         <doc xml:whitespace="preserve">Installs a new property. This is usually done in the class initializer.
2653 Note that it is possible to redefine a property in a derived class,
2654 by installing a property with the same name. This can be useful at times,
2655 e.g. to change the range of allowed values or the default value.</doc>
2656         <return-value transfer-ownership="none">
2657           <type name="none" c:type="void"/>
2658         </return-value>
2659         <parameters>
2660           <parameter name="property_id" transfer-ownership="none">
2661             <doc xml:whitespace="preserve">the id for the new property</doc>
2662             <type name="guint" c:type="guint"/>
2663           </parameter>
2664           <parameter name="pspec" transfer-ownership="none">
2665             <doc xml:whitespace="preserve">the #GParamSpec for the new property</doc>
2666             <type name="ParamSpec" c:type="GParamSpec*"/>
2667           </parameter>
2668         </parameters>
2669       </method>
2670       <method name="list_properties"
2671               c:identifier="g_object_class_list_properties">
2672         <doc xml:whitespace="preserve">Get an array of #GParamSpec* for all properties of a class.
2673 #GParamSpec* which should be freed after use</doc>
2674         <return-value transfer-ownership="full">
2675           <doc xml:whitespace="preserve">an array of</doc>
2676           <array length="0" c:type="GParamSpec**">
2677             <type name="ParamSpec"/>
2678           </array>
2679         </return-value>
2680         <parameters>
2681           <parameter name="n_properties"
2682                      direction="out"
2683                      caller-allocates="0"
2684                      transfer-ownership="full">
2685             <doc xml:whitespace="preserve">return location for the length of the returned array</doc>
2686             <type name="guint" c:type="guint*"/>
2687           </parameter>
2688         </parameters>
2689       </method>
2690       <method name="override_property"
2691               c:identifier="g_object_class_override_property"
2692               version="2.4">
2693         <doc xml:whitespace="preserve">Registers @property_id as referring to a property with the
2694 name @name in a parent class or in an interface implemented
2695 by @oclass. This allows this class to &lt;firstterm&gt;override&lt;/firstterm&gt;
2696 a property implementation in a parent class or to provide
2697 the implementation of a property from an interface.
2698 &lt;note&gt;
2699 Internally, overriding is implemented by creating a property of type
2700 #GParamSpecOverride; generally operations that query the properties of
2701 the object class, such as g_object_class_find_property() or
2702 g_object_class_list_properties() will return the overridden
2703 property. However, in one case, the @construct_properties argument of
2704 the @constructor virtual function, the #GParamSpecOverride is passed
2705 instead, so that the @param_id field of the #GParamSpec will be
2706 correct.  For virtually all uses, this makes no difference. If you
2707 need to get the overridden property, you can call
2708 g_param_spec_get_redirect_target().
2709 &lt;/note&gt;</doc>
2710         <return-value transfer-ownership="none">
2711           <type name="none" c:type="void"/>
2712         </return-value>
2713         <parameters>
2714           <parameter name="property_id" transfer-ownership="none">
2715             <doc xml:whitespace="preserve">the new property ID</doc>
2716             <type name="guint" c:type="guint"/>
2717           </parameter>
2718           <parameter name="name" transfer-ownership="none">
2719             <doc xml:whitespace="preserve">the name of a property registered in a parent class or in an interface of this class.</doc>
2720             <type name="utf8" c:type="gchar*"/>
2721           </parameter>
2722         </parameters>
2723       </method>
2724     </record>
2725     <record name="ObjectConstructParam" c:type="GObjectConstructParam">
2726       <doc xml:whitespace="preserve">The &lt;structname&gt;GObjectConstructParam&lt;/structname&gt; struct is an auxiliary 
2727 structure used to hand #GParamSpec/#GValue pairs to the @constructor of
2728 a #GObjectClass.</doc>
2729       <field name="pspec" writable="1">
2730         <type name="ParamSpec" c:type="GParamSpec*"/>
2731       </field>
2732       <field name="value" writable="1">
2733         <type name="Value" c:type="GValue*"/>
2734       </field>
2735     </record>
2736     <callback name="ObjectFinalizeFunc" c:type="GObjectFinalizeFunc">
2737       <doc xml:whitespace="preserve">The type of the @finalize function of #GObjectClass.</doc>
2738       <return-value transfer-ownership="none">
2739         <type name="none" c:type="void"/>
2740       </return-value>
2741       <parameters>
2742         <parameter name="object" transfer-ownership="none">
2743           <doc xml:whitespace="preserve">the #GObject being finalized</doc>
2744           <type name="Object" c:type="GObject*"/>
2745         </parameter>
2746       </parameters>
2747     </callback>
2748     <callback name="ObjectGetPropertyFunc" c:type="GObjectGetPropertyFunc">
2749       <doc xml:whitespace="preserve">The type of the @get_property function of #GObjectClass.</doc>
2750       <return-value transfer-ownership="none">
2751         <type name="none" c:type="void"/>
2752       </return-value>
2753       <parameters>
2754         <parameter name="object" transfer-ownership="none">
2755           <doc xml:whitespace="preserve">a #GObject</doc>
2756           <type name="Object" c:type="GObject*"/>
2757         </parameter>
2758         <parameter name="property_id" transfer-ownership="none">
2759           <doc xml:whitespace="preserve">the numeric id under which the property was registered with g_object_class_install_property().</doc>
2760           <type name="guint" c:type="guint"/>
2761         </parameter>
2762         <parameter name="value" transfer-ownership="none">
2763           <doc xml:whitespace="preserve">a #GValue to return the property value in</doc>
2764           <type name="Value" c:type="GValue*"/>
2765         </parameter>
2766         <parameter name="pspec" transfer-ownership="none">
2767           <doc xml:whitespace="preserve">the #GParamSpec describing the property</doc>
2768           <type name="ParamSpec" c:type="GParamSpec*"/>
2769         </parameter>
2770       </parameters>
2771     </callback>
2772     <callback name="ObjectSetPropertyFunc" c:type="GObjectSetPropertyFunc">
2773       <doc xml:whitespace="preserve">The type of the @set_property function of #GObjectClass.</doc>
2774       <return-value transfer-ownership="none">
2775         <type name="none" c:type="void"/>
2776       </return-value>
2777       <parameters>
2778         <parameter name="object" transfer-ownership="none">
2779           <doc xml:whitespace="preserve">a #GObject</doc>
2780           <type name="Object" c:type="GObject*"/>
2781         </parameter>
2782         <parameter name="property_id" transfer-ownership="none">
2783           <doc xml:whitespace="preserve">the numeric id under which the property was registered with g_object_class_install_property().</doc>
2784           <type name="guint" c:type="guint"/>
2785         </parameter>
2786         <parameter name="value" transfer-ownership="none">
2787           <doc xml:whitespace="preserve">the new value for the property</doc>
2788           <type name="Value" c:type="GValue*"/>
2789         </parameter>
2790         <parameter name="pspec" transfer-ownership="none">
2791           <doc xml:whitespace="preserve">the #GParamSpec describing the property</doc>
2792           <type name="ParamSpec" c:type="GParamSpec*"/>
2793         </parameter>
2794       </parameters>
2795     </callback>
2796     <constant name="PARAM_MASK" value="255">
2797       <type name="gint" c:type="gint"/>
2798     </constant>
2799     <constant name="PARAM_READWRITE" value="0">
2800       <type name="gint" c:type="gint"/>
2801     </constant>
2802     <constant name="PARAM_STATIC_STRINGS" value="0">
2803       <type name="gint" c:type="gint"/>
2804     </constant>
2805     <constant name="PARAM_USER_SHIFT" value="8">
2806       <type name="gint" c:type="gint"/>
2807     </constant>
2808     <bitfield name="ParamFlags" c:type="GParamFlags">
2809       <doc xml:whitespace="preserve">Through the #GParamFlags flag values, certain aspects of parameters
2810 can be configured.</doc>
2811       <member name="readable" value="1" c:identifier="G_PARAM_READABLE"/>
2812       <member name="writable" value="2" c:identifier="G_PARAM_WRITABLE"/>
2813       <member name="construct" value="4" c:identifier="G_PARAM_CONSTRUCT"/>
2814       <member name="construct_only"
2815               value="8"
2816               c:identifier="G_PARAM_CONSTRUCT_ONLY"/>
2817       <member name="lax_validation"
2818               value="16"
2819               c:identifier="G_PARAM_LAX_VALIDATION"/>
2820       <member name="static_name"
2821               value="32"
2822               c:identifier="G_PARAM_STATIC_NAME"/>
2823       <member name="private" value="32" c:identifier="G_PARAM_PRIVATE"/>
2824       <member name="static_nick"
2825               value="64"
2826               c:identifier="G_PARAM_STATIC_NICK"/>
2827       <member name="static_blurb"
2828               value="128"
2829               c:identifier="G_PARAM_STATIC_BLURB"/>
2830       <member name="deprecated"
2831               value="-2147483648"
2832               c:identifier="G_PARAM_DEPRECATED"/>
2833     </bitfield>
2834     <record name="ParamSpec" c:type="GParamSpec">
2835       <doc xml:whitespace="preserve">All other fields of the &lt;structname&gt;GParamSpec&lt;/structname&gt; struct are private and
2836 should not be used directly.</doc>
2837       <field name="g_type_instance" writable="1">
2838         <type name="TypeInstance" c:type="GTypeInstance"/>
2839       </field>
2840       <field name="name" writable="1">
2841         <type name="utf8" c:type="gchar*"/>
2842       </field>
2843       <field name="flags" writable="1">
2844         <type name="ParamFlags" c:type="GParamFlags"/>
2845       </field>
2846       <field name="value_type" writable="1">
2847         <type name="GType" c:type="GType"/>
2848       </field>
2849       <field name="owner_type" writable="1">
2850         <type name="GType" c:type="GType"/>
2851       </field>
2852       <field name="_nick" writable="1">
2853         <type name="utf8" c:type="gchar*"/>
2854       </field>
2855       <field name="_blurb" writable="1">
2856         <type name="utf8" c:type="gchar*"/>
2857       </field>
2858       <field name="qdata" writable="1">
2859         <type name="GLib.Data" c:type="GData*"/>
2860       </field>
2861       <field name="ref_count" writable="1">
2862         <type name="guint" c:type="guint"/>
2863       </field>
2864       <field name="param_id" writable="1">
2865         <type name="guint" c:type="guint"/>
2866       </field>
2867       <method name="get_blurb" c:identifier="g_param_spec_get_blurb">
2868         <doc xml:whitespace="preserve">Get the short description of a #GParamSpec.</doc>
2869         <return-value transfer-ownership="none">
2870           <doc xml:whitespace="preserve">the short description of @pspec.</doc>
2871           <type name="utf8" c:type="gchar*"/>
2872         </return-value>
2873       </method>
2874       <method name="get_name" c:identifier="g_param_spec_get_name">
2875         <doc xml:whitespace="preserve">Get the name of a #GParamSpec.</doc>
2876         <return-value transfer-ownership="none">
2877           <doc xml:whitespace="preserve">the name of @pspec.</doc>
2878           <type name="utf8" c:type="gchar*"/>
2879         </return-value>
2880       </method>
2881       <method name="get_nick" c:identifier="g_param_spec_get_nick">
2882         <doc xml:whitespace="preserve">Get the nickname of a #GParamSpec.</doc>
2883         <return-value transfer-ownership="none">
2884           <doc xml:whitespace="preserve">the nickname of @pspec.</doc>
2885           <type name="utf8" c:type="gchar*"/>
2886         </return-value>
2887       </method>
2888       <method name="get_qdata"
2889               c:identifier="g_param_spec_get_qdata"
2890               introspectable="0">
2891         <doc xml:whitespace="preserve">Gets back user data pointers stored via g_param_spec_set_qdata().</doc>
2892         <return-value>
2893           <doc xml:whitespace="preserve">the user data pointer set, or %NULL</doc>
2894           <type name="gpointer" c:type="gpointer"/>
2895         </return-value>
2896         <parameters>
2897           <parameter name="quark" transfer-ownership="none">
2898             <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
2899             <type name="GLib.Quark" c:type="GQuark"/>
2900           </parameter>
2901         </parameters>
2902       </method>
2903       <method name="get_redirect_target"
2904               c:identifier="g_param_spec_get_redirect_target"
2905               version="2.4"
2906               introspectable="0">
2907         <doc xml:whitespace="preserve">If the paramspec redirects operations to another paramspec,
2908 returns that paramspec. Redirect is used typically for
2909 providing a new implementation of a property in a derived
2910 type while preserving all the properties from the parent
2911 type. Redirection is established by creating a property
2912 of type #GParamSpecOverride. See g_object_class_override_property()
2913 for an example of the use of this capability.
2914 be redirected, or %NULL if none.</doc>
2915         <return-value>
2916           <doc xml:whitespace="preserve">paramspec to which requests on this paramspec should</doc>
2917           <type name="ParamSpec" c:type="GParamSpec*"/>
2918         </return-value>
2919       </method>
2920       <method name="ref" c:identifier="g_param_spec_ref" introspectable="0">
2921         <doc xml:whitespace="preserve">Increments the reference count of @pspec.</doc>
2922         <return-value>
2923           <doc xml:whitespace="preserve">the #GParamSpec that was passed into this function</doc>
2924           <type name="ParamSpec" c:type="GParamSpec*"/>
2925         </return-value>
2926       </method>
2927       <method name="ref_sink"
2928               c:identifier="g_param_spec_ref_sink"
2929               version="2.10"
2930               introspectable="0">
2931         <doc xml:whitespace="preserve">Convenience function to ref and sink a #GParamSpec.</doc>
2932         <return-value>
2933           <doc xml:whitespace="preserve">the #GParamSpec that was passed into this function</doc>
2934           <type name="ParamSpec" c:type="GParamSpec*"/>
2935         </return-value>
2936       </method>
2937       <method name="set_qdata" c:identifier="g_param_spec_set_qdata">
2938         <doc xml:whitespace="preserve">Sets an opaque, named pointer on a #GParamSpec. The name is
2939 specified through a #GQuark (retrieved e.g. via
2940 g_quark_from_static_string()), and the pointer can be gotten back
2941 from the @pspec with g_param_spec_get_qdata().  Setting a
2942 previously set user data pointer, overrides (frees) the old pointer
2943 set, using %NULL as pointer essentially removes the data stored.</doc>
2944         <return-value transfer-ownership="none">
2945           <type name="none" c:type="void"/>
2946         </return-value>
2947         <parameters>
2948           <parameter name="quark" transfer-ownership="none">
2949             <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
2950             <type name="GLib.Quark" c:type="GQuark"/>
2951           </parameter>
2952           <parameter name="data" transfer-ownership="none">
2953             <doc xml:whitespace="preserve">an opaque user data pointer</doc>
2954             <type name="gpointer" c:type="gpointer"/>
2955           </parameter>
2956         </parameters>
2957       </method>
2958       <method name="set_qdata_full" c:identifier="g_param_spec_set_qdata_full">
2959         <doc xml:whitespace="preserve">This function works like g_param_spec_set_qdata(), but in addition,
2960 a &lt;literal&gt;void (*destroy) (gpointer)&lt;/literal&gt; function may be
2961 specified which is called with @data as argument when the @pspec is
2962 finalized, or the data is being overwritten by a call to
2963 g_param_spec_set_qdata() with the same @quark.</doc>
2964         <return-value transfer-ownership="none">
2965           <type name="none" c:type="void"/>
2966         </return-value>
2967         <parameters>
2968           <parameter name="quark" transfer-ownership="none">
2969             <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
2970             <type name="GLib.Quark" c:type="GQuark"/>
2971           </parameter>
2972           <parameter name="data" transfer-ownership="none">
2973             <doc xml:whitespace="preserve">an opaque user data pointer</doc>
2974             <type name="gpointer" c:type="gpointer"/>
2975           </parameter>
2976           <parameter name="destroy" transfer-ownership="none" scope="async">
2977             <doc xml:whitespace="preserve">function to invoke with @data as argument, when @data needs to be freed</doc>
2978             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
2979           </parameter>
2980         </parameters>
2981       </method>
2982       <method name="sink" c:identifier="g_param_spec_sink">
2983         <doc xml:whitespace="preserve">The initial reference count of a newly created #GParamSpec is 1,
2984 even though no one has explicitly called g_param_spec_ref() on it
2985 yet. So the initial reference count is flagged as "floating", until
2986 someone calls &lt;literal&gt;g_param_spec_ref (pspec); g_param_spec_sink
2987 (pspec);&lt;/literal&gt; in sequence on it, taking over the initial
2988 reference count (thus ending up with a @pspec that has a reference
2989 count of 1 still, but is not flagged "floating" anymore).</doc>
2990         <return-value transfer-ownership="none">
2991           <type name="none" c:type="void"/>
2992         </return-value>
2993       </method>
2994       <method name="steal_qdata"
2995               c:identifier="g_param_spec_steal_qdata"
2996               introspectable="0">
2997         <doc xml:whitespace="preserve">Gets back user data pointers stored via g_param_spec_set_qdata()
2998 and removes the @data from @pspec without invoking its destroy()
2999 function (if any was set).  Usually, calling this function is only
3000 required to update user data pointers with a destroy notifier.</doc>
3001         <return-value>
3002           <doc xml:whitespace="preserve">the user data pointer set, or %NULL</doc>
3003           <type name="gpointer" c:type="gpointer"/>
3004         </return-value>
3005         <parameters>
3006           <parameter name="quark" transfer-ownership="none">
3007             <doc xml:whitespace="preserve">a #GQuark, naming the user data pointer</doc>
3008             <type name="GLib.Quark" c:type="GQuark"/>
3009           </parameter>
3010         </parameters>
3011       </method>
3012       <method name="unref" c:identifier="g_param_spec_unref">
3013         <doc xml:whitespace="preserve">Decrements the reference count of a @pspec.</doc>
3014         <return-value transfer-ownership="none">
3015           <type name="none" c:type="void"/>
3016         </return-value>
3017       </method>
3018     </record>
3019     <record name="ParamSpecBoolean" c:type="GParamSpecBoolean">
3020       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for boolean properties.</doc>
3021       <field name="parent_instance" writable="1">
3022         <type name="ParamSpec" c:type="GParamSpec"/>
3023       </field>
3024       <field name="default_value" writable="1">
3025         <type name="gboolean" c:type="gboolean"/>
3026       </field>
3027     </record>
3028     <record name="ParamSpecBoxed" c:type="GParamSpecBoxed">
3029       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for boxed properties.</doc>
3030       <field name="parent_instance" writable="1">
3031         <type name="ParamSpec" c:type="GParamSpec"/>
3032       </field>
3033     </record>
3034     <record name="ParamSpecChar" c:type="GParamSpecChar">
3035       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for character properties.</doc>
3036       <field name="parent_instance" writable="1">
3037         <type name="ParamSpec" c:type="GParamSpec"/>
3038       </field>
3039       <field name="minimum" writable="1">
3040         <type name="gint8" c:type="gint8"/>
3041       </field>
3042       <field name="maximum" writable="1">
3043         <type name="gint8" c:type="gint8"/>
3044       </field>
3045       <field name="default_value" writable="1">
3046         <type name="gint8" c:type="gint8"/>
3047       </field>
3048     </record>
3049     <record name="ParamSpecClass" c:type="GParamSpecClass">
3050       <doc xml:whitespace="preserve">The class structure for the &lt;structname&gt;GParamSpec&lt;/structname&gt; type.
3051 Normally, &lt;structname&gt;GParamSpec&lt;/structname&gt; classes are filled by
3052 g_param_type_register_static().</doc>
3053       <field name="g_type_class" writable="1">
3054         <type name="TypeClass" c:type="GTypeClass"/>
3055       </field>
3056       <field name="value_type" writable="1">
3057         <type name="GType" c:type="GType"/>
3058       </field>
3059       <field name="finalize">
3060         <callback name="finalize">
3061           <return-value transfer-ownership="none">
3062             <type name="none" c:type="void"/>
3063           </return-value>
3064           <parameters>
3065             <parameter name="pspec" transfer-ownership="none">
3066               <type name="ParamSpec" c:type="GParamSpec*"/>
3067             </parameter>
3068           </parameters>
3069         </callback>
3070       </field>
3071       <field name="value_set_default">
3072         <callback name="value_set_default">
3073           <return-value transfer-ownership="none">
3074             <type name="none" c:type="void"/>
3075           </return-value>
3076           <parameters>
3077             <parameter name="pspec" transfer-ownership="none">
3078               <type name="ParamSpec" c:type="GParamSpec*"/>
3079             </parameter>
3080             <parameter name="value" transfer-ownership="none">
3081               <type name="Value" c:type="GValue*"/>
3082             </parameter>
3083           </parameters>
3084         </callback>
3085       </field>
3086       <field name="value_validate">
3087         <callback name="value_validate">
3088           <return-value transfer-ownership="none">
3089             <type name="gboolean" c:type="gboolean"/>
3090           </return-value>
3091           <parameters>
3092             <parameter name="pspec" transfer-ownership="none">
3093               <type name="ParamSpec" c:type="GParamSpec*"/>
3094             </parameter>
3095             <parameter name="value" transfer-ownership="none">
3096               <type name="Value" c:type="GValue*"/>
3097             </parameter>
3098           </parameters>
3099         </callback>
3100       </field>
3101       <field name="values_cmp">
3102         <callback name="values_cmp">
3103           <return-value transfer-ownership="none">
3104             <type name="gint" c:type="gint"/>
3105           </return-value>
3106           <parameters>
3107             <parameter name="pspec" transfer-ownership="none">
3108               <type name="ParamSpec" c:type="GParamSpec*"/>
3109             </parameter>
3110             <parameter name="value1" transfer-ownership="none">
3111               <type name="Value" c:type="GValue*"/>
3112             </parameter>
3113             <parameter name="value2" transfer-ownership="none">
3114               <type name="Value" c:type="GValue*"/>
3115             </parameter>
3116           </parameters>
3117         </callback>
3118       </field>
3119       <field name="dummy" writable="1">
3120         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
3121           <type name="gpointer" c:type="gpointer"/>
3122         </array>
3123       </field>
3124     </record>
3125     <record name="ParamSpecDouble" c:type="GParamSpecDouble">
3126       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for double properties.</doc>
3127       <field name="parent_instance" writable="1">
3128         <type name="ParamSpec" c:type="GParamSpec"/>
3129       </field>
3130       <field name="minimum" writable="1">
3131         <type name="gdouble" c:type="gdouble"/>
3132       </field>
3133       <field name="maximum" writable="1">
3134         <type name="gdouble" c:type="gdouble"/>
3135       </field>
3136       <field name="default_value" writable="1">
3137         <type name="gdouble" c:type="gdouble"/>
3138       </field>
3139       <field name="epsilon" writable="1">
3140         <type name="gdouble" c:type="gdouble"/>
3141       </field>
3142     </record>
3143     <record name="ParamSpecEnum" c:type="GParamSpecEnum">
3144       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for enum 
3145 properties.</doc>
3146       <field name="parent_instance" writable="1">
3147         <type name="ParamSpec" c:type="GParamSpec"/>
3148       </field>
3149       <field name="enum_class" writable="1">
3150         <type name="EnumClass" c:type="GEnumClass*"/>
3151       </field>
3152       <field name="default_value" writable="1">
3153         <type name="gint" c:type="gint"/>
3154       </field>
3155     </record>
3156     <record name="ParamSpecFlags" c:type="GParamSpecFlags">
3157       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for flags
3158 properties.</doc>
3159       <field name="parent_instance" writable="1">
3160         <type name="ParamSpec" c:type="GParamSpec"/>
3161       </field>
3162       <field name="flags_class" writable="1">
3163         <type name="FlagsClass" c:type="GFlagsClass*"/>
3164       </field>
3165       <field name="default_value" writable="1">
3166         <type name="guint" c:type="guint"/>
3167       </field>
3168     </record>
3169     <record name="ParamSpecFloat" c:type="GParamSpecFloat">
3170       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for float properties.</doc>
3171       <field name="parent_instance" writable="1">
3172         <type name="ParamSpec" c:type="GParamSpec"/>
3173       </field>
3174       <field name="minimum" writable="1">
3175         <type name="gfloat" c:type="gfloat"/>
3176       </field>
3177       <field name="maximum" writable="1">
3178         <type name="gfloat" c:type="gfloat"/>
3179       </field>
3180       <field name="default_value" writable="1">
3181         <type name="gfloat" c:type="gfloat"/>
3182       </field>
3183       <field name="epsilon" writable="1">
3184         <type name="gfloat" c:type="gfloat"/>
3185       </field>
3186     </record>
3187     <record name="ParamSpecGType" c:type="GParamSpecGType" version="2.10">
3188       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GType properties.</doc>
3189       <field name="parent_instance" writable="1">
3190         <type name="ParamSpec" c:type="GParamSpec"/>
3191       </field>
3192       <field name="is_a_type" writable="1">
3193         <type name="GType" c:type="GType"/>
3194       </field>
3195     </record>
3196     <record name="ParamSpecInt" c:type="GParamSpecInt">
3197       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for integer properties.</doc>
3198       <field name="parent_instance" writable="1">
3199         <type name="ParamSpec" c:type="GParamSpec"/>
3200       </field>
3201       <field name="minimum" writable="1">
3202         <type name="gint" c:type="gint"/>
3203       </field>
3204       <field name="maximum" writable="1">
3205         <type name="gint" c:type="gint"/>
3206       </field>
3207       <field name="default_value" writable="1">
3208         <type name="gint" c:type="gint"/>
3209       </field>
3210     </record>
3211     <record name="ParamSpecInt64" c:type="GParamSpecInt64">
3212       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for 64bit integer properties.</doc>
3213       <field name="parent_instance" writable="1">
3214         <type name="ParamSpec" c:type="GParamSpec"/>
3215       </field>
3216       <field name="minimum" writable="1">
3217         <type name="gint64" c:type="gint64"/>
3218       </field>
3219       <field name="maximum" writable="1">
3220         <type name="gint64" c:type="gint64"/>
3221       </field>
3222       <field name="default_value" writable="1">
3223         <type name="gint64" c:type="gint64"/>
3224       </field>
3225     </record>
3226     <record name="ParamSpecLong" c:type="GParamSpecLong">
3227       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for long integer properties.</doc>
3228       <field name="parent_instance" writable="1">
3229         <type name="ParamSpec" c:type="GParamSpec"/>
3230       </field>
3231       <field name="minimum" writable="1">
3232         <type name="glong" c:type="glong"/>
3233       </field>
3234       <field name="maximum" writable="1">
3235         <type name="glong" c:type="glong"/>
3236       </field>
3237       <field name="default_value" writable="1">
3238         <type name="glong" c:type="glong"/>
3239       </field>
3240     </record>
3241     <record name="ParamSpecObject" c:type="GParamSpecObject">
3242       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for object properties.</doc>
3243       <field name="parent_instance" writable="1">
3244         <type name="ParamSpec" c:type="GParamSpec"/>
3245       </field>
3246     </record>
3247     <record name="ParamSpecOverride" c:type="GParamSpecOverride" version="2.4">
3248       <doc xml:whitespace="preserve">This is a type of #GParamSpec type that simply redirects operations to
3249 another paramspec.  All operations other than getting or
3250 setting the value are redirected, including accessing the nick and
3251 blurb, validating a value, and so forth. See
3252 g_param_spec_get_redirect_target() for retrieving the overidden
3253 property. #GParamSpecOverride is used in implementing
3254 g_object_class_override_property(), and will not be directly useful
3255 unless you are implementing a new base type similar to GObject.</doc>
3256       <field name="parent_instance" writable="1">
3257         <type name="ParamSpec" c:type="GParamSpec"/>
3258       </field>
3259       <field name="overridden" writable="1">
3260         <type name="ParamSpec" c:type="GParamSpec*"/>
3261       </field>
3262     </record>
3263     <record name="ParamSpecParam" c:type="GParamSpecParam">
3264       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
3265 properties.</doc>
3266       <field name="parent_instance" writable="1">
3267         <type name="ParamSpec" c:type="GParamSpec"/>
3268       </field>
3269     </record>
3270     <record name="ParamSpecPointer" c:type="GParamSpecPointer">
3271       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for pointer properties.</doc>
3272       <field name="parent_instance" writable="1">
3273         <type name="ParamSpec" c:type="GParamSpec"/>
3274       </field>
3275     </record>
3276     <record name="ParamSpecPool" c:type="GParamSpecPool" disguised="1">
3277       <doc xml:whitespace="preserve">A #GParamSpecPool maintains a collection of #GParamSpec&lt;!-- --&gt;s which can be
3278 quickly accessed by owner and name. The implementation of the #GObject property
3279 system uses such a pool to store the #GParamSpecs of the properties all object
3280 types.</doc>
3281       <method name="insert" c:identifier="g_param_spec_pool_insert">
3282         <doc xml:whitespace="preserve">Inserts a #GParamSpec in the pool.</doc>
3283         <return-value transfer-ownership="none">
3284           <type name="none" c:type="void"/>
3285         </return-value>
3286         <parameters>
3287           <parameter name="pspec" transfer-ownership="none">
3288             <doc xml:whitespace="preserve">the #GParamSpec to insert</doc>
3289             <type name="ParamSpec" c:type="GParamSpec*"/>
3290           </parameter>
3291           <parameter name="owner_type" transfer-ownership="none">
3292             <doc xml:whitespace="preserve">a #GType identifying the owner of @pspec</doc>
3293             <type name="GType" c:type="GType"/>
3294           </parameter>
3295         </parameters>
3296       </method>
3297       <method name="list"
3298               c:identifier="g_param_spec_pool_list"
3299               introspectable="0">
3300         <doc xml:whitespace="preserve">Gets an array of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type in
3301 the pool.
3302 #GParamSpec&lt;!-- --&gt;s owned by @owner_type in the pool</doc>
3303         <return-value>
3304           <doc xml:whitespace="preserve">a newly allocated array containing pointers to all</doc>
3305           <type name="ParamSpec" c:type="GParamSpec**"/>
3306         </return-value>
3307         <parameters>
3308           <parameter name="owner_type" transfer-ownership="none">
3309             <doc xml:whitespace="preserve">the owner to look for</doc>
3310             <type name="GType" c:type="GType"/>
3311           </parameter>
3312           <parameter name="n_pspecs_p" transfer-ownership="none">
3313             <doc xml:whitespace="preserve">return location for the length of the returned array</doc>
3314             <type name="guint" c:type="guint*"/>
3315           </parameter>
3316         </parameters>
3317       </method>
3318       <method name="list_owned"
3319               c:identifier="g_param_spec_pool_list_owned"
3320               introspectable="0">
3321         <doc xml:whitespace="preserve">Gets an #GList of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type in
3322 the pool.
3323 in the pool#GParamSpec&lt;!-- --&gt;s.</doc>
3324         <return-value>
3325           <doc xml:whitespace="preserve">a #GList of all #GParamSpec&lt;!-- --&gt;s owned by @owner_type</doc>
3326           <type name="GLib.List" c:type="GList*">
3327             <type name="gpointer" c:type="gpointer"/>
3328           </type>
3329         </return-value>
3330         <parameters>
3331           <parameter name="owner_type" transfer-ownership="none">
3332             <doc xml:whitespace="preserve">the owner to look for</doc>
3333             <type name="GType" c:type="GType"/>
3334           </parameter>
3335         </parameters>
3336       </method>
3337       <method name="lookup"
3338               c:identifier="g_param_spec_pool_lookup"
3339               introspectable="0">
3340         <doc xml:whitespace="preserve">Looks up a #GParamSpec in the pool.</doc>
3341         <return-value>
3342           <doc xml:whitespace="preserve">The found #GParamSpec, or %NULL if no matching #GParamSpec was found.</doc>
3343           <type name="ParamSpec" c:type="GParamSpec*"/>
3344         </return-value>
3345         <parameters>
3346           <parameter name="param_name" transfer-ownership="none">
3347             <doc xml:whitespace="preserve">the name to look for</doc>
3348             <type name="utf8" c:type="gchar*"/>
3349           </parameter>
3350           <parameter name="owner_type" transfer-ownership="none">
3351             <doc xml:whitespace="preserve">the owner to look for</doc>
3352             <type name="GType" c:type="GType"/>
3353           </parameter>
3354           <parameter name="walk_ancestors" transfer-ownership="none">
3355             <doc xml:whitespace="preserve">If %TRUE, also try to find a #GParamSpec with @param_name owned by an ancestor of @owner_type.</doc>
3356             <type name="gboolean" c:type="gboolean"/>
3357           </parameter>
3358         </parameters>
3359       </method>
3360       <method name="remove" c:identifier="g_param_spec_pool_remove">
3361         <doc xml:whitespace="preserve">Removes a #GParamSpec from the pool.</doc>
3362         <return-value transfer-ownership="none">
3363           <type name="none" c:type="void"/>
3364         </return-value>
3365         <parameters>
3366           <parameter name="pspec" transfer-ownership="none">
3367             <doc xml:whitespace="preserve">the #GParamSpec to remove</doc>
3368             <type name="ParamSpec" c:type="GParamSpec*"/>
3369           </parameter>
3370         </parameters>
3371       </method>
3372     </record>
3373     <record name="ParamSpecString" c:type="GParamSpecString">
3374       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for string
3375 properties.</doc>
3376       <field name="parent_instance" writable="1">
3377         <type name="ParamSpec" c:type="GParamSpec"/>
3378       </field>
3379       <field name="default_value" writable="1">
3380         <type name="utf8" c:type="gchar*"/>
3381       </field>
3382       <field name="cset_first" writable="1">
3383         <type name="utf8" c:type="gchar*"/>
3384       </field>
3385       <field name="cset_nth" writable="1">
3386         <type name="utf8" c:type="gchar*"/>
3387       </field>
3388       <field name="substitutor" writable="1">
3389         <type name="gchar" c:type="gchar"/>
3390       </field>
3391       <field name="null_fold_if_empty" writable="1" bits="1">
3392         <type name="guint" c:type="guint"/>
3393       </field>
3394       <field name="ensure_non_null" writable="1" bits="1">
3395         <type name="guint" c:type="guint"/>
3396       </field>
3397     </record>
3398     <record name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo">
3399       <doc xml:whitespace="preserve">This structure is used to provide the type system with the information
3400 required to initialize and destruct (finalize) a parameter's class and
3401 instances thereof.
3402 The initialized structure is passed to the g_param_type_register_static() 
3403 The type system will perform a deep copy of this structure, so its memory 
3404 does not need to be persistent across invocation of 
3405 g_param_type_register_static().</doc>
3406       <field name="instance_size" writable="1">
3407         <type name="guint16" c:type="guint16"/>
3408       </field>
3409       <field name="n_preallocs" writable="1">
3410         <type name="guint16" c:type="guint16"/>
3411       </field>
3412       <field name="instance_init">
3413         <callback name="instance_init">
3414           <return-value transfer-ownership="none">
3415             <type name="none" c:type="void"/>
3416           </return-value>
3417           <parameters>
3418             <parameter name="pspec" transfer-ownership="none">
3419               <type name="ParamSpec" c:type="GParamSpec*"/>
3420             </parameter>
3421           </parameters>
3422         </callback>
3423       </field>
3424       <field name="value_type" writable="1">
3425         <type name="GType" c:type="GType"/>
3426       </field>
3427       <field name="finalize">
3428         <callback name="finalize">
3429           <return-value transfer-ownership="none">
3430             <type name="none" c:type="void"/>
3431           </return-value>
3432           <parameters>
3433             <parameter name="pspec" transfer-ownership="none">
3434               <type name="ParamSpec" c:type="GParamSpec*"/>
3435             </parameter>
3436           </parameters>
3437         </callback>
3438       </field>
3439       <field name="value_set_default">
3440         <callback name="value_set_default">
3441           <return-value transfer-ownership="none">
3442             <type name="none" c:type="void"/>
3443           </return-value>
3444           <parameters>
3445             <parameter name="pspec" transfer-ownership="none">
3446               <type name="ParamSpec" c:type="GParamSpec*"/>
3447             </parameter>
3448             <parameter name="value" transfer-ownership="none">
3449               <type name="Value" c:type="GValue*"/>
3450             </parameter>
3451           </parameters>
3452         </callback>
3453       </field>
3454       <field name="value_validate">
3455         <callback name="value_validate">
3456           <return-value transfer-ownership="none">
3457             <type name="gboolean" c:type="gboolean"/>
3458           </return-value>
3459           <parameters>
3460             <parameter name="pspec" transfer-ownership="none">
3461               <type name="ParamSpec" c:type="GParamSpec*"/>
3462             </parameter>
3463             <parameter name="value" transfer-ownership="none">
3464               <type name="Value" c:type="GValue*"/>
3465             </parameter>
3466           </parameters>
3467         </callback>
3468       </field>
3469       <field name="values_cmp">
3470         <callback name="values_cmp">
3471           <return-value transfer-ownership="none">
3472             <type name="gint" c:type="gint"/>
3473           </return-value>
3474           <parameters>
3475             <parameter name="pspec" transfer-ownership="none">
3476               <type name="ParamSpec" c:type="GParamSpec*"/>
3477             </parameter>
3478             <parameter name="value1" transfer-ownership="none">
3479               <type name="Value" c:type="GValue*"/>
3480             </parameter>
3481             <parameter name="value2" transfer-ownership="none">
3482               <type name="Value" c:type="GValue*"/>
3483             </parameter>
3484           </parameters>
3485         </callback>
3486       </field>
3487     </record>
3488     <record name="ParamSpecUChar" c:type="GParamSpecUChar">
3489       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned character properties.</doc>
3490       <field name="parent_instance" writable="1">
3491         <type name="ParamSpec" c:type="GParamSpec"/>
3492       </field>
3493       <field name="minimum" writable="1">
3494         <type name="guint8" c:type="guint8"/>
3495       </field>
3496       <field name="maximum" writable="1">
3497         <type name="guint8" c:type="guint8"/>
3498       </field>
3499       <field name="default_value" writable="1">
3500         <type name="guint8" c:type="guint8"/>
3501       </field>
3502     </record>
3503     <record name="ParamSpecUInt" c:type="GParamSpecUInt">
3504       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned integer properties.</doc>
3505       <field name="parent_instance" writable="1">
3506         <type name="ParamSpec" c:type="GParamSpec"/>
3507       </field>
3508       <field name="minimum" writable="1">
3509         <type name="guint" c:type="guint"/>
3510       </field>
3511       <field name="maximum" writable="1">
3512         <type name="guint" c:type="guint"/>
3513       </field>
3514       <field name="default_value" writable="1">
3515         <type name="guint" c:type="guint"/>
3516       </field>
3517     </record>
3518     <record name="ParamSpecUInt64" c:type="GParamSpecUInt64">
3519       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.</doc>
3520       <field name="parent_instance" writable="1">
3521         <type name="ParamSpec" c:type="GParamSpec"/>
3522       </field>
3523       <field name="minimum" writable="1">
3524         <type name="guint64" c:type="guint64"/>
3525       </field>
3526       <field name="maximum" writable="1">
3527         <type name="guint64" c:type="guint64"/>
3528       </field>
3529       <field name="default_value" writable="1">
3530         <type name="guint64" c:type="guint64"/>
3531       </field>
3532     </record>
3533     <record name="ParamSpecULong" c:type="GParamSpecULong">
3534       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.</doc>
3535       <field name="parent_instance" writable="1">
3536         <type name="ParamSpec" c:type="GParamSpec"/>
3537       </field>
3538       <field name="minimum" writable="1">
3539         <type name="gulong" c:type="gulong"/>
3540       </field>
3541       <field name="maximum" writable="1">
3542         <type name="gulong" c:type="gulong"/>
3543       </field>
3544       <field name="default_value" writable="1">
3545         <type name="gulong" c:type="gulong"/>
3546       </field>
3547     </record>
3548     <record name="ParamSpecUnichar" c:type="GParamSpecUnichar">
3549       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.</doc>
3550       <field name="parent_instance" writable="1">
3551         <type name="ParamSpec" c:type="GParamSpec"/>
3552       </field>
3553       <field name="default_value" introspectable="0" writable="1">
3554         <type name="gunichar" c:type="gunichar"/>
3555       </field>
3556     </record>
3557     <record name="ParamSpecValueArray" c:type="GParamSpecValueArray">
3558       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GValueArray properties.</doc>
3559       <field name="parent_instance" writable="1">
3560         <type name="ParamSpec" c:type="GParamSpec"/>
3561       </field>
3562       <field name="element_spec" writable="1">
3563         <type name="ParamSpec" c:type="GParamSpec*"/>
3564       </field>
3565       <field name="fixed_n_elements" writable="1">
3566         <type name="guint" c:type="guint"/>
3567       </field>
3568     </record>
3569     <record name="ParamSpecVariant" c:type="GParamSpecVariant" version="2.26">
3570       <doc xml:whitespace="preserve">A #GParamSpec derived structure that contains the meta data for #GVariant properties.</doc>
3571       <field name="parent_instance" writable="1">
3572         <type name="ParamSpec" c:type="GParamSpec"/>
3573       </field>
3574       <field name="type" writable="1">
3575         <type name="GLib.VariantType" c:type="GVariantType*"/>
3576       </field>
3577       <field name="default_value" writable="1">
3578         <type name="GLib.Variant" c:type="GVariant*"/>
3579       </field>
3580       <field name="padding" writable="1">
3581         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
3582           <type name="gpointer" c:type="gpointer"/>
3583         </array>
3584       </field>
3585     </record>
3586     <record name="Parameter" c:type="GParameter">
3587       <doc xml:whitespace="preserve">The &lt;structname&gt;GParameter&lt;/structname&gt; struct is an auxiliary structure used
3588 to hand parameter name/value pairs to g_object_newv().</doc>
3589       <field name="name" writable="1">
3590         <type name="utf8" c:type="gchar*"/>
3591       </field>
3592       <field name="value" writable="1">
3593         <type name="Value" c:type="GValue"/>
3594       </field>
3595     </record>
3596     <glib:boxed glib:name="PtrArray"
3597                 c:symbol-prefix="ptr_array"
3598                 glib:type-name="GPtrArray"
3599                 glib:get-type="g_ptr_array_get_type">
3600     </glib:boxed>
3601     <glib:boxed glib:name="Regex"
3602                 c:symbol-prefix="regex"
3603                 glib:type-name="GRegex"
3604                 glib:get-type="g_regex_get_type">
3605     </glib:boxed>
3606     <constant name="SIGNAL_FLAGS_MASK" value="127">
3607       <type name="gint" c:type="gint"/>
3608     </constant>
3609     <constant name="SIGNAL_MATCH_MASK" value="63">
3610       <type name="gint" c:type="gint"/>
3611     </constant>
3612     <callback name="SignalAccumulator" c:type="GSignalAccumulator">
3613       <doc xml:whitespace="preserve">The signal accumulator is a special callback function that can be used
3614 to collect return values of the various callbacks that are called
3615 during a signal emission. The signal accumulator is specified at signal
3616 creation time, if it is left %NULL, no accumulation of callback return
3617 values is performed. The return value of signal emissions is then the
3618 value returned by the last callback.
3619 should be aborted. Returning %FALSE means to abort the
3620 current emission and %TRUE is returned for continuation.</doc>
3621       <return-value transfer-ownership="none">
3622         <doc xml:whitespace="preserve">The accumulator function returns whether the signal emission</doc>
3623         <type name="gboolean" c:type="gboolean"/>
3624       </return-value>
3625       <parameters>
3626         <parameter name="ihint" transfer-ownership="none">
3627           <doc xml:whitespace="preserve">Signal invocation hint, see #GSignalInvocationHint.</doc>
3628           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
3629         </parameter>
3630         <parameter name="return_accu" transfer-ownership="none">
3631           <doc xml:whitespace="preserve">Accumulator to collect callback return values in, this is the return value of the current signal emission.</doc>
3632           <type name="Value" c:type="GValue*"/>
3633         </parameter>
3634         <parameter name="handler_return" transfer-ownership="none">
3635           <doc xml:whitespace="preserve">A #GValue holding the return value of the signal handler.</doc>
3636           <type name="Value" c:type="GValue*"/>
3637         </parameter>
3638         <parameter name="data" transfer-ownership="none">
3639           <doc xml:whitespace="preserve">Callback data that was specified when creating the signal.</doc>
3640           <type name="gpointer" c:type="gpointer"/>
3641         </parameter>
3642       </parameters>
3643     </callback>
3644     <callback name="SignalEmissionHook" c:type="GSignalEmissionHook">
3645       <doc xml:whitespace="preserve">A simple function pointer to get invoked when the signal is emitted. This 
3646 allows you to tie a hook to the signal type, so that it will trap all 
3647 emissions of that signal, from any object.
3648 You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag.
3649 hook is disconnected (and destroyed).</doc>
3650       <return-value transfer-ownership="none">
3651         <doc xml:whitespace="preserve">whether it wants to stay connected. If it returns %FALSE, the signal</doc>
3652         <type name="gboolean" c:type="gboolean"/>
3653       </return-value>
3654       <parameters>
3655         <parameter name="ihint" transfer-ownership="none">
3656           <doc xml:whitespace="preserve">Signal invocation hint, see #GSignalInvocationHint.</doc>
3657           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
3658         </parameter>
3659         <parameter name="n_param_values" transfer-ownership="none">
3660           <doc xml:whitespace="preserve">the number of parameters to the function, including the instance on which the signal was emitted.</doc>
3661           <type name="guint" c:type="guint"/>
3662         </parameter>
3663         <parameter name="param_values" transfer-ownership="none">
3664           <doc xml:whitespace="preserve">the instance on which the signal was emitted, followed by the parameters of the emission.</doc>
3665           <type name="Value" c:type="GValue*"/>
3666         </parameter>
3667         <parameter name="data" transfer-ownership="none">
3668           <doc xml:whitespace="preserve">user data associated with the hook.</doc>
3669           <type name="gpointer" c:type="gpointer"/>
3670         </parameter>
3671       </parameters>
3672     </callback>
3673     <bitfield name="SignalFlags" c:type="GSignalFlags">
3674       <doc xml:whitespace="preserve">The signal flags are used to specify a signal's behaviour, the overall
3675 signal description outlines how especially the RUN flags control the
3676 stages of a signal emission.</doc>
3677       <member name="run_first" value="1" c:identifier="G_SIGNAL_RUN_FIRST"/>
3678       <member name="run_last" value="2" c:identifier="G_SIGNAL_RUN_LAST"/>
3679       <member name="run_cleanup"
3680               value="4"
3681               c:identifier="G_SIGNAL_RUN_CLEANUP"/>
3682       <member name="no_recurse" value="8" c:identifier="G_SIGNAL_NO_RECURSE"/>
3683       <member name="detailed" value="16" c:identifier="G_SIGNAL_DETAILED"/>
3684       <member name="action" value="32" c:identifier="G_SIGNAL_ACTION"/>
3685       <member name="no_hooks" value="64" c:identifier="G_SIGNAL_NO_HOOKS"/>
3686     </bitfield>
3687     <record name="SignalInvocationHint" c:type="GSignalInvocationHint">
3688       <doc xml:whitespace="preserve">The #GSignalInvocationHint structure is used to pass on additional information
3689 to callbacks during a signal emission.</doc>
3690       <field name="signal_id" writable="1">
3691         <type name="guint" c:type="guint"/>
3692       </field>
3693       <field name="detail" writable="1">
3694         <type name="GLib.Quark" c:type="GQuark"/>
3695       </field>
3696       <field name="run_type" writable="1">
3697         <type name="SignalFlags" c:type="GSignalFlags"/>
3698       </field>
3699     </record>
3700     <bitfield name="SignalMatchType" c:type="GSignalMatchType">
3701       <doc xml:whitespace="preserve">The match types specify what g_signal_handlers_block_matched(),
3702 g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
3703 match signals by.</doc>
3704       <member name="id" value="1" c:identifier="G_SIGNAL_MATCH_ID"/>
3705       <member name="detail" value="2" c:identifier="G_SIGNAL_MATCH_DETAIL"/>
3706       <member name="closure" value="4" c:identifier="G_SIGNAL_MATCH_CLOSURE"/>
3707       <member name="func" value="8" c:identifier="G_SIGNAL_MATCH_FUNC"/>
3708       <member name="data" value="16" c:identifier="G_SIGNAL_MATCH_DATA"/>
3709       <member name="unblocked"
3710               value="32"
3711               c:identifier="G_SIGNAL_MATCH_UNBLOCKED"/>
3712     </bitfield>
3713     <record name="SignalQuery" c:type="GSignalQuery">
3714       <doc xml:whitespace="preserve">A structure holding in-depth information for a specific signal. It is
3715 filled in by the g_signal_query() function.</doc>
3716       <field name="signal_id" writable="1">
3717         <type name="guint" c:type="guint"/>
3718       </field>
3719       <field name="signal_name" writable="1">
3720         <type name="utf8" c:type="gchar*"/>
3721       </field>
3722       <field name="itype" writable="1">
3723         <type name="GType" c:type="GType"/>
3724       </field>
3725       <field name="signal_flags" writable="1">
3726         <type name="SignalFlags" c:type="GSignalFlags"/>
3727       </field>
3728       <field name="return_type" writable="1">
3729         <type name="GType" c:type="GType"/>
3730       </field>
3731       <field name="n_params" writable="1">
3732         <type name="guint" c:type="guint"/>
3733       </field>
3734       <field name="param_types" writable="1">
3735         <type name="GType" c:type="GType*"/>
3736       </field>
3737     </record>
3738     <glib:boxed glib:name="String"
3739                 c:symbol-prefix="gstring"
3740                 glib:type-name="GString"
3741                 glib:get-type="g_gstring_get_type">
3742     </glib:boxed>
3743     <constant name="TYPE_FUNDAMENTAL_MAX" value="255">
3744       <type name="gint" c:type="gint"/>
3745     </constant>
3746     <constant name="TYPE_FUNDAMENTAL_SHIFT" value="2">
3747       <type name="gint" c:type="gint"/>
3748     </constant>
3749     <constant name="TYPE_RESERVED_BSE_FIRST" value="32">
3750       <type name="gint" c:type="gint"/>
3751     </constant>
3752     <constant name="TYPE_RESERVED_BSE_LAST" value="48">
3753       <type name="gint" c:type="gint"/>
3754     </constant>
3755     <constant name="TYPE_RESERVED_GLIB_FIRST" value="22">
3756       <type name="gint" c:type="gint"/>
3757     </constant>
3758     <constant name="TYPE_RESERVED_GLIB_LAST" value="31">
3759       <type name="gint" c:type="gint"/>
3760     </constant>
3761     <constant name="TYPE_RESERVED_USER_FIRST" value="49">
3762       <type name="gint" c:type="gint"/>
3763     </constant>
3764     <callback name="ToggleNotify" c:type="GToggleNotify">
3765       <doc xml:whitespace="preserve">A callback function used for notification when the state
3766 of a toggle reference changes. See g_object_add_toggle_ref().</doc>
3767       <return-value transfer-ownership="none">
3768         <type name="none" c:type="void"/>
3769       </return-value>
3770       <parameters>
3771         <parameter name="data" transfer-ownership="none">
3772           <doc xml:whitespace="preserve">Callback data passed to g_object_add_toggle_ref()</doc>
3773           <type name="gpointer" c:type="gpointer"/>
3774         </parameter>
3775         <parameter name="object" transfer-ownership="none">
3776           <doc xml:whitespace="preserve">The object on which g_object_add_toggle_ref() was called.</doc>
3777           <type name="Object" c:type="GObject*"/>
3778         </parameter>
3779         <parameter name="is_last_ref" transfer-ownership="none">
3780           <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>
3781           <type name="gboolean" c:type="gboolean"/>
3782         </parameter>
3783       </parameters>
3784     </callback>
3785     <union name="TypeCValue" c:type="GTypeCValue">
3786       <doc xml:whitespace="preserve">A union holding one collected value.</doc>
3787       <field name="v_int" writable="1">
3788         <type name="gint" c:type="gint"/>
3789       </field>
3790       <field name="v_long" writable="1">
3791         <type name="glong" c:type="glong"/>
3792       </field>
3793       <field name="v_int64" writable="1">
3794         <type name="gint64" c:type="gint64"/>
3795       </field>
3796       <field name="v_double" writable="1">
3797         <type name="gdouble" c:type="gdouble"/>
3798       </field>
3799       <field name="v_pointer" writable="1">
3800         <type name="gpointer" c:type="gpointer"/>
3801       </field>
3802     </union>
3803     <record name="TypeClass" c:type="GTypeClass">
3804       <doc xml:whitespace="preserve">An opaque structure used as the base of all classes.</doc>
3805       <field name="g_type" writable="1">
3806         <type name="GType" c:type="GType"/>
3807       </field>
3808       <method name="get_private"
3809               c:identifier="g_type_class_get_private"
3810               introspectable="0">
3811         <return-value>
3812           <type name="gpointer" c:type="gpointer"/>
3813         </return-value>
3814         <parameters>
3815           <parameter name="private_type" transfer-ownership="none">
3816             <type name="GType" c:type="GType"/>
3817           </parameter>
3818         </parameters>
3819       </method>
3820     </record>
3821     <callback name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc">
3822       <doc xml:whitespace="preserve">A callback function which is called when the reference count of a class 
3823 drops to zero. It may use g_type_class_ref() to prevent the class from
3824 being freed. You should not call g_type_class_unref() from a 
3825 #GTypeClassCacheFunc function to prevent infinite recursion, use 
3826 g_type_class_unref_uncached() instead.
3827 The functions have to check the class id passed in to figure 
3828 whether they actually want to cache the class of this type, since all
3829 classes are routed through the same #GTypeClassCacheFunc chain.
3830 called, %FALSE to continue.</doc>
3831       <return-value transfer-ownership="none">
3832         <doc xml:whitespace="preserve">%TRUE to stop further #GTypeClassCacheFunc&lt;!-- --&gt;s from being</doc>
3833         <type name="gboolean" c:type="gboolean"/>
3834       </return-value>
3835       <parameters>
3836         <parameter name="cache_data" transfer-ownership="none">
3837           <doc xml:whitespace="preserve">data that was given to the g_type_add_class_cache_func() call</doc>
3838           <type name="gpointer" c:type="gpointer"/>
3839         </parameter>
3840         <parameter name="g_class" transfer-ownership="none">
3841           <doc xml:whitespace="preserve">The #GTypeClass structure which is unreferenced</doc>
3842           <type name="TypeClass" c:type="GTypeClass*"/>
3843         </parameter>
3844       </parameters>
3845     </callback>
3846     <bitfield name="TypeDebugFlags" c:type="GTypeDebugFlags">
3847       <doc xml:whitespace="preserve">The &lt;type&gt;GTypeDebugFlags&lt;/type&gt; enumeration values can be passed to
3848 g_type_init_with_debug_flags() to trigger debugging messages during runtime.
3849 Note that the messages can also be triggered by setting the
3850 &lt;envar&gt;GOBJECT_DEBUG&lt;/envar&gt; environment variable to a ':'-separated list of 
3851 "objects" and "signals".</doc>
3852       <member name="none" value="0" c:identifier="G_TYPE_DEBUG_NONE"/>
3853       <member name="objects" value="1" c:identifier="G_TYPE_DEBUG_OBJECTS"/>
3854       <member name="signals" value="2" c:identifier="G_TYPE_DEBUG_SIGNALS"/>
3855       <member name="mask" value="3" c:identifier="G_TYPE_DEBUG_MASK"/>
3856     </bitfield>
3857     <bitfield name="TypeFlags" c:type="GTypeFlags">
3858       <doc xml:whitespace="preserve">Bit masks used to check or determine characteristics of a type.</doc>
3859       <member name="abstract" value="16" c:identifier="G_TYPE_FLAG_ABSTRACT"/>
3860       <member name="value_abstract"
3861               value="32"
3862               c:identifier="G_TYPE_FLAG_VALUE_ABSTRACT"/>
3863     </bitfield>
3864     <bitfield name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags">
3865       <doc xml:whitespace="preserve">Bit masks used to check or determine specific characteristics of a
3866 fundamental type.</doc>
3867       <member name="classed" value="1" c:identifier="G_TYPE_FLAG_CLASSED"/>
3868       <member name="instantiatable"
3869               value="2"
3870               c:identifier="G_TYPE_FLAG_INSTANTIATABLE"/>
3871       <member name="derivable" value="4" c:identifier="G_TYPE_FLAG_DERIVABLE"/>
3872       <member name="deep_derivable"
3873               value="8"
3874               c:identifier="G_TYPE_FLAG_DEEP_DERIVABLE"/>
3875     </bitfield>
3876     <record name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo">
3877       <doc xml:whitespace="preserve">A structure that provides information to the type system which is
3878 used specifically for managing fundamental types.</doc>
3879       <field name="type_flags" writable="1">
3880         <type name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags"/>
3881       </field>
3882     </record>
3883     <record name="TypeInfo" c:type="GTypeInfo">
3884       <doc xml:whitespace="preserve">This structure is used to provide the type system with the information
3885 required to initialize and destruct (finalize) a type's class and
3886 its instances.
3887 The initialized structure is passed to the g_type_register_static() function
3888 (or is copied into the provided #GTypeInfo structure in the
3889 g_type_plugin_complete_type_info()). The type system will perform a deep
3890 copy of this structure, so its memory does not need to be persistent
3891 across invocation of g_type_register_static().</doc>
3892       <field name="class_size" writable="1">
3893         <type name="guint16" c:type="guint16"/>
3894       </field>
3895       <field name="base_init" writable="1">
3896         <type name="BaseInitFunc" c:type="GBaseInitFunc"/>
3897       </field>
3898       <field name="base_finalize" writable="1">
3899         <type name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
3900       </field>
3901       <field name="class_init" writable="1">
3902         <type name="ClassInitFunc" c:type="GClassInitFunc"/>
3903       </field>
3904       <field name="class_finalize" writable="1">
3905         <type name="ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
3906       </field>
3907       <field name="class_data" writable="1">
3908         <type name="gpointer" c:type="gconstpointer"/>
3909       </field>
3910       <field name="instance_size" writable="1">
3911         <type name="guint16" c:type="guint16"/>
3912       </field>
3913       <field name="n_preallocs" writable="1">
3914         <type name="guint16" c:type="guint16"/>
3915       </field>
3916       <field name="instance_init" writable="1">
3917         <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
3918       </field>
3919       <field name="value_table" writable="1">
3920         <type name="TypeValueTable" c:type="GTypeValueTable*"/>
3921       </field>
3922     </record>
3923     <record name="TypeInstance" c:type="GTypeInstance">
3924       <doc xml:whitespace="preserve">An opaque structure used as the base of all type instances.</doc>
3925       <field name="g_class" writable="1">
3926         <type name="TypeClass" c:type="GTypeClass*"/>
3927       </field>
3928       <method name="get_private"
3929               c:identifier="g_type_instance_get_private"
3930               introspectable="0">
3931         <return-value>
3932           <type name="gpointer" c:type="gpointer"/>
3933         </return-value>
3934         <parameters>
3935           <parameter name="private_type" transfer-ownership="none">
3936             <type name="GType" c:type="GType"/>
3937           </parameter>
3938         </parameters>
3939       </method>
3940     </record>
3941     <record name="TypeInterface" c:type="GTypeInterface">
3942       <doc xml:whitespace="preserve">An opaque structure used as the base of all interface types.</doc>
3943       <field name="g_type" writable="1">
3944         <type name="GType" c:type="GType"/>
3945       </field>
3946       <field name="g_instance_type" writable="1">
3947         <type name="GType" c:type="GType"/>
3948       </field>
3949     </record>
3950     <callback name="TypeInterfaceCheckFunc"
3951               c:type="GTypeInterfaceCheckFunc"
3952               version="2.4">
3953       <doc xml:whitespace="preserve">A callback called after an interface vtable is initialized.
3954 See g_type_add_interface_check().</doc>
3955       <return-value transfer-ownership="none">
3956         <type name="none" c:type="void"/>
3957       </return-value>
3958       <parameters>
3959         <parameter name="check_data" transfer-ownership="none">
3960           <doc xml:whitespace="preserve">data passed to g_type_add_interface_check().</doc>
3961           <type name="gpointer" c:type="gpointer"/>
3962         </parameter>
3963         <parameter name="g_iface" transfer-ownership="none">
3964           <doc xml:whitespace="preserve">the interface that has been initialized</doc>
3965           <type name="gpointer" c:type="gpointer"/>
3966         </parameter>
3967       </parameters>
3968     </callback>
3969     <class name="TypeModule"
3970            c:symbol-prefix="type_module"
3971            c:type="GTypeModule"
3972            parent="Object"
3973            abstract="1"
3974            glib:type-name="GTypeModule"
3975            glib:get-type="g_type_module_get_type"
3976            glib:type-struct="TypeModuleClass">
3977       <doc xml:whitespace="preserve">The members of the &lt;structname&gt;GTypeModule&lt;/structname&gt; structure should not 
3978 be accessed directly, except for the @name field.</doc>
3979       <implements name="TypePlugin"/>
3980       <virtual-method name="load">
3981         <return-value transfer-ownership="none">
3982           <type name="gboolean" c:type="gboolean"/>
3983         </return-value>
3984       </virtual-method>
3985       <virtual-method name="unload">
3986         <return-value transfer-ownership="none">
3987           <type name="none" c:type="void"/>
3988         </return-value>
3989       </virtual-method>
3990       <method name="add_interface" c:identifier="g_type_module_add_interface">
3991         <doc xml:whitespace="preserve">Registers an additional interface for a type, whose interface lives
3992 in the given type plugin. If the interface was already registered
3993 for the type in this plugin, nothing will be done.
3994 As long as any instances of the type exist, the type plugin will
3995 not be unloaded.</doc>
3996         <return-value transfer-ownership="none">
3997           <type name="none" c:type="void"/>
3998         </return-value>
3999         <parameters>
4000           <parameter name="instance_type" transfer-ownership="none">
4001             <doc xml:whitespace="preserve">type to which to add the interface.</doc>
4002             <type name="GType" c:type="GType"/>
4003           </parameter>
4004           <parameter name="interface_type" transfer-ownership="none">
4005             <doc xml:whitespace="preserve">interface type to add</doc>
4006             <type name="GType" c:type="GType"/>
4007           </parameter>
4008           <parameter name="interface_info" transfer-ownership="none">
4009             <doc xml:whitespace="preserve">type information structure</doc>
4010             <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
4011           </parameter>
4012         </parameters>
4013       </method>
4014       <method name="register_enum"
4015               c:identifier="g_type_module_register_enum"
4016               version="2.6">
4017         <doc xml:whitespace="preserve">Looks up or registers an enumeration that is implemented with a particular
4018 type plugin. If a type with name @type_name was previously registered,
4019 the #GType identifier for the type is returned, otherwise the type
4020 is newly registered, and the resulting #GType identifier returned.
4021 As long as any instances of the type exist, the type plugin will
4022 not be unloaded.</doc>
4023         <return-value transfer-ownership="none">
4024           <doc xml:whitespace="preserve">the new or existing type ID</doc>
4025           <type name="GType" c:type="GType"/>
4026         </return-value>
4027         <parameters>
4028           <parameter name="name" transfer-ownership="none">
4029             <doc xml:whitespace="preserve">name for the type</doc>
4030             <type name="utf8" c:type="gchar*"/>
4031           </parameter>
4032           <parameter name="const_static_values" transfer-ownership="none">
4033             <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>
4034             <type name="EnumValue" c:type="GEnumValue*"/>
4035           </parameter>
4036         </parameters>
4037       </method>
4038       <method name="register_flags"
4039               c:identifier="g_type_module_register_flags"
4040               version="2.6">
4041         <doc xml:whitespace="preserve">Looks up or registers a flags type that is implemented with a particular
4042 type plugin. If a type with name @type_name was previously registered,
4043 the #GType identifier for the type is returned, otherwise the type
4044 is newly registered, and the resulting #GType identifier returned.
4045 As long as any instances of the type exist, the type plugin will
4046 not be unloaded.</doc>
4047         <return-value transfer-ownership="none">
4048           <doc xml:whitespace="preserve">the new or existing type ID</doc>
4049           <type name="GType" c:type="GType"/>
4050         </return-value>
4051         <parameters>
4052           <parameter name="name" transfer-ownership="none">
4053             <doc xml:whitespace="preserve">name for the type</doc>
4054             <type name="utf8" c:type="gchar*"/>
4055           </parameter>
4056           <parameter name="const_static_values" transfer-ownership="none">
4057             <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>
4058             <type name="FlagsValue" c:type="GFlagsValue*"/>
4059           </parameter>
4060         </parameters>
4061       </method>
4062       <method name="register_type" c:identifier="g_type_module_register_type">
4063         <doc xml:whitespace="preserve">Looks up or registers a type that is implemented with a particular
4064 type plugin. If a type with name @type_name was previously registered,
4065 the #GType identifier for the type is returned, otherwise the type
4066 is newly registered, and the resulting #GType identifier returned.
4067 When reregistering a type (typically because a module is unloaded
4068 then reloaded, and reinitialized), @module and @parent_type must
4069 be the same as they were previously.
4070 As long as any instances of the type exist, the type plugin will
4071 not be unloaded.</doc>
4072         <return-value transfer-ownership="none">
4073           <doc xml:whitespace="preserve">the new or existing type ID</doc>
4074           <type name="GType" c:type="GType"/>
4075         </return-value>
4076         <parameters>
4077           <parameter name="parent_type" transfer-ownership="none">
4078             <doc xml:whitespace="preserve">the type for the parent class</doc>
4079             <type name="GType" c:type="GType"/>
4080           </parameter>
4081           <parameter name="type_name" transfer-ownership="none">
4082             <doc xml:whitespace="preserve">name for the type</doc>
4083             <type name="utf8" c:type="gchar*"/>
4084           </parameter>
4085           <parameter name="type_info" transfer-ownership="none">
4086             <doc xml:whitespace="preserve">type information structure</doc>
4087             <type name="TypeInfo" c:type="GTypeInfo*"/>
4088           </parameter>
4089           <parameter name="flags" transfer-ownership="none">
4090             <doc xml:whitespace="preserve">flags field providing details about the type</doc>
4091             <type name="TypeFlags" c:type="GTypeFlags"/>
4092           </parameter>
4093         </parameters>
4094       </method>
4095       <method name="set_name" c:identifier="g_type_module_set_name">
4096         <doc xml:whitespace="preserve">Sets the name for a #GTypeModule</doc>
4097         <return-value transfer-ownership="none">
4098           <type name="none" c:type="void"/>
4099         </return-value>
4100         <parameters>
4101           <parameter name="name" transfer-ownership="none">
4102             <doc xml:whitespace="preserve">a human-readable name to use in error messages.</doc>
4103             <type name="utf8" c:type="gchar*"/>
4104           </parameter>
4105         </parameters>
4106       </method>
4107       <method name="unuse" c:identifier="g_type_module_unuse">
4108         <doc xml:whitespace="preserve">Decreases the use count of a #GTypeModule by one. If the
4109 result is zero, the module will be unloaded. (However, the
4110 #GTypeModule will not be freed, and types associated with the
4111 #GTypeModule are not unregistered. Once a #GTypeModule is
4112 initialized, it must exist forever.)</doc>
4113         <return-value transfer-ownership="none">
4114           <type name="none" c:type="void"/>
4115         </return-value>
4116       </method>
4117       <method name="use" c:identifier="g_type_module_use">
4118         <doc xml:whitespace="preserve">Increases the use count of a #GTypeModule by one. If the
4119 use count was zero before, the plugin will be loaded.
4120 If loading the plugin fails, the use count is reset to
4121 its prior value.
4122 loading the plugin failed.</doc>
4123         <return-value transfer-ownership="none">
4124           <doc xml:whitespace="preserve">%FALSE if the plugin needed to be loaded and</doc>
4125           <type name="gboolean" c:type="gboolean"/>
4126         </return-value>
4127       </method>
4128       <field name="parent_instance">
4129         <type name="Object" c:type="GObject"/>
4130       </field>
4131       <field name="use_count">
4132         <type name="guint" c:type="guint"/>
4133       </field>
4134       <field name="type_infos">
4135         <type name="GLib.SList" c:type="GSList*">
4136           <type name="gpointer" c:type="gpointer"/>
4137         </type>
4138       </field>
4139       <field name="interface_infos">
4140         <type name="GLib.SList" c:type="GSList*">
4141           <type name="gpointer" c:type="gpointer"/>
4142         </type>
4143       </field>
4144       <field name="name">
4145         <type name="utf8" c:type="gchar*"/>
4146       </field>
4147     </class>
4148     <record name="TypeModuleClass"
4149             c:type="GTypeModuleClass"
4150             glib:is-gtype-struct-for="TypeModule">
4151       <doc xml:whitespace="preserve">In order to implement dynamic loading of types based on #GTypeModule, 
4152 the @load and @unload functions in #GTypeModuleClass must be implemented.</doc>
4153       <field name="parent_class">
4154         <type name="ObjectClass" c:type="GObjectClass"/>
4155       </field>
4156       <field name="load">
4157         <callback name="load">
4158           <return-value transfer-ownership="none">
4159             <type name="gboolean" c:type="gboolean"/>
4160           </return-value>
4161           <parameters>
4162             <parameter name="module" transfer-ownership="none">
4163               <type name="TypeModule" c:type="GTypeModule*"/>
4164             </parameter>
4165           </parameters>
4166         </callback>
4167       </field>
4168       <field name="unload">
4169         <callback name="unload">
4170           <return-value transfer-ownership="none">
4171             <type name="none" c:type="void"/>
4172           </return-value>
4173           <parameters>
4174             <parameter name="module" transfer-ownership="none">
4175               <type name="TypeModule" c:type="GTypeModule*"/>
4176             </parameter>
4177           </parameters>
4178         </callback>
4179       </field>
4180       <field name="reserved1">
4181         <callback name="reserved1">
4182           <return-value transfer-ownership="none">
4183             <type name="none" c:type="void"/>
4184           </return-value>
4185         </callback>
4186       </field>
4187       <field name="reserved2">
4188         <callback name="reserved2">
4189           <return-value transfer-ownership="none">
4190             <type name="none" c:type="void"/>
4191           </return-value>
4192         </callback>
4193       </field>
4194       <field name="reserved3">
4195         <callback name="reserved3">
4196           <return-value transfer-ownership="none">
4197             <type name="none" c:type="void"/>
4198           </return-value>
4199         </callback>
4200       </field>
4201       <field name="reserved4">
4202         <callback name="reserved4">
4203           <return-value transfer-ownership="none">
4204             <type name="none" c:type="void"/>
4205           </return-value>
4206         </callback>
4207       </field>
4208     </record>
4209     <interface name="TypePlugin"
4210                c:symbol-prefix="type_plugin"
4211                c:type="GTypePlugin"
4212                glib:type-name="GTypePlugin"
4213                glib:get-type="g_type_plugin_get_type">
4214       <doc xml:whitespace="preserve">The &lt;structname&gt;GTypePlugin&lt;/structname&gt; typedef is used as a placeholder 
4215 for objects that implement the &lt;structname&gt;GTypePlugin&lt;/structname&gt; 
4216 interface.</doc>
4217       <method name="complete_interface_info"
4218               c:identifier="g_type_plugin_complete_interface_info">
4219         <doc xml:whitespace="preserve">Calls the @complete_interface_info function from the
4220 #GTypePluginClass of @plugin. There should be no need to use this
4221 function outside of the GObject type system itself.</doc>
4222         <return-value transfer-ownership="none">
4223           <type name="none" c:type="void"/>
4224         </return-value>
4225         <parameters>
4226           <parameter name="instance_type" transfer-ownership="none">
4227             <doc xml:whitespace="preserve">the #GType of an instantiable type to which the interface is added</doc>
4228             <type name="GType" c:type="GType"/>
4229           </parameter>
4230           <parameter name="interface_type" transfer-ownership="none">
4231             <doc xml:whitespace="preserve">the #GType of the interface whose info is completed</doc>
4232             <type name="GType" c:type="GType"/>
4233           </parameter>
4234           <parameter name="info" transfer-ownership="none">
4235             <doc xml:whitespace="preserve">the #GInterfaceInfo to fill in</doc>
4236             <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
4237           </parameter>
4238         </parameters>
4239       </method>
4240       <method name="complete_type_info"
4241               c:identifier="g_type_plugin_complete_type_info">
4242         <doc xml:whitespace="preserve">Calls the @complete_type_info function from the #GTypePluginClass of @plugin.
4243 There should be no need to use this function outside of the GObject
4244 type system itself.</doc>
4245         <return-value transfer-ownership="none">
4246           <type name="none" c:type="void"/>
4247         </return-value>
4248         <parameters>
4249           <parameter name="g_type" transfer-ownership="none">
4250             <doc xml:whitespace="preserve">the #GType whose info is completed</doc>
4251             <type name="GType" c:type="GType"/>
4252           </parameter>
4253           <parameter name="info" transfer-ownership="none">
4254             <doc xml:whitespace="preserve">the #GTypeInfo struct to fill in</doc>
4255             <type name="TypeInfo" c:type="GTypeInfo*"/>
4256           </parameter>
4257           <parameter name="value_table" transfer-ownership="none">
4258             <doc xml:whitespace="preserve">the #GTypeValueTable to fill in</doc>
4259             <type name="TypeValueTable" c:type="GTypeValueTable*"/>
4260           </parameter>
4261         </parameters>
4262       </method>
4263       <method name="unuse" c:identifier="g_type_plugin_unuse">
4264         <doc xml:whitespace="preserve">Calls the @unuse_plugin function from the #GTypePluginClass of
4265 the GObject type system itself.</doc>
4266         <return-value transfer-ownership="none">
4267           <type name="none" c:type="void"/>
4268         </return-value>
4269       </method>
4270       <method name="use" c:identifier="g_type_plugin_use">
4271         <doc xml:whitespace="preserve">Calls the @use_plugin function from the #GTypePluginClass of
4272 the GObject type system itself.</doc>
4273         <return-value transfer-ownership="none">
4274           <type name="none" c:type="void"/>
4275         </return-value>
4276       </method>
4277     </interface>
4278     <record name="TypePluginClass" c:type="GTypePluginClass">
4279       <doc xml:whitespace="preserve">The #GTypePlugin interface is used by the type system in order to handle
4280 the lifecycle of dynamically loaded types.</doc>
4281       <field name="base_iface" writable="1">
4282         <type name="TypeInterface" c:type="GTypeInterface"/>
4283       </field>
4284       <field name="use_plugin" writable="1">
4285         <type name="TypePluginUse" c:type="GTypePluginUse"/>
4286       </field>
4287       <field name="unuse_plugin" writable="1">
4288         <type name="TypePluginUnuse" c:type="GTypePluginUnuse"/>
4289       </field>
4290       <field name="complete_type_info" writable="1">
4291         <type name="TypePluginCompleteTypeInfo"
4292               c:type="GTypePluginCompleteTypeInfo"/>
4293       </field>
4294       <field name="complete_interface_info" writable="1">
4295         <type name="TypePluginCompleteInterfaceInfo"
4296               c:type="GTypePluginCompleteInterfaceInfo"/>
4297       </field>
4298     </record>
4299     <callback name="TypePluginCompleteInterfaceInfo"
4300               c:type="GTypePluginCompleteInterfaceInfo">
4301       <doc xml:whitespace="preserve">The type of the @complete_interface_info function of #GTypePluginClass.</doc>
4302       <return-value transfer-ownership="none">
4303         <type name="none" c:type="void"/>
4304       </return-value>
4305       <parameters>
4306         <parameter name="plugin" transfer-ownership="none">
4307           <doc xml:whitespace="preserve">the #GTypePlugin</doc>
4308           <type name="TypePlugin" c:type="GTypePlugin*"/>
4309         </parameter>
4310         <parameter name="instance_type" transfer-ownership="none">
4311           <doc xml:whitespace="preserve">the #GType of an instantiable type to which the interface is added</doc>
4312           <type name="GType" c:type="GType"/>
4313         </parameter>
4314         <parameter name="interface_type" transfer-ownership="none">
4315           <doc xml:whitespace="preserve">the #GType of the interface whose info is completed</doc>
4316           <type name="GType" c:type="GType"/>
4317         </parameter>
4318         <parameter name="info" transfer-ownership="none">
4319           <doc xml:whitespace="preserve">the #GInterfaceInfo to fill in</doc>
4320           <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
4321         </parameter>
4322       </parameters>
4323     </callback>
4324     <callback name="TypePluginCompleteTypeInfo"
4325               c:type="GTypePluginCompleteTypeInfo">
4326       <doc xml:whitespace="preserve">The type of the @complete_type_info function of #GTypePluginClass.</doc>
4327       <return-value transfer-ownership="none">
4328         <type name="none" c:type="void"/>
4329       </return-value>
4330       <parameters>
4331         <parameter name="plugin" transfer-ownership="none">
4332           <doc xml:whitespace="preserve">the #GTypePlugin</doc>
4333           <type name="TypePlugin" c:type="GTypePlugin*"/>
4334         </parameter>
4335         <parameter name="g_type" transfer-ownership="none">
4336           <doc xml:whitespace="preserve">the #GType whose info is completed</doc>
4337           <type name="GType" c:type="GType"/>
4338         </parameter>
4339         <parameter name="info" transfer-ownership="none">
4340           <doc xml:whitespace="preserve">the #GTypeInfo struct to fill in</doc>
4341           <type name="TypeInfo" c:type="GTypeInfo*"/>
4342         </parameter>
4343         <parameter name="value_table" transfer-ownership="none">
4344           <doc xml:whitespace="preserve">the #GTypeValueTable to fill in</doc>
4345           <type name="TypeValueTable" c:type="GTypeValueTable*"/>
4346         </parameter>
4347       </parameters>
4348     </callback>
4349     <callback name="TypePluginUnuse" c:type="GTypePluginUnuse">
4350       <doc xml:whitespace="preserve">The type of the @unuse_plugin function of #GTypePluginClass.</doc>
4351       <return-value transfer-ownership="none">
4352         <type name="none" c:type="void"/>
4353       </return-value>
4354       <parameters>
4355         <parameter name="plugin" transfer-ownership="none">
4356           <doc xml:whitespace="preserve">the #GTypePlugin whose use count should be decreased</doc>
4357           <type name="TypePlugin" c:type="GTypePlugin*"/>
4358         </parameter>
4359       </parameters>
4360     </callback>
4361     <callback name="TypePluginUse" c:type="GTypePluginUse">
4362       <doc xml:whitespace="preserve">The type of the @use_plugin function of #GTypePluginClass, which gets called
4363 to increase the use count of @plugin.</doc>
4364       <return-value transfer-ownership="none">
4365         <type name="none" c:type="void"/>
4366       </return-value>
4367       <parameters>
4368         <parameter name="plugin" transfer-ownership="none">
4369           <doc xml:whitespace="preserve">the #GTypePlugin whose use count should be increased</doc>
4370           <type name="TypePlugin" c:type="GTypePlugin*"/>
4371         </parameter>
4372       </parameters>
4373     </callback>
4374     <record name="TypeQuery" c:type="GTypeQuery">
4375       <doc xml:whitespace="preserve">A structure holding information for a specific type. It is
4376 filled in by the g_type_query() function.</doc>
4377       <field name="type" writable="1">
4378         <type name="GType" c:type="GType"/>
4379       </field>
4380       <field name="type_name" writable="1">
4381         <type name="utf8" c:type="gchar*"/>
4382       </field>
4383       <field name="class_size" writable="1">
4384         <type name="guint" c:type="guint"/>
4385       </field>
4386       <field name="instance_size" writable="1">
4387         <type name="guint" c:type="guint"/>
4388       </field>
4389     </record>
4390     <record name="TypeValueTable" c:type="GTypeValueTable">
4391       <doc xml:whitespace="preserve">The #GTypeValueTable provides the functions required by the #GValue implementation,
4392 to serve as a container for values of a type.</doc>
4393       <field name="value_init">
4394         <callback name="value_init">
4395           <return-value transfer-ownership="none">
4396             <type name="none" c:type="void"/>
4397           </return-value>
4398           <parameters>
4399             <parameter name="value" transfer-ownership="none">
4400               <type name="Value" c:type="GValue*"/>
4401             </parameter>
4402           </parameters>
4403         </callback>
4404       </field>
4405       <field name="value_free">
4406         <callback name="value_free">
4407           <return-value transfer-ownership="none">
4408             <type name="none" c:type="void"/>
4409           </return-value>
4410           <parameters>
4411             <parameter name="value" transfer-ownership="none">
4412               <type name="Value" c:type="GValue*"/>
4413             </parameter>
4414           </parameters>
4415         </callback>
4416       </field>
4417       <field name="value_copy">
4418         <callback name="value_copy">
4419           <return-value transfer-ownership="none">
4420             <type name="none" c:type="void"/>
4421           </return-value>
4422           <parameters>
4423             <parameter name="src_value" transfer-ownership="none">
4424               <type name="Value" c:type="GValue*"/>
4425             </parameter>
4426             <parameter name="dest_value" transfer-ownership="none">
4427               <type name="Value" c:type="GValue*"/>
4428             </parameter>
4429           </parameters>
4430         </callback>
4431       </field>
4432       <field name="value_peek_pointer" introspectable="0">
4433         <callback name="value_peek_pointer" introspectable="0">
4434           <return-value>
4435             <type name="gpointer" c:type="gpointer"/>
4436           </return-value>
4437           <parameters>
4438             <parameter name="value" transfer-ownership="none">
4439               <type name="Value" c:type="GValue*"/>
4440             </parameter>
4441           </parameters>
4442         </callback>
4443       </field>
4444       <field name="collect_format" writable="1">
4445         <type name="utf8" c:type="gchar*"/>
4446       </field>
4447       <field name="collect_value">
4448         <callback name="collect_value">
4449           <return-value transfer-ownership="full">
4450             <type name="utf8" c:type="gchar*"/>
4451           </return-value>
4452           <parameters>
4453             <parameter name="value" transfer-ownership="none">
4454               <type name="Value" c:type="GValue*"/>
4455             </parameter>
4456             <parameter name="n_collect_values" transfer-ownership="none">
4457               <type name="guint" c:type="guint"/>
4458             </parameter>
4459             <parameter name="collect_values" transfer-ownership="none">
4460               <type name="TypeCValue" c:type="GTypeCValue*"/>
4461             </parameter>
4462             <parameter name="collect_flags" transfer-ownership="none">
4463               <type name="guint" c:type="guint"/>
4464             </parameter>
4465           </parameters>
4466         </callback>
4467       </field>
4468       <field name="lcopy_format" writable="1">
4469         <type name="utf8" c:type="gchar*"/>
4470       </field>
4471       <field name="lcopy_value">
4472         <callback name="lcopy_value">
4473           <return-value transfer-ownership="full">
4474             <type name="utf8" c:type="gchar*"/>
4475           </return-value>
4476           <parameters>
4477             <parameter name="value" transfer-ownership="none">
4478               <type name="Value" c:type="GValue*"/>
4479             </parameter>
4480             <parameter name="n_collect_values" transfer-ownership="none">
4481               <type name="guint" c:type="guint"/>
4482             </parameter>
4483             <parameter name="collect_values" transfer-ownership="none">
4484               <type name="TypeCValue" c:type="GTypeCValue*"/>
4485             </parameter>
4486             <parameter name="collect_flags" transfer-ownership="none">
4487               <type name="guint" c:type="guint"/>
4488             </parameter>
4489           </parameters>
4490         </callback>
4491       </field>
4492     </record>
4493     <constant name="VALUE_COLLECT_FORMAT_MAX_LENGTH" value="8">
4494       <type name="gint" c:type="gint"/>
4495     </constant>
4496     <constant name="VALUE_NOCOPY_CONTENTS" value="134217728">
4497       <type name="gint" c:type="gint"/>
4498     </constant>
4499     <record name="Value"
4500             c:type="GValue"
4501             glib:type-name="GValue"
4502             glib:get-type="g_value_get_type"
4503             c:symbol-prefix="value">
4504       <doc xml:whitespace="preserve">An opaque structure used to hold different types of values.
4505 to functions within a #GTypeValueTable structure, or implementations of
4506 the g_value_*() API. That is, code portions which implement new fundamental
4507 types.
4508 #GValue users can not make any assumptions about how data is stored
4509 within the 2 element @data union, and the @g_type member should
4510 only be accessed through the G_VALUE_TYPE() macro.</doc>
4511       <field name="g_type" writable="1">
4512         <type name="GType" c:type="GType"/>
4513       </field>
4514       <field name="data" writable="1">
4515         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
4516           <type name="gpointer" c:type="gpointer"/>
4517         </array>
4518       </field>
4519       <method name="copy" c:identifier="g_value_copy">
4520         <doc xml:whitespace="preserve">Copies the value of @src_value into @dest_value.</doc>
4521         <return-value transfer-ownership="none">
4522           <type name="none" c:type="void"/>
4523         </return-value>
4524         <parameters>
4525           <parameter name="dest_value" transfer-ownership="none">
4526             <doc xml:whitespace="preserve">An initialized #GValue structure of the same type as @src_value.</doc>
4527             <type name="Value" c:type="GValue*"/>
4528           </parameter>
4529         </parameters>
4530       </method>
4531       <method name="dup_boxed"
4532               c:identifier="g_value_dup_boxed"
4533               introspectable="0">
4534         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOXED derived #GValue.  Upon getting,
4535 the boxed value is duplicated and needs to be later freed with
4536 return_value);</doc>
4537         <return-value>
4538           <doc xml:whitespace="preserve">boxed contents of @value</doc>
4539           <type name="gpointer" c:type="gpointer"/>
4540         </return-value>
4541       </method>
4542       <method name="dup_object"
4543               c:identifier="g_value_dup_object"
4544               introspectable="0">
4545         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing
4546 its reference count.
4547 longer needed.</doc>
4548         <return-value>
4549           <doc xml:whitespace="preserve">object content of @value, should be unreferenced when no</doc>
4550           <type name="gpointer" c:type="gpointer"/>
4551         </return-value>
4552       </method>
4553       <method name="dup_param"
4554               c:identifier="g_value_dup_param"
4555               introspectable="0">
4556         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_PARAM #GValue, increasing its
4557 reference count.
4558 no longer needed.</doc>
4559         <return-value>
4560           <doc xml:whitespace="preserve">#GParamSpec content of @value, should be unreferenced when</doc>
4561           <type name="ParamSpec" c:type="GParamSpec*"/>
4562         </return-value>
4563       </method>
4564       <method name="dup_string" c:identifier="g_value_dup_string">
4565         <doc xml:whitespace="preserve">Get a copy the contents of a %G_TYPE_STRING #GValue.</doc>
4566         <return-value transfer-ownership="full">
4567           <doc xml:whitespace="preserve">a newly allocated copy of the string content of @value</doc>
4568           <type name="utf8" c:type="gchar*"/>
4569         </return-value>
4570       </method>
4571       <method name="dup_variant"
4572               c:identifier="g_value_dup_variant"
4573               version="2.26">
4574         <doc xml:whitespace="preserve">Get the contents of a variant #GValue, increasing its refcount.
4575 g_variant_unref() when no longer needed</doc>
4576         <return-value transfer-ownership="full">
4577           <doc xml:whitespace="preserve">variant contents of @value, should be unrefed using</doc>
4578           <type name="GLib.Variant" c:type="GVariant*"/>
4579         </return-value>
4580       </method>
4581       <method name="fits_pointer" c:identifier="g_value_fits_pointer">
4582         <doc xml:whitespace="preserve">Determines if @value will fit inside the size of a pointer value.
4583 This is an internal function introduced mainly for C marshallers.</doc>
4584         <return-value transfer-ownership="none">
4585           <doc xml:whitespace="preserve">%TRUE if @value will fit inside a pointer value.</doc>
4586           <type name="gboolean" c:type="gboolean"/>
4587         </return-value>
4588       </method>
4589       <method name="get_boolean" c:identifier="g_value_get_boolean">
4590         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOOLEAN #GValue.</doc>
4591         <return-value transfer-ownership="none">
4592           <doc xml:whitespace="preserve">boolean contents of @value</doc>
4593           <type name="gboolean" c:type="gboolean"/>
4594         </return-value>
4595       </method>
4596       <method name="get_boxed"
4597               c:identifier="g_value_get_boxed"
4598               introspectable="0">
4599         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_BOXED derived #GValue.</doc>
4600         <return-value>
4601           <doc xml:whitespace="preserve">boxed contents of @value</doc>
4602           <type name="gpointer" c:type="gpointer"/>
4603         </return-value>
4604       </method>
4605       <method name="get_char" c:identifier="g_value_get_char">
4606         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_CHAR #GValue.</doc>
4607         <return-value transfer-ownership="none">
4608           <doc xml:whitespace="preserve">character contents of @value</doc>
4609           <type name="gchar" c:type="gchar"/>
4610         </return-value>
4611       </method>
4612       <method name="get_double" c:identifier="g_value_get_double">
4613         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_DOUBLE #GValue.</doc>
4614         <return-value transfer-ownership="none">
4615           <doc xml:whitespace="preserve">double contents of @value</doc>
4616           <type name="gdouble" c:type="gdouble"/>
4617         </return-value>
4618       </method>
4619       <method name="get_enum" c:identifier="g_value_get_enum">
4620         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_ENUM #GValue.</doc>
4621         <return-value transfer-ownership="none">
4622           <doc xml:whitespace="preserve">enum contents of @value</doc>
4623           <type name="gint" c:type="gint"/>
4624         </return-value>
4625       </method>
4626       <method name="get_flags" c:identifier="g_value_get_flags">
4627         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_FLAGS #GValue.</doc>
4628         <return-value transfer-ownership="none">
4629           <doc xml:whitespace="preserve">flags contents of @value</doc>
4630           <type name="guint" c:type="guint"/>
4631         </return-value>
4632       </method>
4633       <method name="get_float" c:identifier="g_value_get_float">
4634         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_FLOAT #GValue.</doc>
4635         <return-value transfer-ownership="none">
4636           <doc xml:whitespace="preserve">float contents of @value</doc>
4637           <type name="gfloat" c:type="gfloat"/>
4638         </return-value>
4639       </method>
4640       <method name="get_gtype" c:identifier="g_value_get_gtype" version="2.12">
4641         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_GTYPE #GValue.</doc>
4642         <return-value transfer-ownership="none">
4643           <doc xml:whitespace="preserve">the #GType stored in @value</doc>
4644           <type name="GType" c:type="GType"/>
4645         </return-value>
4646       </method>
4647       <method name="get_int" c:identifier="g_value_get_int">
4648         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_INT #GValue.</doc>
4649         <return-value transfer-ownership="none">
4650           <doc xml:whitespace="preserve">integer contents of @value</doc>
4651           <type name="gint" c:type="gint"/>
4652         </return-value>
4653       </method>
4654       <method name="get_int64" c:identifier="g_value_get_int64">
4655         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_INT64 #GValue.</doc>
4656         <return-value transfer-ownership="none">
4657           <doc xml:whitespace="preserve">64bit integer contents of @value</doc>
4658           <type name="gint64" c:type="gint64"/>
4659         </return-value>
4660       </method>
4661       <method name="get_long" c:identifier="g_value_get_long">
4662         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_LONG #GValue.</doc>
4663         <return-value transfer-ownership="none">
4664           <doc xml:whitespace="preserve">long integer contents of @value</doc>
4665           <type name="glong" c:type="glong"/>
4666         </return-value>
4667       </method>
4668       <method name="get_object"
4669               c:identifier="g_value_get_object"
4670               introspectable="0">
4671         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_OBJECT derived #GValue.</doc>
4672         <return-value>
4673           <doc xml:whitespace="preserve">object contents of @value</doc>
4674           <type name="gpointer" c:type="gpointer"/>
4675         </return-value>
4676       </method>
4677       <method name="get_param"
4678               c:identifier="g_value_get_param"
4679               introspectable="0">
4680         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_PARAM #GValue.</doc>
4681         <return-value>
4682           <doc xml:whitespace="preserve">#GParamSpec content of @value</doc>
4683           <type name="ParamSpec" c:type="GParamSpec*"/>
4684         </return-value>
4685       </method>
4686       <method name="get_pointer"
4687               c:identifier="g_value_get_pointer"
4688               introspectable="0">
4689         <doc xml:whitespace="preserve">Get the contents of a pointer #GValue.</doc>
4690         <return-value>
4691           <doc xml:whitespace="preserve">pointer contents of @value</doc>
4692           <type name="gpointer" c:type="gpointer"/>
4693         </return-value>
4694       </method>
4695       <method name="get_string" c:identifier="g_value_get_string">
4696         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_STRING #GValue.</doc>
4697         <return-value transfer-ownership="none">
4698           <doc xml:whitespace="preserve">string content of @value</doc>
4699           <type name="utf8" c:type="gchar*"/>
4700         </return-value>
4701       </method>
4702       <method name="get_uchar" c:identifier="g_value_get_uchar">
4703         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UCHAR #GValue.</doc>
4704         <return-value transfer-ownership="none">
4705           <doc xml:whitespace="preserve">unsigned character contents of @value</doc>
4706           <type name="guint8" c:type="guchar"/>
4707         </return-value>
4708       </method>
4709       <method name="get_uint" c:identifier="g_value_get_uint">
4710         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UINT #GValue.</doc>
4711         <return-value transfer-ownership="none">
4712           <doc xml:whitespace="preserve">unsigned integer contents of @value</doc>
4713           <type name="guint" c:type="guint"/>
4714         </return-value>
4715       </method>
4716       <method name="get_uint64" c:identifier="g_value_get_uint64">
4717         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_UINT64 #GValue.</doc>
4718         <return-value transfer-ownership="none">
4719           <doc xml:whitespace="preserve">unsigned 64bit integer contents of @value</doc>
4720           <type name="guint64" c:type="guint64"/>
4721         </return-value>
4722       </method>
4723       <method name="get_ulong" c:identifier="g_value_get_ulong">
4724         <doc xml:whitespace="preserve">Get the contents of a %G_TYPE_ULONG #GValue.</doc>
4725         <return-value transfer-ownership="none">
4726           <doc xml:whitespace="preserve">unsigned long integer contents of @value</doc>
4727           <type name="gulong" c:type="gulong"/>
4728         </return-value>
4729       </method>
4730       <method name="get_variant"
4731               c:identifier="g_value_get_variant"
4732               version="2.26">
4733         <doc xml:whitespace="preserve">Get the contents of a variant #GValue.</doc>
4734         <return-value transfer-ownership="full">
4735           <doc xml:whitespace="preserve">variant contents of @value</doc>
4736           <type name="GLib.Variant" c:type="GVariant*"/>
4737         </return-value>
4738       </method>
4739       <method name="init" c:identifier="g_value_init">
4740         <doc xml:whitespace="preserve">Initializes @value with the default value of @type.</doc>
4741         <return-value transfer-ownership="full">
4742           <doc xml:whitespace="preserve">the #GValue structure that has been passed in</doc>
4743           <type name="Value" c:type="GValue*"/>
4744         </return-value>
4745         <parameters>
4746           <parameter name="g_type" transfer-ownership="none">
4747             <doc xml:whitespace="preserve">Type the #GValue should hold values of.</doc>
4748             <type name="GType" c:type="GType"/>
4749           </parameter>
4750         </parameters>
4751       </method>
4752       <method name="peek_pointer"
4753               c:identifier="g_value_peek_pointer"
4754               introspectable="0">
4755         <doc xml:whitespace="preserve">Return the value contents as pointer. This function asserts that
4756 g_value_fits_pointer() returned %TRUE for the passed in value.
4757 This is an internal function introduced mainly for C marshallers.</doc>
4758         <return-value>
4759           <doc xml:whitespace="preserve">%TRUE if @value will fit inside a pointer value.</doc>
4760           <type name="gpointer" c:type="gpointer"/>
4761         </return-value>
4762       </method>
4763       <method name="reset" c:identifier="g_value_reset">
4764         <doc xml:whitespace="preserve">Clears the current value in @value and resets it to the default value
4765 (as if the value had just been initialized).</doc>
4766         <return-value transfer-ownership="full">
4767           <doc xml:whitespace="preserve">the #GValue structure that has been passed in</doc>
4768           <type name="Value" c:type="GValue*"/>
4769         </return-value>
4770       </method>
4771       <method name="set_boolean" c:identifier="g_value_set_boolean">
4772         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOOLEAN #GValue to @v_boolean.</doc>
4773         <return-value transfer-ownership="none">
4774           <type name="none" c:type="void"/>
4775         </return-value>
4776         <parameters>
4777           <parameter name="v_boolean" transfer-ownership="none">
4778             <doc xml:whitespace="preserve">boolean value to be set</doc>
4779             <type name="gboolean" c:type="gboolean"/>
4780           </parameter>
4781         </parameters>
4782       </method>
4783       <method name="set_boxed" c:identifier="g_value_set_boxed">
4784         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.</doc>
4785         <return-value transfer-ownership="none">
4786           <type name="none" c:type="void"/>
4787         </return-value>
4788         <parameters>
4789           <parameter name="v_boxed" transfer-ownership="none">
4790             <doc xml:whitespace="preserve">boxed value to be set</doc>
4791             <type name="gpointer" c:type="gconstpointer"/>
4792           </parameter>
4793         </parameters>
4794       </method>
4795       <method name="set_boxed_take_ownership"
4796               c:identifier="g_value_set_boxed_take_ownership"
4797               deprecated="Use g_value_take_boxed() instead."
4798               deprecated-version="2.4">
4799         <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
4800         <return-value transfer-ownership="none">
4801           <type name="none" c:type="void"/>
4802         </return-value>
4803         <parameters>
4804           <parameter name="v_boxed" transfer-ownership="none">
4805             <doc xml:whitespace="preserve">duplicated unowned boxed value to be set</doc>
4806             <type name="gpointer" c:type="gconstpointer"/>
4807           </parameter>
4808         </parameters>
4809       </method>
4810       <method name="set_char" c:identifier="g_value_set_char">
4811         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_CHAR #GValue to @v_char.</doc>
4812         <return-value transfer-ownership="none">
4813           <type name="none" c:type="void"/>
4814         </return-value>
4815         <parameters>
4816           <parameter name="v_char" transfer-ownership="none">
4817             <doc xml:whitespace="preserve">character value to be set</doc>
4818             <type name="gchar" c:type="gchar"/>
4819           </parameter>
4820         </parameters>
4821       </method>
4822       <method name="set_double" c:identifier="g_value_set_double">
4823         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_DOUBLE #GValue to @v_double.</doc>
4824         <return-value transfer-ownership="none">
4825           <type name="none" c:type="void"/>
4826         </return-value>
4827         <parameters>
4828           <parameter name="v_double" transfer-ownership="none">
4829             <doc xml:whitespace="preserve">double value to be set</doc>
4830             <type name="gdouble" c:type="gdouble"/>
4831           </parameter>
4832         </parameters>
4833       </method>
4834       <method name="set_enum" c:identifier="g_value_set_enum">
4835         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_ENUM #GValue to @v_enum.</doc>
4836         <return-value transfer-ownership="none">
4837           <type name="none" c:type="void"/>
4838         </return-value>
4839         <parameters>
4840           <parameter name="v_enum" transfer-ownership="none">
4841             <doc xml:whitespace="preserve">enum value to be set</doc>
4842             <type name="gint" c:type="gint"/>
4843           </parameter>
4844         </parameters>
4845       </method>
4846       <method name="set_flags" c:identifier="g_value_set_flags">
4847         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_FLAGS #GValue to @v_flags.</doc>
4848         <return-value transfer-ownership="none">
4849           <type name="none" c:type="void"/>
4850         </return-value>
4851         <parameters>
4852           <parameter name="v_flags" transfer-ownership="none">
4853             <doc xml:whitespace="preserve">flags value to be set</doc>
4854             <type name="guint" c:type="guint"/>
4855           </parameter>
4856         </parameters>
4857       </method>
4858       <method name="set_float" c:identifier="g_value_set_float">
4859         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_FLOAT #GValue to @v_float.</doc>
4860         <return-value transfer-ownership="none">
4861           <type name="none" c:type="void"/>
4862         </return-value>
4863         <parameters>
4864           <parameter name="v_float" transfer-ownership="none">
4865             <doc xml:whitespace="preserve">float value to be set</doc>
4866             <type name="gfloat" c:type="gfloat"/>
4867           </parameter>
4868         </parameters>
4869       </method>
4870       <method name="set_gtype" c:identifier="g_value_set_gtype" version="2.12">
4871         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_GTYPE #GValue to @v_gtype.</doc>
4872         <return-value transfer-ownership="none">
4873           <type name="none" c:type="void"/>
4874         </return-value>
4875         <parameters>
4876           <parameter name="v_gtype" transfer-ownership="none">
4877             <doc xml:whitespace="preserve">#GType to be set</doc>
4878             <type name="GType" c:type="GType"/>
4879           </parameter>
4880         </parameters>
4881       </method>
4882       <method name="set_instance" c:identifier="g_value_set_instance">
4883         <doc xml:whitespace="preserve">Sets @value from an instantiatable type via the
4884 value_table's collect_value() function.</doc>
4885         <return-value transfer-ownership="none">
4886           <type name="none" c:type="void"/>
4887         </return-value>
4888         <parameters>
4889           <parameter name="instance" transfer-ownership="none">
4890             <doc xml:whitespace="preserve">the instance</doc>
4891             <type name="gpointer" c:type="gpointer"/>
4892           </parameter>
4893         </parameters>
4894       </method>
4895       <method name="set_int" c:identifier="g_value_set_int">
4896         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_INT #GValue to @v_int.</doc>
4897         <return-value transfer-ownership="none">
4898           <type name="none" c:type="void"/>
4899         </return-value>
4900         <parameters>
4901           <parameter name="v_int" transfer-ownership="none">
4902             <doc xml:whitespace="preserve">integer value to be set</doc>
4903             <type name="gint" c:type="gint"/>
4904           </parameter>
4905         </parameters>
4906       </method>
4907       <method name="set_int64" c:identifier="g_value_set_int64">
4908         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_INT64 #GValue to @v_int64.</doc>
4909         <return-value transfer-ownership="none">
4910           <type name="none" c:type="void"/>
4911         </return-value>
4912         <parameters>
4913           <parameter name="v_int64" transfer-ownership="none">
4914             <doc xml:whitespace="preserve">64bit integer value to be set</doc>
4915             <type name="gint64" c:type="gint64"/>
4916           </parameter>
4917         </parameters>
4918       </method>
4919       <method name="set_long" c:identifier="g_value_set_long">
4920         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_LONG #GValue to @v_long.</doc>
4921         <return-value transfer-ownership="none">
4922           <type name="none" c:type="void"/>
4923         </return-value>
4924         <parameters>
4925           <parameter name="v_long" transfer-ownership="none">
4926             <doc xml:whitespace="preserve">long integer value to be set</doc>
4927             <type name="glong" c:type="glong"/>
4928           </parameter>
4929         </parameters>
4930       </method>
4931       <method name="set_object" c:identifier="g_value_set_object">
4932         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object.
4933 g_value_set_object() increases the reference count of @v_object
4934 (the #GValue holds a reference to @v_object).  If you do not wish
4935 to increase the reference count of the object (i.e. you wish to
4936 pass your current reference to the #GValue because you no longer
4937 need it), use g_value_take_object() instead.
4938 It is important that your #GValue holds a reference to @v_object (either its
4939 own, or one it has taken) to ensure that the object won't be destroyed while
4940 the #GValue still exists).</doc>
4941         <return-value transfer-ownership="none">
4942           <type name="none" c:type="void"/>
4943         </return-value>
4944         <parameters>
4945           <parameter name="v_object" transfer-ownership="none">
4946             <doc xml:whitespace="preserve">object value to be set</doc>
4947             <type name="gpointer" c:type="gpointer"/>
4948           </parameter>
4949         </parameters>
4950       </method>
4951       <method name="set_object_take_ownership"
4952               c:identifier="g_value_set_object_take_ownership"
4953               deprecated="Use g_value_take_object() instead."
4954               deprecated-version="2.4">
4955         <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
4956         <return-value transfer-ownership="none">
4957           <type name="none" c:type="void"/>
4958         </return-value>
4959         <parameters>
4960           <parameter name="v_object" transfer-ownership="none">
4961             <doc xml:whitespace="preserve">object value to be set</doc>
4962             <type name="gpointer" c:type="gpointer"/>
4963           </parameter>
4964         </parameters>
4965       </method>
4966       <method name="set_param" c:identifier="g_value_set_param">
4967         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_PARAM #GValue to @param.</doc>
4968         <return-value transfer-ownership="none">
4969           <type name="none" c:type="void"/>
4970         </return-value>
4971         <parameters>
4972           <parameter name="param" transfer-ownership="none">
4973             <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
4974             <type name="ParamSpec" c:type="GParamSpec*"/>
4975           </parameter>
4976         </parameters>
4977       </method>
4978       <method name="set_param_take_ownership"
4979               c:identifier="g_value_set_param_take_ownership"
4980               deprecated="Use g_value_take_param() instead."
4981               deprecated-version="2.4">
4982         <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
4983         <return-value transfer-ownership="none">
4984           <type name="none" c:type="void"/>
4985         </return-value>
4986         <parameters>
4987           <parameter name="param" transfer-ownership="none">
4988             <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
4989             <type name="ParamSpec" c:type="GParamSpec*"/>
4990           </parameter>
4991         </parameters>
4992       </method>
4993       <method name="set_pointer" c:identifier="g_value_set_pointer">
4994         <doc xml:whitespace="preserve">Set the contents of a pointer #GValue to @v_pointer.</doc>
4995         <return-value transfer-ownership="none">
4996           <type name="none" c:type="void"/>
4997         </return-value>
4998         <parameters>
4999           <parameter name="v_pointer" transfer-ownership="none">
5000             <doc xml:whitespace="preserve">pointer value to be set</doc>
5001             <type name="gpointer" c:type="gpointer"/>
5002           </parameter>
5003         </parameters>
5004       </method>
5005       <method name="set_static_boxed" c:identifier="g_value_set_static_boxed">
5006         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed.
5007 The boxed value is assumed to be static, and is thus not duplicated
5008 when setting the #GValue.</doc>
5009         <return-value transfer-ownership="none">
5010           <type name="none" c:type="void"/>
5011         </return-value>
5012         <parameters>
5013           <parameter name="v_boxed" transfer-ownership="none">
5014             <doc xml:whitespace="preserve">static boxed value to be set</doc>
5015             <type name="gpointer" c:type="gconstpointer"/>
5016           </parameter>
5017         </parameters>
5018       </method>
5019       <method name="set_static_string"
5020               c:identifier="g_value_set_static_string">
5021         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_STRING #GValue to @v_string.
5022 The string is assumed to be static, and is thus not duplicated
5023 when setting the #GValue.</doc>
5024         <return-value transfer-ownership="none">
5025           <type name="none" c:type="void"/>
5026         </return-value>
5027         <parameters>
5028           <parameter name="v_string" transfer-ownership="none">
5029             <doc xml:whitespace="preserve">static string to be set</doc>
5030             <type name="utf8" c:type="gchar*"/>
5031           </parameter>
5032         </parameters>
5033       </method>
5034       <method name="set_string" c:identifier="g_value_set_string">
5035         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_STRING #GValue to @v_string.</doc>
5036         <return-value transfer-ownership="none">
5037           <type name="none" c:type="void"/>
5038         </return-value>
5039         <parameters>
5040           <parameter name="v_string" transfer-ownership="none">
5041             <doc xml:whitespace="preserve">caller-owned string to be duplicated for the #GValue</doc>
5042             <type name="utf8" c:type="gchar*"/>
5043           </parameter>
5044         </parameters>
5045       </method>
5046       <method name="set_string_take_ownership"
5047               c:identifier="g_value_set_string_take_ownership"
5048               deprecated="Use g_value_take_string() instead."
5049               deprecated-version="2.4">
5050         <doc xml:whitespace="preserve">This is an internal function introduced mainly for C marshallers.</doc>
5051         <return-value transfer-ownership="none">
5052           <type name="none" c:type="void"/>
5053         </return-value>
5054         <parameters>
5055           <parameter name="v_string" transfer-ownership="none">
5056             <doc xml:whitespace="preserve">duplicated unowned string to be set</doc>
5057             <type name="utf8" c:type="gchar*"/>
5058           </parameter>
5059         </parameters>
5060       </method>
5061       <method name="set_uchar" c:identifier="g_value_set_uchar">
5062         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UCHAR #GValue to @v_uchar.</doc>
5063         <return-value transfer-ownership="none">
5064           <type name="none" c:type="void"/>
5065         </return-value>
5066         <parameters>
5067           <parameter name="v_uchar" transfer-ownership="none">
5068             <doc xml:whitespace="preserve">unsigned character value to be set</doc>
5069             <type name="guint8" c:type="guchar"/>
5070           </parameter>
5071         </parameters>
5072       </method>
5073       <method name="set_uint" c:identifier="g_value_set_uint">
5074         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UINT #GValue to @v_uint.</doc>
5075         <return-value transfer-ownership="none">
5076           <type name="none" c:type="void"/>
5077         </return-value>
5078         <parameters>
5079           <parameter name="v_uint" transfer-ownership="none">
5080             <doc xml:whitespace="preserve">unsigned integer value to be set</doc>
5081             <type name="guint" c:type="guint"/>
5082           </parameter>
5083         </parameters>
5084       </method>
5085       <method name="set_uint64" c:identifier="g_value_set_uint64">
5086         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_UINT64 #GValue to @v_uint64.</doc>
5087         <return-value transfer-ownership="none">
5088           <type name="none" c:type="void"/>
5089         </return-value>
5090         <parameters>
5091           <parameter name="v_uint64" transfer-ownership="none">
5092             <doc xml:whitespace="preserve">unsigned 64bit integer value to be set</doc>
5093             <type name="guint64" c:type="guint64"/>
5094           </parameter>
5095         </parameters>
5096       </method>
5097       <method name="set_ulong" c:identifier="g_value_set_ulong">
5098         <doc xml:whitespace="preserve">Set the contents of a %G_TYPE_ULONG #GValue to @v_ulong.</doc>
5099         <return-value transfer-ownership="none">
5100           <type name="none" c:type="void"/>
5101         </return-value>
5102         <parameters>
5103           <parameter name="v_ulong" transfer-ownership="none">
5104             <doc xml:whitespace="preserve">unsigned long integer value to be set</doc>
5105             <type name="gulong" c:type="gulong"/>
5106           </parameter>
5107         </parameters>
5108       </method>
5109       <method name="set_variant"
5110               c:identifier="g_value_set_variant"
5111               version="2.26">
5112         <doc xml:whitespace="preserve">Set the contents of a variant #GValue to @variant.
5113 If the variant is floating, it is consumed.</doc>
5114         <return-value transfer-ownership="none">
5115           <type name="none" c:type="void"/>
5116         </return-value>
5117         <parameters>
5118           <parameter name="variant" transfer-ownership="none">
5119             <doc xml:whitespace="preserve">a #GVariant, or %NULL</doc>
5120             <type name="GLib.Variant" c:type="GVariant*"/>
5121           </parameter>
5122         </parameters>
5123       </method>
5124       <method name="take_boxed"
5125               c:identifier="g_value_take_boxed"
5126               version="2.4">
5127         <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_BOXED derived #GValue to @v_boxed
5128 and takes over the ownership of the callers reference to @v_boxed;
5129 the caller doesn't have to unref it any more.</doc>
5130         <return-value transfer-ownership="none">
5131           <type name="none" c:type="void"/>
5132         </return-value>
5133         <parameters>
5134           <parameter name="v_boxed" transfer-ownership="none">
5135             <doc xml:whitespace="preserve">duplicated unowned boxed value to be set</doc>
5136             <type name="gpointer" c:type="gconstpointer"/>
5137           </parameter>
5138         </parameters>
5139       </method>
5140       <method name="take_object"
5141               c:identifier="g_value_take_object"
5142               version="2.4">
5143         <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_OBJECT derived #GValue to @v_object
5144 and takes over the ownership of the callers reference to @v_object;
5145 the caller doesn't have to unref it any more (i.e. the reference
5146 count of the object is not increased).
5147 If you want the #GValue to hold its own reference to @v_object, use
5148 g_value_set_object() instead.</doc>
5149         <return-value transfer-ownership="none">
5150           <type name="none" c:type="void"/>
5151         </return-value>
5152         <parameters>
5153           <parameter name="v_object" transfer-ownership="none">
5154             <doc xml:whitespace="preserve">object value to be set</doc>
5155             <type name="gpointer" c:type="gpointer"/>
5156           </parameter>
5157         </parameters>
5158       </method>
5159       <method name="take_param"
5160               c:identifier="g_value_take_param"
5161               version="2.4">
5162         <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_PARAM #GValue to @param and takes
5163 over the ownership of the callers reference to @param; the caller
5164 doesn't have to unref it any more.</doc>
5165         <return-value transfer-ownership="none">
5166           <type name="none" c:type="void"/>
5167         </return-value>
5168         <parameters>
5169           <parameter name="param" transfer-ownership="none">
5170             <doc xml:whitespace="preserve">the #GParamSpec to be set</doc>
5171             <type name="ParamSpec" c:type="GParamSpec*"/>
5172           </parameter>
5173         </parameters>
5174       </method>
5175       <method name="take_string"
5176               c:identifier="g_value_take_string"
5177               version="2.4">
5178         <doc xml:whitespace="preserve">Sets the contents of a %G_TYPE_STRING #GValue to @v_string.</doc>
5179         <return-value transfer-ownership="none">
5180           <type name="none" c:type="void"/>
5181         </return-value>
5182         <parameters>
5183           <parameter name="v_string" transfer-ownership="none">
5184             <doc xml:whitespace="preserve">string to take ownership of</doc>
5185             <type name="utf8" c:type="gchar*"/>
5186           </parameter>
5187         </parameters>
5188       </method>
5189       <method name="take_variant"
5190               c:identifier="g_value_take_variant"
5191               version="2.26">
5192         <doc xml:whitespace="preserve">Set the contents of a variant #GValue to @variant, and takes over
5193 the ownership of the caller's reference to @variant;
5194 the caller doesn't have to unref it any more (i.e. the reference
5195 count of the variant is not increased).
5196 It is a programmer error to pass a floating variant to this function.
5197 In particular this means that callbacks in closures, and signal handlers
5198 for signals of return type %G_TYPE_VARIANT, must never return floating
5199 variants.
5200 If you want the #GValue to hold its own reference to @variant, use
5201 g_value_set_variant() instead.
5202 This is an internal function introduced mainly for C marshallers.</doc>
5203         <return-value transfer-ownership="none">
5204           <type name="none" c:type="void"/>
5205         </return-value>
5206         <parameters>
5207           <parameter name="variant" transfer-ownership="none">
5208             <doc xml:whitespace="preserve">a #GVariant, or %NULL</doc>
5209             <type name="GLib.Variant" c:type="GVariant*"/>
5210           </parameter>
5211         </parameters>
5212       </method>
5213       <method name="transform" c:identifier="g_value_transform">
5214         <doc xml:whitespace="preserve">Tries to cast the contents of @src_value into a type appropriate
5215 to store in @dest_value, e.g. to transform a %G_TYPE_INT value
5216 into a %G_TYPE_FLOAT value. Performing transformations between
5217 value types might incur precision lossage. Especially
5218 transformations into strings might reveal seemingly arbitrary
5219 results and shouldn't be relied upon for production code (such
5220 as rcfile value or object property serialization).
5221 Upon failing transformations, @dest_value is left untouched.</doc>
5222         <return-value transfer-ownership="none">
5223           <doc xml:whitespace="preserve">Whether a transformation rule was found and could be applied.</doc>
5224           <type name="gboolean" c:type="gboolean"/>
5225         </return-value>
5226         <parameters>
5227           <parameter name="dest_value" transfer-ownership="none">
5228             <doc xml:whitespace="preserve">Target value.</doc>
5229             <type name="Value" c:type="GValue*"/>
5230           </parameter>
5231         </parameters>
5232       </method>
5233       <method name="unset" c:identifier="g_value_unset">
5234         <doc xml:whitespace="preserve">Clears the current value in @value and "unsets" the type,
5235 this releases all resources associated with this GValue.
5236 An unset value is the same as an uninitialized (zero-filled)
5237 #GValue structure.</doc>
5238         <return-value transfer-ownership="none">
5239           <type name="none" c:type="void"/>
5240         </return-value>
5241       </method>
5242     </record>
5243     <record name="ValueArray"
5244             c:type="GValueArray"
5245             glib:type-name="GValueArray"
5246             glib:get-type="g_value_array_get_type"
5247             c:symbol-prefix="value_array">
5248       <doc xml:whitespace="preserve">A #GValueArray contains an array of #GValue elements.</doc>
5249       <field name="n_values" writable="1">
5250         <type name="guint" c:type="guint"/>
5251       </field>
5252       <field name="values" writable="1">
5253         <type name="Value" c:type="GValue*"/>
5254       </field>
5255       <field name="n_prealloced" writable="1">
5256         <type name="guint" c:type="guint"/>
5257       </field>
5258       <constructor name="new" c:identifier="g_value_array_new">
5259         <doc xml:whitespace="preserve">Allocate and initialize a new #GValueArray, optionally preserve space
5260 for @n_prealloced elements. New arrays always contain 0 elements,
5261 regardless of the value of @n_prealloced.</doc>
5262         <return-value transfer-ownership="full">
5263           <doc xml:whitespace="preserve">a newly allocated #GValueArray with 0 values</doc>
5264           <type name="ValueArray" c:type="GValueArray*"/>
5265         </return-value>
5266         <parameters>
5267           <parameter name="n_prealloced" transfer-ownership="none">
5268             <doc xml:whitespace="preserve">number of values to preallocate space for</doc>
5269             <type name="guint" c:type="guint"/>
5270           </parameter>
5271         </parameters>
5272       </constructor>
5273       <method name="append" c:identifier="g_value_array_append">
5274         <doc xml:whitespace="preserve">Insert a copy of @value as last element of @value_array. If @value is
5275 %NULL, an uninitialized value is appended.</doc>
5276         <return-value transfer-ownership="full">
5277           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5278           <type name="ValueArray" c:type="GValueArray*"/>
5279         </return-value>
5280         <parameters>
5281           <parameter name="value" transfer-ownership="none">
5282             <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
5283             <type name="Value" c:type="GValue*"/>
5284           </parameter>
5285         </parameters>
5286       </method>
5287       <method name="copy" c:identifier="g_value_array_copy">
5288         <doc xml:whitespace="preserve">Construct an exact copy of a #GValueArray by duplicating all its
5289 contents.</doc>
5290         <return-value transfer-ownership="full">
5291           <doc xml:whitespace="preserve">Newly allocated copy of #GValueArray</doc>
5292           <type name="ValueArray" c:type="GValueArray*"/>
5293         </return-value>
5294       </method>
5295       <method name="free" c:identifier="g_value_array_free">
5296         <doc xml:whitespace="preserve">Free a #GValueArray including its contents.</doc>
5297         <return-value transfer-ownership="none">
5298           <type name="none" c:type="void"/>
5299         </return-value>
5300       </method>
5301       <method name="get_nth" c:identifier="g_value_array_get_nth">
5302         <doc xml:whitespace="preserve">Return a pointer to the value at @index_ containd in @value_array.</doc>
5303         <return-value transfer-ownership="full">
5304           <doc xml:whitespace="preserve">pointer to a value at @index_ in @value_array</doc>
5305           <type name="Value" c:type="GValue*"/>
5306         </return-value>
5307         <parameters>
5308           <parameter name="index_" transfer-ownership="none">
5309             <doc xml:whitespace="preserve">index of the value of interest</doc>
5310             <type name="guint" c:type="guint"/>
5311           </parameter>
5312         </parameters>
5313       </method>
5314       <method name="insert" c:identifier="g_value_array_insert">
5315         <doc xml:whitespace="preserve">Insert a copy of @value at specified position into @value_array. If @value
5316 is %NULL, an uninitialized value is inserted.</doc>
5317         <return-value transfer-ownership="full">
5318           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5319           <type name="ValueArray" c:type="GValueArray*"/>
5320         </return-value>
5321         <parameters>
5322           <parameter name="index_" transfer-ownership="none">
5323             <doc xml:whitespace="preserve">insertion position, must be &amp;lt;= value_array-&amp;gt;n_values</doc>
5324             <type name="guint" c:type="guint"/>
5325           </parameter>
5326           <parameter name="value" transfer-ownership="none">
5327             <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
5328             <type name="Value" c:type="GValue*"/>
5329           </parameter>
5330         </parameters>
5331       </method>
5332       <method name="prepend" c:identifier="g_value_array_prepend">
5333         <doc xml:whitespace="preserve">Insert a copy of @value as first element of @value_array. If @value is
5334 %NULL, an uninitialized value is prepended.</doc>
5335         <return-value transfer-ownership="full">
5336           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5337           <type name="ValueArray" c:type="GValueArray*"/>
5338         </return-value>
5339         <parameters>
5340           <parameter name="value" transfer-ownership="none">
5341             <doc xml:whitespace="preserve">#GValue to copy into #GValueArray, or %NULL</doc>
5342             <type name="Value" c:type="GValue*"/>
5343           </parameter>
5344         </parameters>
5345       </method>
5346       <method name="remove" c:identifier="g_value_array_remove">
5347         <doc xml:whitespace="preserve">Remove the value at position @index_ from @value_array.</doc>
5348         <return-value transfer-ownership="full">
5349           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5350           <type name="ValueArray" c:type="GValueArray*"/>
5351         </return-value>
5352         <parameters>
5353           <parameter name="index_" transfer-ownership="none">
5354             <doc xml:whitespace="preserve">position of value to remove, must be &amp;lt; value_array-&gt;n_values</doc>
5355             <type name="guint" c:type="guint"/>
5356           </parameter>
5357         </parameters>
5358       </method>
5359       <method name="sort" c:identifier="g_value_array_sort" introspectable="0">
5360         <doc xml:whitespace="preserve">Sort @value_array using @compare_func to compare the elements accoring to
5361 the semantics of #GCompareFunc.
5362 The current implementation uses Quick-Sort as sorting algorithm.</doc>
5363         <return-value transfer-ownership="full">
5364           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5365           <type name="ValueArray" c:type="GValueArray*"/>
5366         </return-value>
5367         <parameters>
5368           <parameter name="compare_func" transfer-ownership="none">
5369             <doc xml:whitespace="preserve">function to compare elements</doc>
5370             <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
5371           </parameter>
5372         </parameters>
5373       </method>
5374       <method name="sort_with_data"
5375               c:identifier="g_value_array_sort_with_data"
5376               introspectable="0">
5377         <doc xml:whitespace="preserve">Sort @value_array using @compare_func to compare the elements accoring
5378 to the semantics of #GCompareDataFunc.
5379 The current implementation uses Quick-Sort as sorting algorithm.</doc>
5380         <return-value transfer-ownership="full">
5381           <doc xml:whitespace="preserve">the #GValueArray passed in as @value_array</doc>
5382           <type name="ValueArray" c:type="GValueArray*"/>
5383         </return-value>
5384         <parameters>
5385           <parameter name="compare_func" transfer-ownership="none" closure="1">
5386             <doc xml:whitespace="preserve">function to compare elements</doc>
5387             <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
5388           </parameter>
5389           <parameter name="user_data" transfer-ownership="none">
5390             <doc xml:whitespace="preserve">extra data argument provided for @compare_func</doc>
5391             <type name="gpointer" c:type="gpointer"/>
5392           </parameter>
5393         </parameters>
5394       </method>
5395     </record>
5396     <callback name="ValueTransform" c:type="GValueTransform">
5397       <doc xml:whitespace="preserve">The type of value transformation functions which can be registered with
5398 g_value_register_transform_func().</doc>
5399       <return-value transfer-ownership="none">
5400         <type name="none" c:type="void"/>
5401       </return-value>
5402       <parameters>
5403         <parameter name="src_value" transfer-ownership="none">
5404           <doc xml:whitespace="preserve">Source value.</doc>
5405           <type name="Value" c:type="GValue*"/>
5406         </parameter>
5407         <parameter name="dest_value" transfer-ownership="none">
5408           <doc xml:whitespace="preserve">Target value.</doc>
5409           <type name="Value" c:type="GValue*"/>
5410         </parameter>
5411       </parameters>
5412     </callback>
5413     <callback name="WeakNotify" c:type="GWeakNotify">
5414       <doc xml:whitespace="preserve">A #GWeakNotify function can be added to an object as a callback that gets
5415 triggered when the object is finalized. Since the object is already being
5416 finalized when the #GWeakNotify is called, there's not much you could do 
5417 with the object, apart from e.g. using its adress as hash-index or the like.</doc>
5418       <return-value transfer-ownership="none">
5419         <type name="none" c:type="void"/>
5420       </return-value>
5421       <parameters>
5422         <parameter name="data" transfer-ownership="none">
5423           <doc xml:whitespace="preserve">data that was provided when the weak reference was established</doc>
5424           <type name="gpointer" c:type="gpointer"/>
5425         </parameter>
5426         <parameter name="where_the_object_was" transfer-ownership="none">
5427           <doc xml:whitespace="preserve">the object being finalized</doc>
5428           <type name="Object" c:type="GObject*"/>
5429         </parameter>
5430       </parameters>
5431     </callback>
5432     <function name="boxed_copy" c:identifier="g_boxed_copy" introspectable="0">
5433       <doc xml:whitespace="preserve">Provide a copy of a boxed structure @src_boxed which is of type @boxed_type.</doc>
5434       <return-value>
5435         <doc xml:whitespace="preserve">The newly created copy of the boxed structure.</doc>
5436         <type name="gpointer" c:type="gpointer"/>
5437       </return-value>
5438       <parameters>
5439         <parameter name="boxed_type" transfer-ownership="none">
5440           <doc xml:whitespace="preserve">The type of @src_boxed.</doc>
5441           <type name="GType" c:type="GType"/>
5442         </parameter>
5443         <parameter name="src_boxed" transfer-ownership="none">
5444           <doc xml:whitespace="preserve">The boxed structure to be copied.</doc>
5445           <type name="gpointer" c:type="gconstpointer"/>
5446         </parameter>
5447       </parameters>
5448     </function>
5449     <function name="boxed_free" c:identifier="g_boxed_free">
5450       <doc xml:whitespace="preserve">Free the boxed structure @boxed which is of type @boxed_type.</doc>
5451       <return-value transfer-ownership="none">
5452         <type name="none" c:type="void"/>
5453       </return-value>
5454       <parameters>
5455         <parameter name="boxed_type" transfer-ownership="none">
5456           <doc xml:whitespace="preserve">The type of @boxed.</doc>
5457           <type name="GType" c:type="GType"/>
5458         </parameter>
5459         <parameter name="boxed" transfer-ownership="none">
5460           <doc xml:whitespace="preserve">The boxed structure to be freed.</doc>
5461           <type name="gpointer" c:type="gpointer"/>
5462         </parameter>
5463       </parameters>
5464     </function>
5465     <function name="boxed_type_init" c:identifier="g_boxed_type_init">
5466       <return-value transfer-ownership="none">
5467         <type name="none" c:type="void"/>
5468       </return-value>
5469     </function>
5470     <function name="boxed_type_register_static"
5471               c:identifier="g_boxed_type_register_static"
5472               introspectable="0">
5473       <doc xml:whitespace="preserve">This function creates a new %G_TYPE_BOXED derived type id for a new
5474 boxed type with name @name. Boxed type handling functions have to be
5475 provided to copy and free opaque boxed structures of this type.</doc>
5476       <return-value transfer-ownership="none">
5477         <doc xml:whitespace="preserve">New %G_TYPE_BOXED derived type id for @name.</doc>
5478         <type name="GType" c:type="GType"/>
5479       </return-value>
5480       <parameters>
5481         <parameter name="name" transfer-ownership="none">
5482           <doc xml:whitespace="preserve">Name of the new boxed type.</doc>
5483           <type name="utf8" c:type="gchar*"/>
5484         </parameter>
5485         <parameter name="boxed_copy" transfer-ownership="none">
5486           <doc xml:whitespace="preserve">Boxed structure copy function.</doc>
5487           <type name="BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
5488         </parameter>
5489         <parameter name="boxed_free" transfer-ownership="none">
5490           <doc xml:whitespace="preserve">Boxed structure free function.</doc>
5491           <type name="BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
5492         </parameter>
5493       </parameters>
5494     </function>
5495     <function name="cclosure_marshal_BOOLEAN__BOXED_BOXED"
5496               c:identifier="g_cclosure_marshal_BOOLEAN__BOXED_BOXED">
5497       <return-value transfer-ownership="none">
5498         <type name="none" c:type="void"/>
5499       </return-value>
5500       <parameters>
5501         <parameter name="closure" transfer-ownership="none">
5502           <type name="Closure" c:type="GClosure*"/>
5503         </parameter>
5504         <parameter name="return_value" transfer-ownership="none">
5505           <type name="Value" c:type="GValue*"/>
5506         </parameter>
5507         <parameter name="n_param_values" transfer-ownership="none">
5508           <type name="guint" c:type="guint"/>
5509         </parameter>
5510         <parameter name="param_values" transfer-ownership="none">
5511           <type name="Value" c:type="GValue*"/>
5512         </parameter>
5513         <parameter name="invocation_hint" transfer-ownership="none">
5514           <type name="gpointer" c:type="gpointer"/>
5515         </parameter>
5516         <parameter name="marshal_data" transfer-ownership="none">
5517           <type name="gpointer" c:type="gpointer"/>
5518         </parameter>
5519       </parameters>
5520     </function>
5521     <function name="cclosure_marshal_BOOLEAN__FLAGS"
5522               c:identifier="g_cclosure_marshal_BOOLEAN__FLAGS">
5523       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5524 &lt;literal&gt;gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter
5525 denotes a flags type.</doc>
5526       <return-value transfer-ownership="none">
5527         <type name="none" c:type="void"/>
5528       </return-value>
5529       <parameters>
5530         <parameter name="closure" transfer-ownership="none">
5531           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5532           <type name="Closure" c:type="GClosure*"/>
5533         </parameter>
5534         <parameter name="return_value" transfer-ownership="none">
5535           <doc xml:whitespace="preserve">a #GValue which can store the returned #gboolean</doc>
5536           <type name="Value" c:type="GValue*"/>
5537         </parameter>
5538         <parameter name="n_param_values" transfer-ownership="none">
5539           <doc xml:whitespace="preserve">2</doc>
5540           <type name="guint" c:type="guint"/>
5541         </parameter>
5542         <parameter name="param_values" transfer-ownership="none">
5543           <doc xml:whitespace="preserve">a #GValue array holding instance and arg1</doc>
5544           <type name="Value" c:type="GValue*"/>
5545         </parameter>
5546         <parameter name="invocation_hint" transfer-ownership="none">
5547           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5548           <type name="gpointer" c:type="gpointer"/>
5549         </parameter>
5550         <parameter name="marshal_data" transfer-ownership="none">
5551           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5552           <type name="gpointer" c:type="gpointer"/>
5553         </parameter>
5554       </parameters>
5555     </function>
5556     <function name="cclosure_marshal_STRING__OBJECT_POINTER"
5557               c:identifier="g_cclosure_marshal_STRING__OBJECT_POINTER">
5558       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5559 &lt;literal&gt;gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)&lt;/literal&gt;.</doc>
5560       <return-value transfer-ownership="none">
5561         <type name="none" c:type="void"/>
5562       </return-value>
5563       <parameters>
5564         <parameter name="closure" transfer-ownership="none">
5565           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5566           <type name="Closure" c:type="GClosure*"/>
5567         </parameter>
5568         <parameter name="return_value" transfer-ownership="none">
5569           <doc xml:whitespace="preserve">a #GValue, which can store the returned string</doc>
5570           <type name="Value" c:type="GValue*"/>
5571         </parameter>
5572         <parameter name="n_param_values" transfer-ownership="none">
5573           <doc xml:whitespace="preserve">3</doc>
5574           <type name="guint" c:type="guint"/>
5575         </parameter>
5576         <parameter name="param_values" transfer-ownership="none">
5577           <doc xml:whitespace="preserve">a #GValue array holding instance, arg1 and arg2</doc>
5578           <type name="Value" c:type="GValue*"/>
5579         </parameter>
5580         <parameter name="invocation_hint" transfer-ownership="none">
5581           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5582           <type name="gpointer" c:type="gpointer"/>
5583         </parameter>
5584         <parameter name="marshal_data" transfer-ownership="none">
5585           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5586           <type name="gpointer" c:type="gpointer"/>
5587         </parameter>
5588       </parameters>
5589     </function>
5590     <function name="cclosure_marshal_VOID__BOOLEAN"
5591               c:identifier="g_cclosure_marshal_VOID__BOOLEAN">
5592       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5593 &lt;literal&gt;void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5594       <return-value transfer-ownership="none">
5595         <type name="none" c:type="void"/>
5596       </return-value>
5597       <parameters>
5598         <parameter name="closure" transfer-ownership="none">
5599           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5600           <type name="Closure" c:type="GClosure*"/>
5601         </parameter>
5602         <parameter name="return_value" transfer-ownership="none">
5603           <doc xml:whitespace="preserve">ignored</doc>
5604           <type name="Value" c:type="GValue*"/>
5605         </parameter>
5606         <parameter name="n_param_values" transfer-ownership="none">
5607           <doc xml:whitespace="preserve">2</doc>
5608           <type name="guint" c:type="guint"/>
5609         </parameter>
5610         <parameter name="param_values" transfer-ownership="none">
5611           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gboolean parameter</doc>
5612           <type name="Value" c:type="GValue*"/>
5613         </parameter>
5614         <parameter name="invocation_hint" transfer-ownership="none">
5615           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5616           <type name="gpointer" c:type="gpointer"/>
5617         </parameter>
5618         <parameter name="marshal_data" transfer-ownership="none">
5619           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5620           <type name="gpointer" c:type="gpointer"/>
5621         </parameter>
5622       </parameters>
5623     </function>
5624     <function name="cclosure_marshal_VOID__BOXED"
5625               c:identifier="g_cclosure_marshal_VOID__BOXED">
5626       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5627 &lt;literal&gt;void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5628       <return-value transfer-ownership="none">
5629         <type name="none" c:type="void"/>
5630       </return-value>
5631       <parameters>
5632         <parameter name="closure" transfer-ownership="none">
5633           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5634           <type name="Closure" c:type="GClosure*"/>
5635         </parameter>
5636         <parameter name="return_value" transfer-ownership="none">
5637           <doc xml:whitespace="preserve">ignored</doc>
5638           <type name="Value" c:type="GValue*"/>
5639         </parameter>
5640         <parameter name="n_param_values" transfer-ownership="none">
5641           <doc xml:whitespace="preserve">2</doc>
5642           <type name="guint" c:type="guint"/>
5643         </parameter>
5644         <parameter name="param_values" transfer-ownership="none">
5645           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GBoxed* parameter</doc>
5646           <type name="Value" c:type="GValue*"/>
5647         </parameter>
5648         <parameter name="invocation_hint" transfer-ownership="none">
5649           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5650           <type name="gpointer" c:type="gpointer"/>
5651         </parameter>
5652         <parameter name="marshal_data" transfer-ownership="none">
5653           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5654           <type name="gpointer" c:type="gpointer"/>
5655         </parameter>
5656       </parameters>
5657     </function>
5658     <function name="cclosure_marshal_VOID__CHAR"
5659               c:identifier="g_cclosure_marshal_VOID__CHAR">
5660       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5661 &lt;literal&gt;void (*callback) (gpointer instance, gchar arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5662       <return-value transfer-ownership="none">
5663         <type name="none" c:type="void"/>
5664       </return-value>
5665       <parameters>
5666         <parameter name="closure" transfer-ownership="none">
5667           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5668           <type name="Closure" c:type="GClosure*"/>
5669         </parameter>
5670         <parameter name="return_value" transfer-ownership="none">
5671           <doc xml:whitespace="preserve">ignored</doc>
5672           <type name="Value" c:type="GValue*"/>
5673         </parameter>
5674         <parameter name="n_param_values" transfer-ownership="none">
5675           <doc xml:whitespace="preserve">2</doc>
5676           <type name="guint" c:type="guint"/>
5677         </parameter>
5678         <parameter name="param_values" transfer-ownership="none">
5679           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gchar parameter</doc>
5680           <type name="Value" c:type="GValue*"/>
5681         </parameter>
5682         <parameter name="invocation_hint" transfer-ownership="none">
5683           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5684           <type name="gpointer" c:type="gpointer"/>
5685         </parameter>
5686         <parameter name="marshal_data" transfer-ownership="none">
5687           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5688           <type name="gpointer" c:type="gpointer"/>
5689         </parameter>
5690       </parameters>
5691     </function>
5692     <function name="cclosure_marshal_VOID__DOUBLE"
5693               c:identifier="g_cclosure_marshal_VOID__DOUBLE">
5694       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5695 &lt;literal&gt;void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5696       <return-value transfer-ownership="none">
5697         <type name="none" c:type="void"/>
5698       </return-value>
5699       <parameters>
5700         <parameter name="closure" transfer-ownership="none">
5701           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5702           <type name="Closure" c:type="GClosure*"/>
5703         </parameter>
5704         <parameter name="return_value" transfer-ownership="none">
5705           <doc xml:whitespace="preserve">ignored</doc>
5706           <type name="Value" c:type="GValue*"/>
5707         </parameter>
5708         <parameter name="n_param_values" transfer-ownership="none">
5709           <doc xml:whitespace="preserve">2</doc>
5710           <type name="guint" c:type="guint"/>
5711         </parameter>
5712         <parameter name="param_values" transfer-ownership="none">
5713           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gdouble parameter</doc>
5714           <type name="Value" c:type="GValue*"/>
5715         </parameter>
5716         <parameter name="invocation_hint" transfer-ownership="none">
5717           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5718           <type name="gpointer" c:type="gpointer"/>
5719         </parameter>
5720         <parameter name="marshal_data" transfer-ownership="none">
5721           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5722           <type name="gpointer" c:type="gpointer"/>
5723         </parameter>
5724       </parameters>
5725     </function>
5726     <function name="cclosure_marshal_VOID__ENUM"
5727               c:identifier="g_cclosure_marshal_VOID__ENUM">
5728       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5729 &lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter denotes an enumeration type..</doc>
5730       <return-value transfer-ownership="none">
5731         <type name="none" c:type="void"/>
5732       </return-value>
5733       <parameters>
5734         <parameter name="closure" transfer-ownership="none">
5735           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5736           <type name="Closure" c:type="GClosure*"/>
5737         </parameter>
5738         <parameter name="return_value" transfer-ownership="none">
5739           <doc xml:whitespace="preserve">ignored</doc>
5740           <type name="Value" c:type="GValue*"/>
5741         </parameter>
5742         <parameter name="n_param_values" transfer-ownership="none">
5743           <doc xml:whitespace="preserve">2</doc>
5744           <type name="guint" c:type="guint"/>
5745         </parameter>
5746         <parameter name="param_values" transfer-ownership="none">
5747           <doc xml:whitespace="preserve">a #GValue array holding the instance and the enumeration parameter</doc>
5748           <type name="Value" c:type="GValue*"/>
5749         </parameter>
5750         <parameter name="invocation_hint" transfer-ownership="none">
5751           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5752           <type name="gpointer" c:type="gpointer"/>
5753         </parameter>
5754         <parameter name="marshal_data" transfer-ownership="none">
5755           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5756           <type name="gpointer" c:type="gpointer"/>
5757         </parameter>
5758       </parameters>
5759     </function>
5760     <function name="cclosure_marshal_VOID__FLAGS"
5761               c:identifier="g_cclosure_marshal_VOID__FLAGS">
5762       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5763 &lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt; where the #gint parameter denotes a flags type.</doc>
5764       <return-value transfer-ownership="none">
5765         <type name="none" c:type="void"/>
5766       </return-value>
5767       <parameters>
5768         <parameter name="closure" transfer-ownership="none">
5769           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5770           <type name="Closure" c:type="GClosure*"/>
5771         </parameter>
5772         <parameter name="return_value" transfer-ownership="none">
5773           <doc xml:whitespace="preserve">ignored</doc>
5774           <type name="Value" c:type="GValue*"/>
5775         </parameter>
5776         <parameter name="n_param_values" transfer-ownership="none">
5777           <doc xml:whitespace="preserve">2</doc>
5778           <type name="guint" c:type="guint"/>
5779         </parameter>
5780         <parameter name="param_values" transfer-ownership="none">
5781           <doc xml:whitespace="preserve">a #GValue array holding the instance and the flags parameter</doc>
5782           <type name="Value" c:type="GValue*"/>
5783         </parameter>
5784         <parameter name="invocation_hint" transfer-ownership="none">
5785           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5786           <type name="gpointer" c:type="gpointer"/>
5787         </parameter>
5788         <parameter name="marshal_data" transfer-ownership="none">
5789           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5790           <type name="gpointer" c:type="gpointer"/>
5791         </parameter>
5792       </parameters>
5793     </function>
5794     <function name="cclosure_marshal_VOID__FLOAT"
5795               c:identifier="g_cclosure_marshal_VOID__FLOAT">
5796       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5797 &lt;literal&gt;void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5798       <return-value transfer-ownership="none">
5799         <type name="none" c:type="void"/>
5800       </return-value>
5801       <parameters>
5802         <parameter name="closure" transfer-ownership="none">
5803           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5804           <type name="Closure" c:type="GClosure*"/>
5805         </parameter>
5806         <parameter name="return_value" transfer-ownership="none">
5807           <doc xml:whitespace="preserve">ignored</doc>
5808           <type name="Value" c:type="GValue*"/>
5809         </parameter>
5810         <parameter name="n_param_values" transfer-ownership="none">
5811           <doc xml:whitespace="preserve">2</doc>
5812           <type name="guint" c:type="guint"/>
5813         </parameter>
5814         <parameter name="param_values" transfer-ownership="none">
5815           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gfloat parameter</doc>
5816           <type name="Value" c:type="GValue*"/>
5817         </parameter>
5818         <parameter name="invocation_hint" transfer-ownership="none">
5819           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5820           <type name="gpointer" c:type="gpointer"/>
5821         </parameter>
5822         <parameter name="marshal_data" transfer-ownership="none">
5823           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5824           <type name="gpointer" c:type="gpointer"/>
5825         </parameter>
5826       </parameters>
5827     </function>
5828     <function name="cclosure_marshal_VOID__INT"
5829               c:identifier="g_cclosure_marshal_VOID__INT">
5830       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5831 &lt;literal&gt;void (*callback) (gpointer instance, gint arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5832       <return-value transfer-ownership="none">
5833         <type name="none" c:type="void"/>
5834       </return-value>
5835       <parameters>
5836         <parameter name="closure" transfer-ownership="none">
5837           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5838           <type name="Closure" c:type="GClosure*"/>
5839         </parameter>
5840         <parameter name="return_value" transfer-ownership="none">
5841           <doc xml:whitespace="preserve">ignored</doc>
5842           <type name="Value" c:type="GValue*"/>
5843         </parameter>
5844         <parameter name="n_param_values" transfer-ownership="none">
5845           <doc xml:whitespace="preserve">2</doc>
5846           <type name="guint" c:type="guint"/>
5847         </parameter>
5848         <parameter name="param_values" transfer-ownership="none">
5849           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gint parameter</doc>
5850           <type name="Value" c:type="GValue*"/>
5851         </parameter>
5852         <parameter name="invocation_hint" transfer-ownership="none">
5853           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5854           <type name="gpointer" c:type="gpointer"/>
5855         </parameter>
5856         <parameter name="marshal_data" transfer-ownership="none">
5857           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5858           <type name="gpointer" c:type="gpointer"/>
5859         </parameter>
5860       </parameters>
5861     </function>
5862     <function name="cclosure_marshal_VOID__LONG"
5863               c:identifier="g_cclosure_marshal_VOID__LONG">
5864       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5865 &lt;literal&gt;void (*callback) (gpointer instance, glong arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5866       <return-value transfer-ownership="none">
5867         <type name="none" c:type="void"/>
5868       </return-value>
5869       <parameters>
5870         <parameter name="closure" transfer-ownership="none">
5871           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5872           <type name="Closure" c:type="GClosure*"/>
5873         </parameter>
5874         <parameter name="return_value" transfer-ownership="none">
5875           <doc xml:whitespace="preserve">ignored</doc>
5876           <type name="Value" c:type="GValue*"/>
5877         </parameter>
5878         <parameter name="n_param_values" transfer-ownership="none">
5879           <doc xml:whitespace="preserve">2</doc>
5880           <type name="guint" c:type="guint"/>
5881         </parameter>
5882         <parameter name="param_values" transfer-ownership="none">
5883           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #glong parameter</doc>
5884           <type name="Value" c:type="GValue*"/>
5885         </parameter>
5886         <parameter name="invocation_hint" transfer-ownership="none">
5887           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5888           <type name="gpointer" c:type="gpointer"/>
5889         </parameter>
5890         <parameter name="marshal_data" transfer-ownership="none">
5891           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5892           <type name="gpointer" c:type="gpointer"/>
5893         </parameter>
5894       </parameters>
5895     </function>
5896     <function name="cclosure_marshal_VOID__OBJECT"
5897               c:identifier="g_cclosure_marshal_VOID__OBJECT">
5898       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5899 &lt;literal&gt;void (*callback) (gpointer instance, GObject *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5900       <return-value transfer-ownership="none">
5901         <type name="none" c:type="void"/>
5902       </return-value>
5903       <parameters>
5904         <parameter name="closure" transfer-ownership="none">
5905           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5906           <type name="Closure" c:type="GClosure*"/>
5907         </parameter>
5908         <parameter name="return_value" transfer-ownership="none">
5909           <doc xml:whitespace="preserve">ignored</doc>
5910           <type name="Value" c:type="GValue*"/>
5911         </parameter>
5912         <parameter name="n_param_values" transfer-ownership="none">
5913           <doc xml:whitespace="preserve">2</doc>
5914           <type name="guint" c:type="guint"/>
5915         </parameter>
5916         <parameter name="param_values" transfer-ownership="none">
5917           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GObject* parameter</doc>
5918           <type name="Value" c:type="GValue*"/>
5919         </parameter>
5920         <parameter name="invocation_hint" transfer-ownership="none">
5921           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5922           <type name="gpointer" c:type="gpointer"/>
5923         </parameter>
5924         <parameter name="marshal_data" transfer-ownership="none">
5925           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5926           <type name="gpointer" c:type="gpointer"/>
5927         </parameter>
5928       </parameters>
5929     </function>
5930     <function name="cclosure_marshal_VOID__PARAM"
5931               c:identifier="g_cclosure_marshal_VOID__PARAM">
5932       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5933 &lt;literal&gt;void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5934       <return-value transfer-ownership="none">
5935         <type name="none" c:type="void"/>
5936       </return-value>
5937       <parameters>
5938         <parameter name="closure" transfer-ownership="none">
5939           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5940           <type name="Closure" c:type="GClosure*"/>
5941         </parameter>
5942         <parameter name="return_value" transfer-ownership="none">
5943           <doc xml:whitespace="preserve">ignored</doc>
5944           <type name="Value" c:type="GValue*"/>
5945         </parameter>
5946         <parameter name="n_param_values" transfer-ownership="none">
5947           <doc xml:whitespace="preserve">2</doc>
5948           <type name="guint" c:type="guint"/>
5949         </parameter>
5950         <parameter name="param_values" transfer-ownership="none">
5951           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GParamSpec* parameter</doc>
5952           <type name="Value" c:type="GValue*"/>
5953         </parameter>
5954         <parameter name="invocation_hint" transfer-ownership="none">
5955           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5956           <type name="gpointer" c:type="gpointer"/>
5957         </parameter>
5958         <parameter name="marshal_data" transfer-ownership="none">
5959           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5960           <type name="gpointer" c:type="gpointer"/>
5961         </parameter>
5962       </parameters>
5963     </function>
5964     <function name="cclosure_marshal_VOID__POINTER"
5965               c:identifier="g_cclosure_marshal_VOID__POINTER">
5966       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
5967 &lt;literal&gt;void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)&lt;/literal&gt;.</doc>
5968       <return-value transfer-ownership="none">
5969         <type name="none" c:type="void"/>
5970       </return-value>
5971       <parameters>
5972         <parameter name="closure" transfer-ownership="none">
5973           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
5974           <type name="Closure" c:type="GClosure*"/>
5975         </parameter>
5976         <parameter name="return_value" transfer-ownership="none">
5977           <doc xml:whitespace="preserve">ignored</doc>
5978           <type name="Value" c:type="GValue*"/>
5979         </parameter>
5980         <parameter name="n_param_values" transfer-ownership="none">
5981           <doc xml:whitespace="preserve">2</doc>
5982           <type name="guint" c:type="guint"/>
5983         </parameter>
5984         <parameter name="param_values" transfer-ownership="none">
5985           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gpointer parameter</doc>
5986           <type name="Value" c:type="GValue*"/>
5987         </parameter>
5988         <parameter name="invocation_hint" transfer-ownership="none">
5989           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
5990           <type name="gpointer" c:type="gpointer"/>
5991         </parameter>
5992         <parameter name="marshal_data" transfer-ownership="none">
5993           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
5994           <type name="gpointer" c:type="gpointer"/>
5995         </parameter>
5996       </parameters>
5997     </function>
5998     <function name="cclosure_marshal_VOID__STRING"
5999               c:identifier="g_cclosure_marshal_VOID__STRING">
6000       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6001 &lt;literal&gt;void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
6002       <return-value transfer-ownership="none">
6003         <type name="none" c:type="void"/>
6004       </return-value>
6005       <parameters>
6006         <parameter name="closure" transfer-ownership="none">
6007           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6008           <type name="Closure" c:type="GClosure*"/>
6009         </parameter>
6010         <parameter name="return_value" transfer-ownership="none">
6011           <doc xml:whitespace="preserve">ignored</doc>
6012           <type name="Value" c:type="GValue*"/>
6013         </parameter>
6014         <parameter name="n_param_values" transfer-ownership="none">
6015           <doc xml:whitespace="preserve">2</doc>
6016           <type name="guint" c:type="guint"/>
6017         </parameter>
6018         <parameter name="param_values" transfer-ownership="none">
6019           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gchar* parameter</doc>
6020           <type name="Value" c:type="GValue*"/>
6021         </parameter>
6022         <parameter name="invocation_hint" transfer-ownership="none">
6023           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6024           <type name="gpointer" c:type="gpointer"/>
6025         </parameter>
6026         <parameter name="marshal_data" transfer-ownership="none">
6027           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6028           <type name="gpointer" c:type="gpointer"/>
6029         </parameter>
6030       </parameters>
6031     </function>
6032     <function name="cclosure_marshal_VOID__UCHAR"
6033               c:identifier="g_cclosure_marshal_VOID__UCHAR">
6034       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6035 &lt;literal&gt;void (*callback) (gpointer instance, guchar arg1, gpointer user_data)&lt;/literal&gt;.</doc>
6036       <return-value transfer-ownership="none">
6037         <type name="none" c:type="void"/>
6038       </return-value>
6039       <parameters>
6040         <parameter name="closure" transfer-ownership="none">
6041           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6042           <type name="Closure" c:type="GClosure*"/>
6043         </parameter>
6044         <parameter name="return_value" transfer-ownership="none">
6045           <doc xml:whitespace="preserve">ignored</doc>
6046           <type name="Value" c:type="GValue*"/>
6047         </parameter>
6048         <parameter name="n_param_values" transfer-ownership="none">
6049           <doc xml:whitespace="preserve">2</doc>
6050           <type name="guint" c:type="guint"/>
6051         </parameter>
6052         <parameter name="param_values" transfer-ownership="none">
6053           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #guchar parameter</doc>
6054           <type name="Value" c:type="GValue*"/>
6055         </parameter>
6056         <parameter name="invocation_hint" transfer-ownership="none">
6057           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6058           <type name="gpointer" c:type="gpointer"/>
6059         </parameter>
6060         <parameter name="marshal_data" transfer-ownership="none">
6061           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6062           <type name="gpointer" c:type="gpointer"/>
6063         </parameter>
6064       </parameters>
6065     </function>
6066     <function name="cclosure_marshal_VOID__UINT"
6067               c:identifier="g_cclosure_marshal_VOID__UINT">
6068       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6069 &lt;literal&gt;void (*callback) (gpointer instance, guint arg1, gpointer user_data)&lt;/literal&gt;.</doc>
6070       <return-value transfer-ownership="none">
6071         <type name="none" c:type="void"/>
6072       </return-value>
6073       <parameters>
6074         <parameter name="closure" transfer-ownership="none">
6075           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6076           <type name="Closure" c:type="GClosure*"/>
6077         </parameter>
6078         <parameter name="return_value" transfer-ownership="none">
6079           <doc xml:whitespace="preserve">ignored</doc>
6080           <type name="Value" c:type="GValue*"/>
6081         </parameter>
6082         <parameter name="n_param_values" transfer-ownership="none">
6083           <doc xml:whitespace="preserve">2</doc>
6084           <type name="guint" c:type="guint"/>
6085         </parameter>
6086         <parameter name="param_values" transfer-ownership="none">
6087           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #guint parameter</doc>
6088           <type name="Value" c:type="GValue*"/>
6089         </parameter>
6090         <parameter name="invocation_hint" transfer-ownership="none">
6091           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6092           <type name="gpointer" c:type="gpointer"/>
6093         </parameter>
6094         <parameter name="marshal_data" transfer-ownership="none">
6095           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6096           <type name="gpointer" c:type="gpointer"/>
6097         </parameter>
6098       </parameters>
6099     </function>
6100     <function name="cclosure_marshal_VOID__UINT_POINTER"
6101               c:identifier="g_cclosure_marshal_VOID__UINT_POINTER">
6102       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6103 &lt;literal&gt;void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)&lt;/literal&gt;.</doc>
6104       <return-value transfer-ownership="none">
6105         <type name="none" c:type="void"/>
6106       </return-value>
6107       <parameters>
6108         <parameter name="closure" transfer-ownership="none">
6109           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6110           <type name="Closure" c:type="GClosure*"/>
6111         </parameter>
6112         <parameter name="return_value" transfer-ownership="none">
6113           <doc xml:whitespace="preserve">ignored</doc>
6114           <type name="Value" c:type="GValue*"/>
6115         </parameter>
6116         <parameter name="n_param_values" transfer-ownership="none">
6117           <doc xml:whitespace="preserve">3</doc>
6118           <type name="guint" c:type="guint"/>
6119         </parameter>
6120         <parameter name="param_values" transfer-ownership="none">
6121           <doc xml:whitespace="preserve">a #GValue array holding instance, arg1 and arg2</doc>
6122           <type name="Value" c:type="GValue*"/>
6123         </parameter>
6124         <parameter name="invocation_hint" transfer-ownership="none">
6125           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6126           <type name="gpointer" c:type="gpointer"/>
6127         </parameter>
6128         <parameter name="marshal_data" transfer-ownership="none">
6129           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6130           <type name="gpointer" c:type="gpointer"/>
6131         </parameter>
6132       </parameters>
6133     </function>
6134     <function name="cclosure_marshal_VOID__ULONG"
6135               c:identifier="g_cclosure_marshal_VOID__ULONG">
6136       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6137 &lt;literal&gt;void (*callback) (gpointer instance, gulong arg1, gpointer user_data)&lt;/literal&gt;.</doc>
6138       <return-value transfer-ownership="none">
6139         <type name="none" c:type="void"/>
6140       </return-value>
6141       <parameters>
6142         <parameter name="closure" transfer-ownership="none">
6143           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6144           <type name="Closure" c:type="GClosure*"/>
6145         </parameter>
6146         <parameter name="return_value" transfer-ownership="none">
6147           <doc xml:whitespace="preserve">ignored</doc>
6148           <type name="Value" c:type="GValue*"/>
6149         </parameter>
6150         <parameter name="n_param_values" transfer-ownership="none">
6151           <doc xml:whitespace="preserve">2</doc>
6152           <type name="guint" c:type="guint"/>
6153         </parameter>
6154         <parameter name="param_values" transfer-ownership="none">
6155           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #gulong parameter</doc>
6156           <type name="Value" c:type="GValue*"/>
6157         </parameter>
6158         <parameter name="invocation_hint" transfer-ownership="none">
6159           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6160           <type name="gpointer" c:type="gpointer"/>
6161         </parameter>
6162         <parameter name="marshal_data" transfer-ownership="none">
6163           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6164           <type name="gpointer" c:type="gpointer"/>
6165         </parameter>
6166       </parameters>
6167     </function>
6168     <function name="cclosure_marshal_VOID__VARIANT"
6169               c:identifier="g_cclosure_marshal_VOID__VARIANT"
6170               version="2.26">
6171       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6172 &lt;literal&gt;void (*callback) (gpointer instance, GVariant *arg1, gpointer user_data)&lt;/literal&gt;.</doc>
6173       <return-value transfer-ownership="none">
6174         <type name="none" c:type="void"/>
6175       </return-value>
6176       <parameters>
6177         <parameter name="closure" transfer-ownership="none">
6178           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6179           <type name="Closure" c:type="GClosure*"/>
6180         </parameter>
6181         <parameter name="return_value" transfer-ownership="none">
6182           <doc xml:whitespace="preserve">ignored</doc>
6183           <type name="Value" c:type="GValue*"/>
6184         </parameter>
6185         <parameter name="n_param_values" transfer-ownership="none">
6186           <doc xml:whitespace="preserve">2</doc>
6187           <type name="guint" c:type="guint"/>
6188         </parameter>
6189         <parameter name="param_values" transfer-ownership="none">
6190           <doc xml:whitespace="preserve">a #GValue array holding the instance and the #GVariant* parameter</doc>
6191           <type name="Value" c:type="GValue*"/>
6192         </parameter>
6193         <parameter name="invocation_hint" transfer-ownership="none">
6194           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6195           <type name="gpointer" c:type="gpointer"/>
6196         </parameter>
6197         <parameter name="marshal_data" transfer-ownership="none">
6198           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6199           <type name="gpointer" c:type="gpointer"/>
6200         </parameter>
6201       </parameters>
6202     </function>
6203     <function name="cclosure_marshal_VOID__VOID"
6204               c:identifier="g_cclosure_marshal_VOID__VOID">
6205       <doc xml:whitespace="preserve">A marshaller for a #GCClosure with a callback of type
6206 &lt;literal&gt;void (*callback) (gpointer instance, gpointer user_data)&lt;/literal&gt;.</doc>
6207       <return-value transfer-ownership="none">
6208         <type name="none" c:type="void"/>
6209       </return-value>
6210       <parameters>
6211         <parameter name="closure" transfer-ownership="none">
6212           <doc xml:whitespace="preserve">the #GClosure to which the marshaller belongs</doc>
6213           <type name="Closure" c:type="GClosure*"/>
6214         </parameter>
6215         <parameter name="return_value" transfer-ownership="none">
6216           <doc xml:whitespace="preserve">ignored</doc>
6217           <type name="Value" c:type="GValue*"/>
6218         </parameter>
6219         <parameter name="n_param_values" transfer-ownership="none">
6220           <doc xml:whitespace="preserve">1</doc>
6221           <type name="guint" c:type="guint"/>
6222         </parameter>
6223         <parameter name="param_values" transfer-ownership="none">
6224           <doc xml:whitespace="preserve">a #GValue array holding only the instance</doc>
6225           <type name="Value" c:type="GValue*"/>
6226         </parameter>
6227         <parameter name="invocation_hint" transfer-ownership="none">
6228           <doc xml:whitespace="preserve">the invocation hint given as the last argument to g_closure_invoke()</doc>
6229           <type name="gpointer" c:type="gpointer"/>
6230         </parameter>
6231         <parameter name="marshal_data" transfer-ownership="none">
6232           <doc xml:whitespace="preserve">additional data specified when registering the marshaller</doc>
6233           <type name="gpointer" c:type="gpointer"/>
6234         </parameter>
6235       </parameters>
6236     </function>
6237     <function name="cclosure_new"
6238               c:identifier="g_cclosure_new"
6239               introspectable="0">
6240       <doc xml:whitespace="preserve">Creates a new closure which invokes @callback_func with @user_data as
6241 the last parameter.</doc>
6242       <return-value transfer-ownership="full">
6243         <doc xml:whitespace="preserve">a new #GCClosure</doc>
6244         <type name="Closure" c:type="GClosure*"/>
6245       </return-value>
6246       <parameters>
6247         <parameter name="callback_func" transfer-ownership="none" closure="1">
6248           <doc xml:whitespace="preserve">the function to invoke</doc>
6249           <type name="Callback" c:type="GCallback"/>
6250         </parameter>
6251         <parameter name="user_data" transfer-ownership="none">
6252           <doc xml:whitespace="preserve">user data to pass to @callback_func</doc>
6253           <type name="gpointer" c:type="gpointer"/>
6254         </parameter>
6255         <parameter name="destroy_data" transfer-ownership="none">
6256           <doc xml:whitespace="preserve">destroy notify to be called when @user_data is no longer used</doc>
6257           <type name="ClosureNotify" c:type="GClosureNotify"/>
6258         </parameter>
6259       </parameters>
6260     </function>
6261     <function name="cclosure_new_object"
6262               c:identifier="g_cclosure_new_object"
6263               introspectable="0">
6264       <doc xml:whitespace="preserve">A variant of g_cclosure_new() which uses @object as @user_data and
6265 calls g_object_watch_closure() on @object and the created
6266 closure. This function is useful when you have a callback closely
6267 associated with a #GObject, and want the callback to no longer run
6268 after the object is is freed.</doc>
6269       <return-value transfer-ownership="full">
6270         <doc xml:whitespace="preserve">a new #GCClosure</doc>
6271         <type name="Closure" c:type="GClosure*"/>
6272       </return-value>
6273       <parameters>
6274         <parameter name="callback_func" transfer-ownership="none">
6275           <doc xml:whitespace="preserve">the function to invoke</doc>
6276           <type name="Callback" c:type="GCallback"/>
6277         </parameter>
6278         <parameter name="object" transfer-ownership="none">
6279           <doc xml:whitespace="preserve">a #GObject pointer to pass to @callback_func</doc>
6280           <type name="Object" c:type="GObject*"/>
6281         </parameter>
6282       </parameters>
6283     </function>
6284     <function name="cclosure_new_object_swap"
6285               c:identifier="g_cclosure_new_object_swap"
6286               introspectable="0">
6287       <doc xml:whitespace="preserve">A variant of g_cclosure_new_swap() which uses @object as @user_data
6288 and calls g_object_watch_closure() on @object and the created
6289 closure. This function is useful when you have a callback closely
6290 associated with a #GObject, and want the callback to no longer run
6291 after the object is is freed.</doc>
6292       <return-value transfer-ownership="full">
6293         <doc xml:whitespace="preserve">a new #GCClosure</doc>
6294         <type name="Closure" c:type="GClosure*"/>
6295       </return-value>
6296       <parameters>
6297         <parameter name="callback_func" transfer-ownership="none">
6298           <doc xml:whitespace="preserve">the function to invoke</doc>
6299           <type name="Callback" c:type="GCallback"/>
6300         </parameter>
6301         <parameter name="object" transfer-ownership="none">
6302           <doc xml:whitespace="preserve">a #GObject pointer to pass to @callback_func</doc>
6303           <type name="Object" c:type="GObject*"/>
6304         </parameter>
6305       </parameters>
6306     </function>
6307     <function name="cclosure_new_swap"
6308               c:identifier="g_cclosure_new_swap"
6309               introspectable="0">
6310       <doc xml:whitespace="preserve">Creates a new closure which invokes @callback_func with @user_data as
6311 the first parameter.</doc>
6312       <return-value transfer-ownership="full">
6313         <doc xml:whitespace="preserve">a new #GCClosure</doc>
6314         <type name="Closure" c:type="GClosure*"/>
6315       </return-value>
6316       <parameters>
6317         <parameter name="callback_func" transfer-ownership="none" closure="1">
6318           <doc xml:whitespace="preserve">the function to invoke</doc>
6319           <type name="Callback" c:type="GCallback"/>
6320         </parameter>
6321         <parameter name="user_data" transfer-ownership="none">
6322           <doc xml:whitespace="preserve">user data to pass to @callback_func</doc>
6323           <type name="gpointer" c:type="gpointer"/>
6324         </parameter>
6325         <parameter name="destroy_data" transfer-ownership="none">
6326           <doc xml:whitespace="preserve">destroy notify to be called when @user_data is no longer used</doc>
6327           <type name="ClosureNotify" c:type="GClosureNotify"/>
6328         </parameter>
6329       </parameters>
6330     </function>
6331     <function name="enum_complete_type_info"
6332               c:identifier="g_enum_complete_type_info">
6333       <doc xml:whitespace="preserve">This function is meant to be called from the complete_type_info()
6334 function of a #GTypePlugin implementation, as in the following
6335 example:
6336 |[
6337 static void
6338 my_enum_complete_type_info (GTypePlugin     *plugin,
6339 GType            g_type,
6340 GTypeInfo       *info,
6341 GTypeValueTable *value_table)
6342 {
6343 static const GEnumValue values[] = {
6344 { MY_ENUM_FOO, "MY_ENUM_FOO", "foo" },
6345 { MY_ENUM_BAR, "MY_ENUM_BAR", "bar" },
6346 { 0, NULL, NULL }
6347 };
6348 g_enum_complete_type_info (type, info, values);
6349 }
6350 ]|</doc>
6351       <return-value transfer-ownership="none">
6352         <type name="none" c:type="void"/>
6353       </return-value>
6354       <parameters>
6355         <parameter name="g_enum_type" transfer-ownership="none">
6356           <doc xml:whitespace="preserve">the type identifier of the type being completed</doc>
6357           <type name="GType" c:type="GType"/>
6358         </parameter>
6359         <parameter name="info" transfer-ownership="none">
6360           <doc xml:whitespace="preserve">the #GTypeInfo struct to be filled in</doc>
6361           <type name="TypeInfo" c:type="GTypeInfo*"/>
6362         </parameter>
6363         <parameter name="const_values" transfer-ownership="none">
6364           <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>
6365           <type name="EnumValue" c:type="GEnumValue*"/>
6366         </parameter>
6367       </parameters>
6368     </function>
6369     <function name="enum_get_value"
6370               c:identifier="g_enum_get_value"
6371               introspectable="0">
6372       <doc xml:whitespace="preserve">Returns the #GEnumValue for a value.
6373 member of the enumeration</doc>
6374       <return-value>
6375         <doc xml:whitespace="preserve">the #GEnumValue for @value, or %NULL if @value is not a</doc>
6376         <type name="EnumValue" c:type="GEnumValue*"/>
6377       </return-value>
6378       <parameters>
6379         <parameter name="enum_class" transfer-ownership="none">
6380           <doc xml:whitespace="preserve">a #GEnumClass</doc>
6381           <type name="EnumClass" c:type="GEnumClass*"/>
6382         </parameter>
6383         <parameter name="value" transfer-ownership="none">
6384           <doc xml:whitespace="preserve">the value to look up</doc>
6385           <type name="gint" c:type="gint"/>
6386         </parameter>
6387       </parameters>
6388     </function>
6389     <function name="enum_get_value_by_name"
6390               c:identifier="g_enum_get_value_by_name"
6391               introspectable="0">
6392       <doc xml:whitespace="preserve">Looks up a #GEnumValue by name.
6393 enumeration doesn't have a member with that name</doc>
6394       <return-value>
6395         <doc xml:whitespace="preserve">the #GEnumValue with name @name, or %NULL if the</doc>
6396         <type name="EnumValue" c:type="GEnumValue*"/>
6397       </return-value>
6398       <parameters>
6399         <parameter name="enum_class" transfer-ownership="none">
6400           <doc xml:whitespace="preserve">a #GEnumClass</doc>
6401           <type name="EnumClass" c:type="GEnumClass*"/>
6402         </parameter>
6403         <parameter name="name" transfer-ownership="none">
6404           <doc xml:whitespace="preserve">the name to look up</doc>
6405           <type name="utf8" c:type="gchar*"/>
6406         </parameter>
6407       </parameters>
6408     </function>
6409     <function name="enum_get_value_by_nick"
6410               c:identifier="g_enum_get_value_by_nick"
6411               introspectable="0">
6412       <doc xml:whitespace="preserve">Looks up a #GEnumValue by nickname.
6413 enumeration doesn't have a member with that nickname</doc>
6414       <return-value>
6415         <doc xml:whitespace="preserve">the #GEnumValue with nickname @nick, or %NULL if the</doc>
6416         <type name="EnumValue" c:type="GEnumValue*"/>
6417       </return-value>
6418       <parameters>
6419         <parameter name="enum_class" transfer-ownership="none">
6420           <doc xml:whitespace="preserve">a #GEnumClass</doc>
6421           <type name="EnumClass" c:type="GEnumClass*"/>
6422         </parameter>
6423         <parameter name="nick" transfer-ownership="none">
6424           <doc xml:whitespace="preserve">the nickname to look up</doc>
6425           <type name="utf8" c:type="gchar*"/>
6426         </parameter>
6427       </parameters>
6428     </function>
6429     <function name="enum_register_static"
6430               c:identifier="g_enum_register_static">
6431       <doc xml:whitespace="preserve">Registers a new static enumeration type with the name @name.
6432 It is normally more convenient to let &lt;link
6433 linkend="glib-mkenums"&gt;glib-mkenums&lt;/link&gt; generate a
6434 my_enum_get_type() function from a usual C enumeration definition
6435 than to write one yourself using g_enum_register_static().</doc>
6436       <return-value transfer-ownership="none">
6437         <doc xml:whitespace="preserve">The new type identifier.</doc>
6438         <type name="GType" c:type="GType"/>
6439       </return-value>
6440       <parameters>
6441         <parameter name="name" transfer-ownership="none">
6442           <doc xml:whitespace="preserve">A nul-terminated string used as the name of the new type.</doc>
6443           <type name="utf8" c:type="gchar*"/>
6444         </parameter>
6445         <parameter name="const_static_values" transfer-ownership="none">
6446           <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>
6447           <type name="EnumValue" c:type="GEnumValue*"/>
6448         </parameter>
6449       </parameters>
6450     </function>
6451     <function name="enum_types_init" c:identifier="g_enum_types_init">
6452       <return-value transfer-ownership="none">
6453         <type name="none" c:type="void"/>
6454       </return-value>
6455     </function>
6456     <function name="flags_complete_type_info"
6457               c:identifier="g_flags_complete_type_info">
6458       <doc xml:whitespace="preserve">This function is meant to be called from the complete_type_info()
6459 function of a #GTypePlugin implementation, see the example for
6460 g_enum_complete_type_info() above.</doc>
6461       <return-value transfer-ownership="none">
6462         <type name="none" c:type="void"/>
6463       </return-value>
6464       <parameters>
6465         <parameter name="g_flags_type" transfer-ownership="none">
6466           <doc xml:whitespace="preserve">the type identifier of the type being completed</doc>
6467           <type name="GType" c:type="GType"/>
6468         </parameter>
6469         <parameter name="info" transfer-ownership="none">
6470           <doc xml:whitespace="preserve">the #GTypeInfo struct to be filled in</doc>
6471           <type name="TypeInfo" c:type="GTypeInfo*"/>
6472         </parameter>
6473         <parameter name="const_values" transfer-ownership="none">
6474           <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>
6475           <type name="FlagsValue" c:type="GFlagsValue*"/>
6476         </parameter>
6477       </parameters>
6478     </function>
6479     <function name="flags_get_first_value"
6480               c:identifier="g_flags_get_first_value"
6481               introspectable="0">
6482       <doc xml:whitespace="preserve">Returns the first #GFlagsValue which is set in @value.
6483 none is set</doc>
6484       <return-value>
6485         <doc xml:whitespace="preserve">the first #GFlagsValue which is set in @value, or %NULL if</doc>
6486         <type name="FlagsValue" c:type="GFlagsValue*"/>
6487       </return-value>
6488       <parameters>
6489         <parameter name="flags_class" transfer-ownership="none">
6490           <doc xml:whitespace="preserve">a #GFlagsClass</doc>
6491           <type name="FlagsClass" c:type="GFlagsClass*"/>
6492         </parameter>
6493         <parameter name="value" transfer-ownership="none">
6494           <doc xml:whitespace="preserve">the value</doc>
6495           <type name="guint" c:type="guint"/>
6496         </parameter>
6497       </parameters>
6498     </function>
6499     <function name="flags_get_value_by_name"
6500               c:identifier="g_flags_get_value_by_name"
6501               introspectable="0">
6502       <doc xml:whitespace="preserve">Looks up a #GFlagsValue by name.
6503 flag with that name</doc>
6504       <return-value>
6505         <doc xml:whitespace="preserve">the #GFlagsValue with name @name, or %NULL if there is no</doc>
6506         <type name="FlagsValue" c:type="GFlagsValue*"/>
6507       </return-value>
6508       <parameters>
6509         <parameter name="flags_class" transfer-ownership="none">
6510           <doc xml:whitespace="preserve">a #GFlagsClass</doc>
6511           <type name="FlagsClass" c:type="GFlagsClass*"/>
6512         </parameter>
6513         <parameter name="name" transfer-ownership="none">
6514           <doc xml:whitespace="preserve">the name to look up</doc>
6515           <type name="utf8" c:type="gchar*"/>
6516         </parameter>
6517       </parameters>
6518     </function>
6519     <function name="flags_get_value_by_nick"
6520               c:identifier="g_flags_get_value_by_nick"
6521               introspectable="0">
6522       <doc xml:whitespace="preserve">Looks up a #GFlagsValue by nickname.
6523 no flag with that nickname</doc>
6524       <return-value>
6525         <doc xml:whitespace="preserve">the #GFlagsValue with nickname @nick, or %NULL if there is</doc>
6526         <type name="FlagsValue" c:type="GFlagsValue*"/>
6527       </return-value>
6528       <parameters>
6529         <parameter name="flags_class" transfer-ownership="none">
6530           <doc xml:whitespace="preserve">a #GFlagsClass</doc>
6531           <type name="FlagsClass" c:type="GFlagsClass*"/>
6532         </parameter>
6533         <parameter name="nick" transfer-ownership="none">
6534           <doc xml:whitespace="preserve">the nickname to look up</doc>
6535           <type name="utf8" c:type="gchar*"/>
6536         </parameter>
6537       </parameters>
6538     </function>
6539     <function name="flags_register_static"
6540               c:identifier="g_flags_register_static">
6541       <doc xml:whitespace="preserve">Registers a new static flags type with the name @name.
6542 It is normally more convenient to let &lt;link
6543 linkend="glib-mkenums"&gt;glib-mkenums&lt;/link&gt; generate a
6544 my_flags_get_type() function from a usual C enumeration definition
6545 than to write one yourself using g_flags_register_static().</doc>
6546       <return-value transfer-ownership="none">
6547         <doc xml:whitespace="preserve">The new type identifier.</doc>
6548         <type name="GType" c:type="GType"/>
6549       </return-value>
6550       <parameters>
6551         <parameter name="name" transfer-ownership="none">
6552           <doc xml:whitespace="preserve">A nul-terminated string used as the name of the new type.</doc>
6553           <type name="utf8" c:type="gchar*"/>
6554         </parameter>
6555         <parameter name="const_static_values" transfer-ownership="none">
6556           <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>
6557           <type name="FlagsValue" c:type="GFlagsValue*"/>
6558         </parameter>
6559       </parameters>
6560     </function>
6561     <function name="gtype_get_type" c:identifier="g_gtype_get_type">
6562       <return-value transfer-ownership="none">
6563         <type name="GType" c:type="GType"/>
6564       </return-value>
6565     </function>
6566     <function name="object_get_type" c:identifier="g_object_get_type">
6567       <return-value transfer-ownership="none">
6568         <type name="GType" c:type="GType"/>
6569       </return-value>
6570     </function>
6571     <function name="param_spec_boolean"
6572               c:identifier="g_param_spec_boolean"
6573               introspectable="0">
6574       <doc xml:whitespace="preserve">Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN
6575 property.
6576 See g_param_spec_internal() for details on property names.</doc>
6577       <return-value>
6578         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6579         <type name="ParamSpec" c:type="GParamSpec*"/>
6580       </return-value>
6581       <parameters>
6582         <parameter name="name" transfer-ownership="none">
6583           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6584           <type name="utf8" c:type="gchar*"/>
6585         </parameter>
6586         <parameter name="nick" transfer-ownership="none">
6587           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6588           <type name="utf8" c:type="gchar*"/>
6589         </parameter>
6590         <parameter name="blurb" transfer-ownership="none">
6591           <doc xml:whitespace="preserve">description of the property specified</doc>
6592           <type name="utf8" c:type="gchar*"/>
6593         </parameter>
6594         <parameter name="default_value" transfer-ownership="none">
6595           <doc xml:whitespace="preserve">default value for the property specified</doc>
6596           <type name="gboolean" c:type="gboolean"/>
6597         </parameter>
6598         <parameter name="flags" transfer-ownership="none">
6599           <doc xml:whitespace="preserve">flags for the property specified</doc>
6600           <type name="ParamFlags" c:type="GParamFlags"/>
6601         </parameter>
6602       </parameters>
6603     </function>
6604     <function name="param_spec_boxed"
6605               c:identifier="g_param_spec_boxed"
6606               introspectable="0">
6607       <doc xml:whitespace="preserve">Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED
6608 derived property.
6609 See g_param_spec_internal() for details on property names.</doc>
6610       <return-value>
6611         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6612         <type name="ParamSpec" c:type="GParamSpec*"/>
6613       </return-value>
6614       <parameters>
6615         <parameter name="name" transfer-ownership="none">
6616           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6617           <type name="utf8" c:type="gchar*"/>
6618         </parameter>
6619         <parameter name="nick" transfer-ownership="none">
6620           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6621           <type name="utf8" c:type="gchar*"/>
6622         </parameter>
6623         <parameter name="blurb" transfer-ownership="none">
6624           <doc xml:whitespace="preserve">description of the property specified</doc>
6625           <type name="utf8" c:type="gchar*"/>
6626         </parameter>
6627         <parameter name="boxed_type" transfer-ownership="none">
6628           <doc xml:whitespace="preserve">%G_TYPE_BOXED derived type of this property</doc>
6629           <type name="GType" c:type="GType"/>
6630         </parameter>
6631         <parameter name="flags" transfer-ownership="none">
6632           <doc xml:whitespace="preserve">flags for the property specified</doc>
6633           <type name="ParamFlags" c:type="GParamFlags"/>
6634         </parameter>
6635       </parameters>
6636     </function>
6637     <function name="param_spec_char"
6638               c:identifier="g_param_spec_char"
6639               introspectable="0">
6640       <doc xml:whitespace="preserve">Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property.</doc>
6641       <return-value>
6642         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6643         <type name="ParamSpec" c:type="GParamSpec*"/>
6644       </return-value>
6645       <parameters>
6646         <parameter name="name" transfer-ownership="none">
6647           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6648           <type name="utf8" c:type="gchar*"/>
6649         </parameter>
6650         <parameter name="nick" transfer-ownership="none">
6651           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6652           <type name="utf8" c:type="gchar*"/>
6653         </parameter>
6654         <parameter name="blurb" transfer-ownership="none">
6655           <doc xml:whitespace="preserve">description of the property specified</doc>
6656           <type name="utf8" c:type="gchar*"/>
6657         </parameter>
6658         <parameter name="minimum" transfer-ownership="none">
6659           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
6660           <type name="gint8" c:type="gint8"/>
6661         </parameter>
6662         <parameter name="maximum" transfer-ownership="none">
6663           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
6664           <type name="gint8" c:type="gint8"/>
6665         </parameter>
6666         <parameter name="default_value" transfer-ownership="none">
6667           <doc xml:whitespace="preserve">default value for the property specified</doc>
6668           <type name="gint8" c:type="gint8"/>
6669         </parameter>
6670         <parameter name="flags" transfer-ownership="none">
6671           <doc xml:whitespace="preserve">flags for the property specified</doc>
6672           <type name="ParamFlags" c:type="GParamFlags"/>
6673         </parameter>
6674       </parameters>
6675     </function>
6676     <function name="param_spec_double"
6677               c:identifier="g_param_spec_double"
6678               introspectable="0">
6679       <doc xml:whitespace="preserve">Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE
6680 property.
6681 See g_param_spec_internal() for details on property names.</doc>
6682       <return-value>
6683         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6684         <type name="ParamSpec" c:type="GParamSpec*"/>
6685       </return-value>
6686       <parameters>
6687         <parameter name="name" transfer-ownership="none">
6688           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6689           <type name="utf8" c:type="gchar*"/>
6690         </parameter>
6691         <parameter name="nick" transfer-ownership="none">
6692           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6693           <type name="utf8" c:type="gchar*"/>
6694         </parameter>
6695         <parameter name="blurb" transfer-ownership="none">
6696           <doc xml:whitespace="preserve">description of the property specified</doc>
6697           <type name="utf8" c:type="gchar*"/>
6698         </parameter>
6699         <parameter name="minimum" transfer-ownership="none">
6700           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
6701           <type name="gdouble" c:type="gdouble"/>
6702         </parameter>
6703         <parameter name="maximum" transfer-ownership="none">
6704           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
6705           <type name="gdouble" c:type="gdouble"/>
6706         </parameter>
6707         <parameter name="default_value" transfer-ownership="none">
6708           <doc xml:whitespace="preserve">default value for the property specified</doc>
6709           <type name="gdouble" c:type="gdouble"/>
6710         </parameter>
6711         <parameter name="flags" transfer-ownership="none">
6712           <doc xml:whitespace="preserve">flags for the property specified</doc>
6713           <type name="ParamFlags" c:type="GParamFlags"/>
6714         </parameter>
6715       </parameters>
6716     </function>
6717     <function name="param_spec_enum"
6718               c:identifier="g_param_spec_enum"
6719               introspectable="0">
6720       <doc xml:whitespace="preserve">Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM
6721 property.
6722 See g_param_spec_internal() for details on property names.</doc>
6723       <return-value>
6724         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6725         <type name="ParamSpec" c:type="GParamSpec*"/>
6726       </return-value>
6727       <parameters>
6728         <parameter name="name" transfer-ownership="none">
6729           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6730           <type name="utf8" c:type="gchar*"/>
6731         </parameter>
6732         <parameter name="nick" transfer-ownership="none">
6733           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6734           <type name="utf8" c:type="gchar*"/>
6735         </parameter>
6736         <parameter name="blurb" transfer-ownership="none">
6737           <doc xml:whitespace="preserve">description of the property specified</doc>
6738           <type name="utf8" c:type="gchar*"/>
6739         </parameter>
6740         <parameter name="enum_type" transfer-ownership="none">
6741           <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_ENUM</doc>
6742           <type name="GType" c:type="GType"/>
6743         </parameter>
6744         <parameter name="default_value" transfer-ownership="none">
6745           <doc xml:whitespace="preserve">default value for the property specified</doc>
6746           <type name="gint" c:type="gint"/>
6747         </parameter>
6748         <parameter name="flags" transfer-ownership="none">
6749           <doc xml:whitespace="preserve">flags for the property specified</doc>
6750           <type name="ParamFlags" c:type="GParamFlags"/>
6751         </parameter>
6752       </parameters>
6753     </function>
6754     <function name="param_spec_flags"
6755               c:identifier="g_param_spec_flags"
6756               introspectable="0">
6757       <doc xml:whitespace="preserve">Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS
6758 property.
6759 See g_param_spec_internal() for details on property names.</doc>
6760       <return-value>
6761         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6762         <type name="ParamSpec" c:type="GParamSpec*"/>
6763       </return-value>
6764       <parameters>
6765         <parameter name="name" transfer-ownership="none">
6766           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6767           <type name="utf8" c:type="gchar*"/>
6768         </parameter>
6769         <parameter name="nick" transfer-ownership="none">
6770           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6771           <type name="utf8" c:type="gchar*"/>
6772         </parameter>
6773         <parameter name="blurb" transfer-ownership="none">
6774           <doc xml:whitespace="preserve">description of the property specified</doc>
6775           <type name="utf8" c:type="gchar*"/>
6776         </parameter>
6777         <parameter name="flags_type" transfer-ownership="none">
6778           <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_FLAGS</doc>
6779           <type name="GType" c:type="GType"/>
6780         </parameter>
6781         <parameter name="default_value" transfer-ownership="none">
6782           <doc xml:whitespace="preserve">default value for the property specified</doc>
6783           <type name="guint" c:type="guint"/>
6784         </parameter>
6785         <parameter name="flags" transfer-ownership="none">
6786           <doc xml:whitespace="preserve">flags for the property specified</doc>
6787           <type name="ParamFlags" c:type="GParamFlags"/>
6788         </parameter>
6789       </parameters>
6790     </function>
6791     <function name="param_spec_float"
6792               c:identifier="g_param_spec_float"
6793               introspectable="0">
6794       <doc xml:whitespace="preserve">Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property.
6795 See g_param_spec_internal() for details on property names.</doc>
6796       <return-value>
6797         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6798         <type name="ParamSpec" c:type="GParamSpec*"/>
6799       </return-value>
6800       <parameters>
6801         <parameter name="name" transfer-ownership="none">
6802           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6803           <type name="utf8" c:type="gchar*"/>
6804         </parameter>
6805         <parameter name="nick" transfer-ownership="none">
6806           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6807           <type name="utf8" c:type="gchar*"/>
6808         </parameter>
6809         <parameter name="blurb" transfer-ownership="none">
6810           <doc xml:whitespace="preserve">description of the property specified</doc>
6811           <type name="utf8" c:type="gchar*"/>
6812         </parameter>
6813         <parameter name="minimum" transfer-ownership="none">
6814           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
6815           <type name="gfloat" c:type="gfloat"/>
6816         </parameter>
6817         <parameter name="maximum" transfer-ownership="none">
6818           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
6819           <type name="gfloat" c:type="gfloat"/>
6820         </parameter>
6821         <parameter name="default_value" transfer-ownership="none">
6822           <doc xml:whitespace="preserve">default value for the property specified</doc>
6823           <type name="gfloat" c:type="gfloat"/>
6824         </parameter>
6825         <parameter name="flags" transfer-ownership="none">
6826           <doc xml:whitespace="preserve">flags for the property specified</doc>
6827           <type name="ParamFlags" c:type="GParamFlags"/>
6828         </parameter>
6829       </parameters>
6830     </function>
6831     <function name="param_spec_gtype"
6832               c:identifier="g_param_spec_gtype"
6833               version="2.10"
6834               introspectable="0">
6835       <doc xml:whitespace="preserve">Creates a new #GParamSpecGType instance specifying a
6836 %G_TYPE_GTYPE property.
6837 See g_param_spec_internal() for details on property names.</doc>
6838       <return-value>
6839         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6840         <type name="ParamSpec" c:type="GParamSpec*"/>
6841       </return-value>
6842       <parameters>
6843         <parameter name="name" transfer-ownership="none">
6844           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6845           <type name="utf8" c:type="gchar*"/>
6846         </parameter>
6847         <parameter name="nick" transfer-ownership="none">
6848           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6849           <type name="utf8" c:type="gchar*"/>
6850         </parameter>
6851         <parameter name="blurb" transfer-ownership="none">
6852           <doc xml:whitespace="preserve">description of the property specified</doc>
6853           <type name="utf8" c:type="gchar*"/>
6854         </parameter>
6855         <parameter name="is_a_type" transfer-ownership="none">
6856           <doc xml:whitespace="preserve">a #GType whose subtypes are allowed as values of the property (use %G_TYPE_NONE for any type)</doc>
6857           <type name="GType" c:type="GType"/>
6858         </parameter>
6859         <parameter name="flags" transfer-ownership="none">
6860           <doc xml:whitespace="preserve">flags for the property specified</doc>
6861           <type name="ParamFlags" c:type="GParamFlags"/>
6862         </parameter>
6863       </parameters>
6864     </function>
6865     <function name="param_spec_int"
6866               c:identifier="g_param_spec_int"
6867               introspectable="0">
6868       <doc xml:whitespace="preserve">Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property.
6869 See g_param_spec_internal() for details on property names.</doc>
6870       <return-value>
6871         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6872         <type name="ParamSpec" c:type="GParamSpec*"/>
6873       </return-value>
6874       <parameters>
6875         <parameter name="name" transfer-ownership="none">
6876           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6877           <type name="utf8" c:type="gchar*"/>
6878         </parameter>
6879         <parameter name="nick" transfer-ownership="none">
6880           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6881           <type name="utf8" c:type="gchar*"/>
6882         </parameter>
6883         <parameter name="blurb" transfer-ownership="none">
6884           <doc xml:whitespace="preserve">description of the property specified</doc>
6885           <type name="utf8" c:type="gchar*"/>
6886         </parameter>
6887         <parameter name="minimum" transfer-ownership="none">
6888           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
6889           <type name="gint" c:type="gint"/>
6890         </parameter>
6891         <parameter name="maximum" transfer-ownership="none">
6892           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
6893           <type name="gint" c:type="gint"/>
6894         </parameter>
6895         <parameter name="default_value" transfer-ownership="none">
6896           <doc xml:whitespace="preserve">default value for the property specified</doc>
6897           <type name="gint" c:type="gint"/>
6898         </parameter>
6899         <parameter name="flags" transfer-ownership="none">
6900           <doc xml:whitespace="preserve">flags for the property specified</doc>
6901           <type name="ParamFlags" c:type="GParamFlags"/>
6902         </parameter>
6903       </parameters>
6904     </function>
6905     <function name="param_spec_int64"
6906               c:identifier="g_param_spec_int64"
6907               introspectable="0">
6908       <doc xml:whitespace="preserve">Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property.
6909 See g_param_spec_internal() for details on property names.</doc>
6910       <return-value>
6911         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6912         <type name="ParamSpec" c:type="GParamSpec*"/>
6913       </return-value>
6914       <parameters>
6915         <parameter name="name" transfer-ownership="none">
6916           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
6917           <type name="utf8" c:type="gchar*"/>
6918         </parameter>
6919         <parameter name="nick" transfer-ownership="none">
6920           <doc xml:whitespace="preserve">nick name for the property specified</doc>
6921           <type name="utf8" c:type="gchar*"/>
6922         </parameter>
6923         <parameter name="blurb" transfer-ownership="none">
6924           <doc xml:whitespace="preserve">description of the property specified</doc>
6925           <type name="utf8" c:type="gchar*"/>
6926         </parameter>
6927         <parameter name="minimum" transfer-ownership="none">
6928           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
6929           <type name="gint64" c:type="gint64"/>
6930         </parameter>
6931         <parameter name="maximum" transfer-ownership="none">
6932           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
6933           <type name="gint64" c:type="gint64"/>
6934         </parameter>
6935         <parameter name="default_value" transfer-ownership="none">
6936           <doc xml:whitespace="preserve">default value for the property specified</doc>
6937           <type name="gint64" c:type="gint64"/>
6938         </parameter>
6939         <parameter name="flags" transfer-ownership="none">
6940           <doc xml:whitespace="preserve">flags for the property specified</doc>
6941           <type name="ParamFlags" c:type="GParamFlags"/>
6942         </parameter>
6943       </parameters>
6944     </function>
6945     <function name="param_spec_internal"
6946               c:identifier="g_param_spec_internal"
6947               introspectable="0">
6948       <doc xml:whitespace="preserve">Creates a new #GParamSpec instance.
6949 A property name consists of segments consisting of ASCII letters and
6950 digits, separated by either the '-' or '_' character. The first
6951 character of a property name must be a letter. Names which violate these
6952 rules lead to undefined behaviour.
6953 When creating and looking up a #GParamSpec, either separator can be
6954 used, but they cannot be mixed. Using '-' is considerably more
6955 efficient and in fact required when using property names as detail
6956 strings for signals.
6957 Beyond the name, #GParamSpec&lt;!-- --&gt;s have two more descriptive
6958 strings associated with them, the @nick, which should be suitable
6959 for use as a label for the property in a property editor, and the
6960 e.g. a tooltip. The @nick and @blurb should ideally be localized.</doc>
6961       <return-value>
6962         <doc xml:whitespace="preserve">a newly allocated #GParamSpec instance</doc>
6963         <type name="gpointer" c:type="gpointer"/>
6964       </return-value>
6965       <parameters>
6966         <parameter name="param_type" transfer-ownership="none">
6967           <doc xml:whitespace="preserve">the #GType for the property; must be derived from #G_TYPE_PARAM</doc>
6968           <type name="GType" c:type="GType"/>
6969         </parameter>
6970         <parameter name="name" transfer-ownership="none">
6971           <doc xml:whitespace="preserve">the canonical name of the property</doc>
6972           <type name="utf8" c:type="gchar*"/>
6973         </parameter>
6974         <parameter name="nick" transfer-ownership="none">
6975           <doc xml:whitespace="preserve">the nickname of the property</doc>
6976           <type name="utf8" c:type="gchar*"/>
6977         </parameter>
6978         <parameter name="blurb" transfer-ownership="none">
6979           <doc xml:whitespace="preserve">a short description of the property</doc>
6980           <type name="utf8" c:type="gchar*"/>
6981         </parameter>
6982         <parameter name="flags" transfer-ownership="none">
6983           <doc xml:whitespace="preserve">a combination of #GParamFlags</doc>
6984           <type name="ParamFlags" c:type="GParamFlags"/>
6985         </parameter>
6986       </parameters>
6987     </function>
6988     <function name="param_spec_long"
6989               c:identifier="g_param_spec_long"
6990               introspectable="0">
6991       <doc xml:whitespace="preserve">Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property.
6992 See g_param_spec_internal() for details on property names.</doc>
6993       <return-value>
6994         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
6995         <type name="ParamSpec" c:type="GParamSpec*"/>
6996       </return-value>
6997       <parameters>
6998         <parameter name="name" transfer-ownership="none">
6999           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7000           <type name="utf8" c:type="gchar*"/>
7001         </parameter>
7002         <parameter name="nick" transfer-ownership="none">
7003           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7004           <type name="utf8" c:type="gchar*"/>
7005         </parameter>
7006         <parameter name="blurb" transfer-ownership="none">
7007           <doc xml:whitespace="preserve">description of the property specified</doc>
7008           <type name="utf8" c:type="gchar*"/>
7009         </parameter>
7010         <parameter name="minimum" transfer-ownership="none">
7011           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
7012           <type name="glong" c:type="glong"/>
7013         </parameter>
7014         <parameter name="maximum" transfer-ownership="none">
7015           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
7016           <type name="glong" c:type="glong"/>
7017         </parameter>
7018         <parameter name="default_value" transfer-ownership="none">
7019           <doc xml:whitespace="preserve">default value for the property specified</doc>
7020           <type name="glong" c:type="glong"/>
7021         </parameter>
7022         <parameter name="flags" transfer-ownership="none">
7023           <doc xml:whitespace="preserve">flags for the property specified</doc>
7024           <type name="ParamFlags" c:type="GParamFlags"/>
7025         </parameter>
7026       </parameters>
7027     </function>
7028     <function name="param_spec_object"
7029               c:identifier="g_param_spec_object"
7030               introspectable="0">
7031       <doc xml:whitespace="preserve">Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT
7032 derived property.
7033 See g_param_spec_internal() for details on property names.</doc>
7034       <return-value>
7035         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7036         <type name="ParamSpec" c:type="GParamSpec*"/>
7037       </return-value>
7038       <parameters>
7039         <parameter name="name" transfer-ownership="none">
7040           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7041           <type name="utf8" c:type="gchar*"/>
7042         </parameter>
7043         <parameter name="nick" transfer-ownership="none">
7044           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7045           <type name="utf8" c:type="gchar*"/>
7046         </parameter>
7047         <parameter name="blurb" transfer-ownership="none">
7048           <doc xml:whitespace="preserve">description of the property specified</doc>
7049           <type name="utf8" c:type="gchar*"/>
7050         </parameter>
7051         <parameter name="object_type" transfer-ownership="none">
7052           <doc xml:whitespace="preserve">%G_TYPE_OBJECT derived type of this property</doc>
7053           <type name="GType" c:type="GType"/>
7054         </parameter>
7055         <parameter name="flags" transfer-ownership="none">
7056           <doc xml:whitespace="preserve">flags for the property specified</doc>
7057           <type name="ParamFlags" c:type="GParamFlags"/>
7058         </parameter>
7059       </parameters>
7060     </function>
7061     <function name="param_spec_override"
7062               c:identifier="g_param_spec_override"
7063               version="2.4"
7064               introspectable="0">
7065       <doc xml:whitespace="preserve">Creates a new property of type #GParamSpecOverride. This is used
7066 to direct operations to another paramspec, and will not be directly
7067 useful unless you are implementing a new base type similar to GObject.</doc>
7068       <return-value>
7069         <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
7070         <type name="ParamSpec" c:type="GParamSpec*"/>
7071       </return-value>
7072       <parameters>
7073         <parameter name="name" transfer-ownership="none">
7074           <doc xml:whitespace="preserve">the name of the property.</doc>
7075           <type name="utf8" c:type="gchar*"/>
7076         </parameter>
7077         <parameter name="overridden" transfer-ownership="none">
7078           <doc xml:whitespace="preserve">The property that is being overridden</doc>
7079           <type name="ParamSpec" c:type="GParamSpec*"/>
7080         </parameter>
7081       </parameters>
7082     </function>
7083     <function name="param_spec_param"
7084               c:identifier="g_param_spec_param"
7085               introspectable="0">
7086       <doc xml:whitespace="preserve">Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM
7087 property.
7088 See g_param_spec_internal() for details on property names.</doc>
7089       <return-value>
7090         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7091         <type name="ParamSpec" c:type="GParamSpec*"/>
7092       </return-value>
7093       <parameters>
7094         <parameter name="name" transfer-ownership="none">
7095           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7096           <type name="utf8" c:type="gchar*"/>
7097         </parameter>
7098         <parameter name="nick" transfer-ownership="none">
7099           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7100           <type name="utf8" c:type="gchar*"/>
7101         </parameter>
7102         <parameter name="blurb" transfer-ownership="none">
7103           <doc xml:whitespace="preserve">description of the property specified</doc>
7104           <type name="utf8" c:type="gchar*"/>
7105         </parameter>
7106         <parameter name="param_type" transfer-ownership="none">
7107           <doc xml:whitespace="preserve">a #GType derived from %G_TYPE_PARAM</doc>
7108           <type name="GType" c:type="GType"/>
7109         </parameter>
7110         <parameter name="flags" transfer-ownership="none">
7111           <doc xml:whitespace="preserve">flags for the property specified</doc>
7112           <type name="ParamFlags" c:type="GParamFlags"/>
7113         </parameter>
7114       </parameters>
7115     </function>
7116     <function name="param_spec_pointer"
7117               c:identifier="g_param_spec_pointer"
7118               introspectable="0">
7119       <doc xml:whitespace="preserve">Creates a new #GParamSpecPoiner instance specifying a pointer property.
7120 See g_param_spec_internal() for details on property names.</doc>
7121       <return-value>
7122         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7123         <type name="ParamSpec" c:type="GParamSpec*"/>
7124       </return-value>
7125       <parameters>
7126         <parameter name="name" transfer-ownership="none">
7127           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7128           <type name="utf8" c:type="gchar*"/>
7129         </parameter>
7130         <parameter name="nick" transfer-ownership="none">
7131           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7132           <type name="utf8" c:type="gchar*"/>
7133         </parameter>
7134         <parameter name="blurb" transfer-ownership="none">
7135           <doc xml:whitespace="preserve">description of the property specified</doc>
7136           <type name="utf8" c:type="gchar*"/>
7137         </parameter>
7138         <parameter name="flags" transfer-ownership="none">
7139           <doc xml:whitespace="preserve">flags for the property specified</doc>
7140           <type name="ParamFlags" c:type="GParamFlags"/>
7141         </parameter>
7142       </parameters>
7143     </function>
7144     <function name="param_spec_pool_new"
7145               c:identifier="g_param_spec_pool_new"
7146               introspectable="0">
7147       <doc xml:whitespace="preserve">Creates a new #GParamSpecPool.
7148 If @type_prefixing is %TRUE, lookups in the newly created pool will
7149 allow to specify the owner as a colon-separated prefix of the
7150 property name, like "GtkContainer:border-width". This feature is
7151 deprecated, so you should always set @type_prefixing to %FALSE.</doc>
7152       <return-value>
7153         <doc xml:whitespace="preserve">a newly allocated #GParamSpecPool.</doc>
7154         <type name="ParamSpecPool" c:type="GParamSpecPool*"/>
7155       </return-value>
7156       <parameters>
7157         <parameter name="type_prefixing" transfer-ownership="none">
7158           <doc xml:whitespace="preserve">Whether the pool will support type-prefixed property names.</doc>
7159           <type name="gboolean" c:type="gboolean"/>
7160         </parameter>
7161       </parameters>
7162     </function>
7163     <function name="param_spec_string"
7164               c:identifier="g_param_spec_string"
7165               introspectable="0">
7166       <doc xml:whitespace="preserve">Creates a new #GParamSpecString instance.
7167 See g_param_spec_internal() for details on property names.</doc>
7168       <return-value>
7169         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7170         <type name="ParamSpec" c:type="GParamSpec*"/>
7171       </return-value>
7172       <parameters>
7173         <parameter name="name" transfer-ownership="none">
7174           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7175           <type name="utf8" c:type="gchar*"/>
7176         </parameter>
7177         <parameter name="nick" transfer-ownership="none">
7178           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7179           <type name="utf8" c:type="gchar*"/>
7180         </parameter>
7181         <parameter name="blurb" transfer-ownership="none">
7182           <doc xml:whitespace="preserve">description of the property specified</doc>
7183           <type name="utf8" c:type="gchar*"/>
7184         </parameter>
7185         <parameter name="default_value" transfer-ownership="none">
7186           <doc xml:whitespace="preserve">default value for the property specified</doc>
7187           <type name="utf8" c:type="gchar*"/>
7188         </parameter>
7189         <parameter name="flags" transfer-ownership="none">
7190           <doc xml:whitespace="preserve">flags for the property specified</doc>
7191           <type name="ParamFlags" c:type="GParamFlags"/>
7192         </parameter>
7193       </parameters>
7194     </function>
7195     <function name="param_spec_types_init"
7196               c:identifier="g_param_spec_types_init">
7197       <return-value transfer-ownership="none">
7198         <type name="none" c:type="void"/>
7199       </return-value>
7200     </function>
7201     <function name="param_spec_uchar"
7202               c:identifier="g_param_spec_uchar"
7203               introspectable="0">
7204       <doc xml:whitespace="preserve">Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property.</doc>
7205       <return-value>
7206         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7207         <type name="ParamSpec" c:type="GParamSpec*"/>
7208       </return-value>
7209       <parameters>
7210         <parameter name="name" transfer-ownership="none">
7211           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7212           <type name="utf8" c:type="gchar*"/>
7213         </parameter>
7214         <parameter name="nick" transfer-ownership="none">
7215           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7216           <type name="utf8" c:type="gchar*"/>
7217         </parameter>
7218         <parameter name="blurb" transfer-ownership="none">
7219           <doc xml:whitespace="preserve">description of the property specified</doc>
7220           <type name="utf8" c:type="gchar*"/>
7221         </parameter>
7222         <parameter name="minimum" transfer-ownership="none">
7223           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
7224           <type name="guint8" c:type="guint8"/>
7225         </parameter>
7226         <parameter name="maximum" transfer-ownership="none">
7227           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
7228           <type name="guint8" c:type="guint8"/>
7229         </parameter>
7230         <parameter name="default_value" transfer-ownership="none">
7231           <doc xml:whitespace="preserve">default value for the property specified</doc>
7232           <type name="guint8" c:type="guint8"/>
7233         </parameter>
7234         <parameter name="flags" transfer-ownership="none">
7235           <doc xml:whitespace="preserve">flags for the property specified</doc>
7236           <type name="ParamFlags" c:type="GParamFlags"/>
7237         </parameter>
7238       </parameters>
7239     </function>
7240     <function name="param_spec_uint"
7241               c:identifier="g_param_spec_uint"
7242               introspectable="0">
7243       <doc xml:whitespace="preserve">Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property.
7244 See g_param_spec_internal() for details on property names.</doc>
7245       <return-value>
7246         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7247         <type name="ParamSpec" c:type="GParamSpec*"/>
7248       </return-value>
7249       <parameters>
7250         <parameter name="name" transfer-ownership="none">
7251           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7252           <type name="utf8" c:type="gchar*"/>
7253         </parameter>
7254         <parameter name="nick" transfer-ownership="none">
7255           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7256           <type name="utf8" c:type="gchar*"/>
7257         </parameter>
7258         <parameter name="blurb" transfer-ownership="none">
7259           <doc xml:whitespace="preserve">description of the property specified</doc>
7260           <type name="utf8" c:type="gchar*"/>
7261         </parameter>
7262         <parameter name="minimum" transfer-ownership="none">
7263           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
7264           <type name="guint" c:type="guint"/>
7265         </parameter>
7266         <parameter name="maximum" transfer-ownership="none">
7267           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
7268           <type name="guint" c:type="guint"/>
7269         </parameter>
7270         <parameter name="default_value" transfer-ownership="none">
7271           <doc xml:whitespace="preserve">default value for the property specified</doc>
7272           <type name="guint" c:type="guint"/>
7273         </parameter>
7274         <parameter name="flags" transfer-ownership="none">
7275           <doc xml:whitespace="preserve">flags for the property specified</doc>
7276           <type name="ParamFlags" c:type="GParamFlags"/>
7277         </parameter>
7278       </parameters>
7279     </function>
7280     <function name="param_spec_uint64"
7281               c:identifier="g_param_spec_uint64"
7282               introspectable="0">
7283       <doc xml:whitespace="preserve">Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64
7284 property.
7285 See g_param_spec_internal() for details on property names.</doc>
7286       <return-value>
7287         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7288         <type name="ParamSpec" c:type="GParamSpec*"/>
7289       </return-value>
7290       <parameters>
7291         <parameter name="name" transfer-ownership="none">
7292           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7293           <type name="utf8" c:type="gchar*"/>
7294         </parameter>
7295         <parameter name="nick" transfer-ownership="none">
7296           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7297           <type name="utf8" c:type="gchar*"/>
7298         </parameter>
7299         <parameter name="blurb" transfer-ownership="none">
7300           <doc xml:whitespace="preserve">description of the property specified</doc>
7301           <type name="utf8" c:type="gchar*"/>
7302         </parameter>
7303         <parameter name="minimum" transfer-ownership="none">
7304           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
7305           <type name="guint64" c:type="guint64"/>
7306         </parameter>
7307         <parameter name="maximum" transfer-ownership="none">
7308           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
7309           <type name="guint64" c:type="guint64"/>
7310         </parameter>
7311         <parameter name="default_value" transfer-ownership="none">
7312           <doc xml:whitespace="preserve">default value for the property specified</doc>
7313           <type name="guint64" c:type="guint64"/>
7314         </parameter>
7315         <parameter name="flags" transfer-ownership="none">
7316           <doc xml:whitespace="preserve">flags for the property specified</doc>
7317           <type name="ParamFlags" c:type="GParamFlags"/>
7318         </parameter>
7319       </parameters>
7320     </function>
7321     <function name="param_spec_ulong"
7322               c:identifier="g_param_spec_ulong"
7323               introspectable="0">
7324       <doc xml:whitespace="preserve">Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG
7325 property.
7326 See g_param_spec_internal() for details on property names.</doc>
7327       <return-value>
7328         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7329         <type name="ParamSpec" c:type="GParamSpec*"/>
7330       </return-value>
7331       <parameters>
7332         <parameter name="name" transfer-ownership="none">
7333           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7334           <type name="utf8" c:type="gchar*"/>
7335         </parameter>
7336         <parameter name="nick" transfer-ownership="none">
7337           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7338           <type name="utf8" c:type="gchar*"/>
7339         </parameter>
7340         <parameter name="blurb" transfer-ownership="none">
7341           <doc xml:whitespace="preserve">description of the property specified</doc>
7342           <type name="utf8" c:type="gchar*"/>
7343         </parameter>
7344         <parameter name="minimum" transfer-ownership="none">
7345           <doc xml:whitespace="preserve">minimum value for the property specified</doc>
7346           <type name="gulong" c:type="gulong"/>
7347         </parameter>
7348         <parameter name="maximum" transfer-ownership="none">
7349           <doc xml:whitespace="preserve">maximum value for the property specified</doc>
7350           <type name="gulong" c:type="gulong"/>
7351         </parameter>
7352         <parameter name="default_value" transfer-ownership="none">
7353           <doc xml:whitespace="preserve">default value for the property specified</doc>
7354           <type name="gulong" c:type="gulong"/>
7355         </parameter>
7356         <parameter name="flags" transfer-ownership="none">
7357           <doc xml:whitespace="preserve">flags for the property specified</doc>
7358           <type name="ParamFlags" c:type="GParamFlags"/>
7359         </parameter>
7360       </parameters>
7361     </function>
7362     <function name="param_spec_unichar"
7363               c:identifier="g_param_spec_unichar"
7364               introspectable="0">
7365       <doc xml:whitespace="preserve">Creates a new #GParamSpecUnichar instance specifying a %G_TYPE_UINT
7366 property. #GValue structures for this property can be accessed with
7367 g_value_set_uint() and g_value_get_uint().
7368 See g_param_spec_internal() for details on property names.</doc>
7369       <return-value>
7370         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7371         <type name="ParamSpec" c:type="GParamSpec*"/>
7372       </return-value>
7373       <parameters>
7374         <parameter name="name" transfer-ownership="none">
7375           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7376           <type name="utf8" c:type="gchar*"/>
7377         </parameter>
7378         <parameter name="nick" transfer-ownership="none">
7379           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7380           <type name="utf8" c:type="gchar*"/>
7381         </parameter>
7382         <parameter name="blurb" transfer-ownership="none">
7383           <doc xml:whitespace="preserve">description of the property specified</doc>
7384           <type name="utf8" c:type="gchar*"/>
7385         </parameter>
7386         <parameter name="default_value" transfer-ownership="none">
7387           <doc xml:whitespace="preserve">default value for the property specified</doc>
7388           <type name="gunichar" c:type="gunichar"/>
7389         </parameter>
7390         <parameter name="flags" transfer-ownership="none">
7391           <doc xml:whitespace="preserve">flags for the property specified</doc>
7392           <type name="ParamFlags" c:type="GParamFlags"/>
7393         </parameter>
7394       </parameters>
7395     </function>
7396     <function name="param_spec_value_array"
7397               c:identifier="g_param_spec_value_array"
7398               introspectable="0">
7399       <doc xml:whitespace="preserve">Creates a new #GParamSpecValueArray instance specifying a
7400 %G_TYPE_VALUE_ARRAY property. %G_TYPE_VALUE_ARRAY is a
7401 %G_TYPE_BOXED type, as such, #GValue structures for this property
7402 can be accessed with g_value_set_boxed() and g_value_get_boxed().
7403 See g_param_spec_internal() for details on property names.</doc>
7404       <return-value>
7405         <doc xml:whitespace="preserve">a newly created parameter specification</doc>
7406         <type name="ParamSpec" c:type="GParamSpec*"/>
7407       </return-value>
7408       <parameters>
7409         <parameter name="name" transfer-ownership="none">
7410           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7411           <type name="utf8" c:type="gchar*"/>
7412         </parameter>
7413         <parameter name="nick" transfer-ownership="none">
7414           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7415           <type name="utf8" c:type="gchar*"/>
7416         </parameter>
7417         <parameter name="blurb" transfer-ownership="none">
7418           <doc xml:whitespace="preserve">description of the property specified</doc>
7419           <type name="utf8" c:type="gchar*"/>
7420         </parameter>
7421         <parameter name="element_spec" transfer-ownership="none">
7422           <doc xml:whitespace="preserve">a #GParamSpec describing the elements contained in arrays of this property, may be %NULL</doc>
7423           <type name="ParamSpec" c:type="GParamSpec*"/>
7424         </parameter>
7425         <parameter name="flags" transfer-ownership="none">
7426           <doc xml:whitespace="preserve">flags for the property specified</doc>
7427           <type name="ParamFlags" c:type="GParamFlags"/>
7428         </parameter>
7429       </parameters>
7430     </function>
7431     <function name="param_spec_variant"
7432               c:identifier="g_param_spec_variant"
7433               version="2.26"
7434               introspectable="0">
7435       <doc xml:whitespace="preserve">Creates a new #GParamSpecVariant instance specifying a #GVariant
7436 property.
7437 If @default_value is floating, it is consumed.
7438 See g_param_spec_internal() for details on property names.</doc>
7439       <return-value>
7440         <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
7441         <type name="ParamSpec" c:type="GParamSpec*"/>
7442       </return-value>
7443       <parameters>
7444         <parameter name="name" transfer-ownership="none">
7445           <doc xml:whitespace="preserve">canonical name of the property specified</doc>
7446           <type name="utf8" c:type="gchar*"/>
7447         </parameter>
7448         <parameter name="nick" transfer-ownership="none">
7449           <doc xml:whitespace="preserve">nick name for the property specified</doc>
7450           <type name="utf8" c:type="gchar*"/>
7451         </parameter>
7452         <parameter name="blurb" transfer-ownership="none">
7453           <doc xml:whitespace="preserve">description of the property specified</doc>
7454           <type name="utf8" c:type="gchar*"/>
7455         </parameter>
7456         <parameter name="type" transfer-ownership="none">
7457           <doc xml:whitespace="preserve">a #GVariantType</doc>
7458           <type name="GLib.VariantType" c:type="GVariantType*"/>
7459         </parameter>
7460         <parameter name="default_value"
7461                    transfer-ownership="none"
7462                    allow-none="1">
7463           <doc xml:whitespace="preserve">a #GVariant of type @type to use as the default value, or %NULL</doc>
7464           <type name="GLib.Variant" c:type="GVariant*"/>
7465         </parameter>
7466         <parameter name="flags" transfer-ownership="none">
7467           <doc xml:whitespace="preserve">flags for the property specified</doc>
7468           <type name="ParamFlags" c:type="GParamFlags"/>
7469         </parameter>
7470       </parameters>
7471     </function>
7472     <function name="param_type_init" c:identifier="g_param_type_init">
7473       <return-value transfer-ownership="none">
7474         <type name="none" c:type="void"/>
7475       </return-value>
7476     </function>
7477     <function name="param_type_register_static"
7478               c:identifier="g_param_type_register_static">
7479       <doc xml:whitespace="preserve">Registers @name as the name of a new static type derived from
7480 #G_TYPE_PARAM. The type system uses the information contained in
7481 the #GParamSpecTypeInfo structure pointed to by @info to manage the
7482 #GParamSpec type and its instances.</doc>
7483       <return-value transfer-ownership="none">
7484         <doc xml:whitespace="preserve">The new type identifier.</doc>
7485         <type name="GType" c:type="GType"/>
7486       </return-value>
7487       <parameters>
7488         <parameter name="name" transfer-ownership="none">
7489           <doc xml:whitespace="preserve">0-terminated string used as the name of the new #GParamSpec type.</doc>
7490           <type name="utf8" c:type="gchar*"/>
7491         </parameter>
7492         <parameter name="pspec_info" transfer-ownership="none">
7493           <doc xml:whitespace="preserve">The #GParamSpecTypeInfo for this #GParamSpec type.</doc>
7494           <type name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo*"/>
7495         </parameter>
7496       </parameters>
7497     </function>
7498     <function name="param_value_convert" c:identifier="g_param_value_convert">
7499       <doc xml:whitespace="preserve">Transforms @src_value into @dest_value if possible, and then
7500 validates @dest_value, in order for it to conform to @pspec.  If
7501 transformed @dest_value complied to @pspec without modifications.
7502 See also g_value_type_transformable(), g_value_transform() and
7503 g_param_value_validate().
7504 %FALSE otherwise and @dest_value is left untouched.</doc>
7505       <return-value transfer-ownership="none">
7506         <doc xml:whitespace="preserve">%TRUE if transformation and validation were successful,</doc>
7507         <type name="gboolean" c:type="gboolean"/>
7508       </return-value>
7509       <parameters>
7510         <parameter name="pspec" transfer-ownership="none">
7511           <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
7512           <type name="ParamSpec" c:type="GParamSpec*"/>
7513         </parameter>
7514         <parameter name="src_value" transfer-ownership="none">
7515           <doc xml:whitespace="preserve">souce #GValue</doc>
7516           <type name="Value" c:type="GValue*"/>
7517         </parameter>
7518         <parameter name="dest_value" transfer-ownership="none">
7519           <doc xml:whitespace="preserve">destination #GValue of correct type for @pspec</doc>
7520           <type name="Value" c:type="GValue*"/>
7521         </parameter>
7522         <parameter name="strict_validation" transfer-ownership="none">
7523           <doc xml:whitespace="preserve">%TRUE requires @dest_value to conform to @pspec without modifications</doc>
7524           <type name="gboolean" c:type="gboolean"/>
7525         </parameter>
7526       </parameters>
7527     </function>
7528     <function name="param_value_defaults"
7529               c:identifier="g_param_value_defaults">
7530       <doc xml:whitespace="preserve">Checks whether @value contains the default value as specified in @pspec.</doc>
7531       <return-value transfer-ownership="none">
7532         <doc xml:whitespace="preserve">whether @value contains the canonical default for this @pspec</doc>
7533         <type name="gboolean" c:type="gboolean"/>
7534       </return-value>
7535       <parameters>
7536         <parameter name="pspec" transfer-ownership="none">
7537           <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
7538           <type name="ParamSpec" c:type="GParamSpec*"/>
7539         </parameter>
7540         <parameter name="value" transfer-ownership="none">
7541           <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
7542           <type name="Value" c:type="GValue*"/>
7543         </parameter>
7544       </parameters>
7545     </function>
7546     <function name="param_value_set_default"
7547               c:identifier="g_param_value_set_default">
7548       <doc xml:whitespace="preserve">Sets @value to its default value as specified in @pspec.</doc>
7549       <return-value transfer-ownership="none">
7550         <type name="none" c:type="void"/>
7551       </return-value>
7552       <parameters>
7553         <parameter name="pspec" transfer-ownership="none">
7554           <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
7555           <type name="ParamSpec" c:type="GParamSpec*"/>
7556         </parameter>
7557         <parameter name="value" transfer-ownership="none">
7558           <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
7559           <type name="Value" c:type="GValue*"/>
7560         </parameter>
7561       </parameters>
7562     </function>
7563     <function name="param_value_validate"
7564               c:identifier="g_param_value_validate">
7565       <doc xml:whitespace="preserve">Ensures that the contents of @value comply with the specifications
7566 set out by @pspec. For example, a #GParamSpecInt might require
7567 that integers stored in @value may not be smaller than -42 and not be
7568 greater than +42. If @value contains an integer outside of this range,
7569 it is modified accordingly, so the resulting value will fit into the
7570 range -42 .. +42.</doc>
7571       <return-value transfer-ownership="none">
7572         <doc xml:whitespace="preserve">whether modifying @value was necessary to ensure validity</doc>
7573         <type name="gboolean" c:type="gboolean"/>
7574       </return-value>
7575       <parameters>
7576         <parameter name="pspec" transfer-ownership="none">
7577           <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
7578           <type name="ParamSpec" c:type="GParamSpec*"/>
7579         </parameter>
7580         <parameter name="value" transfer-ownership="none">
7581           <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
7582           <type name="Value" c:type="GValue*"/>
7583         </parameter>
7584       </parameters>
7585     </function>
7586     <function name="param_values_cmp" c:identifier="g_param_values_cmp">
7587       <doc xml:whitespace="preserve">Compares @value1 with @value2 according to @pspec, and return -1, 0 or +1,
7588 if @value1 is found to be less than, equal to or greater than @value2,
7589 respectively.</doc>
7590       <return-value transfer-ownership="none">
7591         <doc xml:whitespace="preserve">-1, 0 or +1, for a less than, equal to or greater than result</doc>
7592         <type name="gint" c:type="gint"/>
7593       </return-value>
7594       <parameters>
7595         <parameter name="pspec" transfer-ownership="none">
7596           <doc xml:whitespace="preserve">a valid #GParamSpec</doc>
7597           <type name="ParamSpec" c:type="GParamSpec*"/>
7598         </parameter>
7599         <parameter name="value1" transfer-ownership="none">
7600           <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
7601           <type name="Value" c:type="GValue*"/>
7602         </parameter>
7603         <parameter name="value2" transfer-ownership="none">
7604           <doc xml:whitespace="preserve">a #GValue of correct type for @pspec</doc>
7605           <type name="Value" c:type="GValue*"/>
7606         </parameter>
7607       </parameters>
7608     </function>
7609     <function name="pointer_type_register_static"
7610               c:identifier="g_pointer_type_register_static">
7611       <doc xml:whitespace="preserve">Creates a new %G_TYPE_POINTER derived type id for a new
7612 pointer type with name @name.</doc>
7613       <return-value transfer-ownership="none">
7614         <doc xml:whitespace="preserve">a new %G_TYPE_POINTER derived type id for @name.</doc>
7615         <type name="GType" c:type="GType"/>
7616       </return-value>
7617       <parameters>
7618         <parameter name="name" transfer-ownership="none">
7619           <doc xml:whitespace="preserve">the name of the new pointer type.</doc>
7620           <type name="utf8" c:type="gchar*"/>
7621         </parameter>
7622       </parameters>
7623     </function>
7624     <function name="signal_accumulator_true_handled"
7625               c:identifier="g_signal_accumulator_true_handled"
7626               version="2.4">
7627       <doc xml:whitespace="preserve">A predefined #GSignalAccumulator for signals that return a
7628 boolean values. The behavior that this accumulator gives is
7629 callbacks will be invoked, while a return of %FALSE allows
7630 the emission to coninue. The idea here is that a %TRUE return
7631 indicates that the callback &lt;emphasis&gt;handled&lt;/emphasis&gt; the signal,
7632 and no further handling is needed.</doc>
7633       <return-value transfer-ownership="none">
7634         <doc xml:whitespace="preserve">standard #GSignalAccumulator result</doc>
7635         <type name="gboolean" c:type="gboolean"/>
7636       </return-value>
7637       <parameters>
7638         <parameter name="ihint" transfer-ownership="none">
7639           <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
7640           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
7641         </parameter>
7642         <parameter name="return_accu" transfer-ownership="none">
7643           <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
7644           <type name="Value" c:type="GValue*"/>
7645         </parameter>
7646         <parameter name="handler_return" transfer-ownership="none">
7647           <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
7648           <type name="Value" c:type="GValue*"/>
7649         </parameter>
7650         <parameter name="dummy" transfer-ownership="none">
7651           <doc xml:whitespace="preserve">standard #GSignalAccumulator parameter</doc>
7652           <type name="gpointer" c:type="gpointer"/>
7653         </parameter>
7654       </parameters>
7655     </function>
7656     <function name="signal_add_emission_hook"
7657               c:identifier="g_signal_add_emission_hook">
7658       <doc xml:whitespace="preserve">Adds an emission hook for a signal, which will get called for any emission
7659 of that signal, independent of the instance. This is possible only
7660 for signals which don't have #G_SIGNAL_NO_HOOKS flag set.</doc>
7661       <return-value transfer-ownership="none">
7662         <doc xml:whitespace="preserve">the hook id, for later use with g_signal_remove_emission_hook().</doc>
7663         <type name="gulong" c:type="gulong"/>
7664       </return-value>
7665       <parameters>
7666         <parameter name="signal_id" transfer-ownership="none">
7667           <doc xml:whitespace="preserve">the signal identifier, as returned by g_signal_lookup().</doc>
7668           <type name="guint" c:type="guint"/>
7669         </parameter>
7670         <parameter name="detail" transfer-ownership="none">
7671           <doc xml:whitespace="preserve">the detail on which to call the hook.</doc>
7672           <type name="GLib.Quark" c:type="GQuark"/>
7673         </parameter>
7674         <parameter name="hook_func"
7675                    transfer-ownership="none"
7676                    scope="notified"
7677                    closure="3"
7678                    destroy="4">
7679           <doc xml:whitespace="preserve">a #GSignalEmissionHook function.</doc>
7680           <type name="SignalEmissionHook" c:type="GSignalEmissionHook"/>
7681         </parameter>
7682         <parameter name="hook_data" transfer-ownership="none">
7683           <doc xml:whitespace="preserve">user data for @hook_func.</doc>
7684           <type name="gpointer" c:type="gpointer"/>
7685         </parameter>
7686         <parameter name="data_destroy" transfer-ownership="none" scope="async">
7687           <doc xml:whitespace="preserve">a #GDestroyNotify for @hook_data.</doc>
7688           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
7689         </parameter>
7690       </parameters>
7691     </function>
7692     <function name="signal_chain_from_overridden"
7693               c:identifier="g_signal_chain_from_overridden">
7694       <doc xml:whitespace="preserve">Calls the original class closure of a signal. This function should only
7695 be called from an overridden class closure; see
7696 g_signal_override_class_closure() and
7697 g_signal_override_class_handler().</doc>
7698       <return-value transfer-ownership="none">
7699         <type name="none" c:type="void"/>
7700       </return-value>
7701       <parameters>
7702         <parameter name="instance_and_params" transfer-ownership="none">
7703           <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>
7704           <type name="Value" c:type="GValue*"/>
7705         </parameter>
7706         <parameter name="return_value" transfer-ownership="none">
7707           <doc xml:whitespace="preserve">Location for the return value.</doc>
7708           <type name="Value" c:type="GValue*"/>
7709         </parameter>
7710       </parameters>
7711     </function>
7712     <function name="signal_chain_from_overridden_handler"
7713               c:identifier="g_signal_chain_from_overridden_handler"
7714               version="2.18"
7715               introspectable="0">
7716       <doc xml:whitespace="preserve">Calls the original class closure of a signal. This function should
7717 only be called from an overridden class closure; see
7718 g_signal_override_class_closure() and
7719 g_signal_override_class_handler().</doc>
7720       <return-value transfer-ownership="none">
7721         <type name="none" c:type="void"/>
7722       </return-value>
7723       <parameters>
7724         <parameter name="instance" transfer-ownership="none">
7725           <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
7726           <type name="gpointer" c:type="gpointer"/>
7727         </parameter>
7728         <parameter transfer-ownership="none">
7729           <varargs>
7730           </varargs>
7731         </parameter>
7732       </parameters>
7733     </function>
7734     <function name="signal_connect_closure"
7735               c:identifier="g_signal_connect_closure">
7736       <doc xml:whitespace="preserve">Connects a closure to a signal for a particular object.</doc>
7737       <return-value transfer-ownership="none">
7738         <doc xml:whitespace="preserve">the handler id</doc>
7739         <type name="gulong" c:type="gulong"/>
7740       </return-value>
7741       <parameters>
7742         <parameter name="instance" transfer-ownership="none">
7743           <doc xml:whitespace="preserve">the instance to connect to.</doc>
7744           <type name="gpointer" c:type="gpointer"/>
7745         </parameter>
7746         <parameter name="detailed_signal" transfer-ownership="none">
7747           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
7748           <type name="utf8" c:type="gchar*"/>
7749         </parameter>
7750         <parameter name="closure" transfer-ownership="none">
7751           <doc xml:whitespace="preserve">the closure to connect.</doc>
7752           <type name="Closure" c:type="GClosure*"/>
7753         </parameter>
7754         <parameter name="after" transfer-ownership="none">
7755           <doc xml:whitespace="preserve">whether the handler should be called before or after the default handler of the signal.</doc>
7756           <type name="gboolean" c:type="gboolean"/>
7757         </parameter>
7758       </parameters>
7759     </function>
7760     <function name="signal_connect_closure_by_id"
7761               c:identifier="g_signal_connect_closure_by_id">
7762       <doc xml:whitespace="preserve">Connects a closure to a signal for a particular object.</doc>
7763       <return-value transfer-ownership="none">
7764         <doc xml:whitespace="preserve">the handler id</doc>
7765         <type name="gulong" c:type="gulong"/>
7766       </return-value>
7767       <parameters>
7768         <parameter name="instance" transfer-ownership="none">
7769           <doc xml:whitespace="preserve">the instance to connect to.</doc>
7770           <type name="gpointer" c:type="gpointer"/>
7771         </parameter>
7772         <parameter name="signal_id" transfer-ownership="none">
7773           <doc xml:whitespace="preserve">the id of the signal.</doc>
7774           <type name="guint" c:type="guint"/>
7775         </parameter>
7776         <parameter name="detail" transfer-ownership="none">
7777           <doc xml:whitespace="preserve">the detail.</doc>
7778           <type name="GLib.Quark" c:type="GQuark"/>
7779         </parameter>
7780         <parameter name="closure" transfer-ownership="none">
7781           <doc xml:whitespace="preserve">the closure to connect.</doc>
7782           <type name="Closure" c:type="GClosure*"/>
7783         </parameter>
7784         <parameter name="after" transfer-ownership="none">
7785           <doc xml:whitespace="preserve">whether the handler should be called before or after the default handler of the signal.</doc>
7786           <type name="gboolean" c:type="gboolean"/>
7787         </parameter>
7788       </parameters>
7789     </function>
7790     <function name="signal_connect_data"
7791               c:identifier="g_signal_connect_data"
7792               introspectable="0">
7793       <doc xml:whitespace="preserve">Connects a #GCallback function to a signal for a particular object. Similar
7794 to g_signal_connect(), but allows to provide a #GClosureNotify for the data
7795 which will be called when the signal handler is disconnected and no longer
7796 used. Specify @connect_flags if you need &lt;literal&gt;..._after()&lt;/literal&gt; or
7797 &lt;literal&gt;..._swapped()&lt;/literal&gt; variants of this function.</doc>
7798       <return-value transfer-ownership="none">
7799         <doc xml:whitespace="preserve">the handler id</doc>
7800         <type name="gulong" c:type="gulong"/>
7801       </return-value>
7802       <parameters>
7803         <parameter name="instance" transfer-ownership="none">
7804           <doc xml:whitespace="preserve">the instance to connect to.</doc>
7805           <type name="gpointer" c:type="gpointer"/>
7806         </parameter>
7807         <parameter name="detailed_signal" transfer-ownership="none">
7808           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
7809           <type name="utf8" c:type="gchar*"/>
7810         </parameter>
7811         <parameter name="c_handler" transfer-ownership="none" closure="3">
7812           <doc xml:whitespace="preserve">the #GCallback to connect.</doc>
7813           <type name="Callback" c:type="GCallback"/>
7814         </parameter>
7815         <parameter name="data" transfer-ownership="none">
7816           <doc xml:whitespace="preserve">data to pass to @c_handler calls.</doc>
7817           <type name="gpointer" c:type="gpointer"/>
7818         </parameter>
7819         <parameter name="destroy_data" transfer-ownership="none">
7820           <doc xml:whitespace="preserve">a #GClosureNotify for @data.</doc>
7821           <type name="ClosureNotify" c:type="GClosureNotify"/>
7822         </parameter>
7823         <parameter name="connect_flags" transfer-ownership="none">
7824           <doc xml:whitespace="preserve">a combination of #GConnectFlags.</doc>
7825           <type name="ConnectFlags" c:type="GConnectFlags"/>
7826         </parameter>
7827       </parameters>
7828     </function>
7829     <function name="signal_connect_object"
7830               c:identifier="g_signal_connect_object"
7831               introspectable="0">
7832       <doc xml:whitespace="preserve">This is similar to g_signal_connect_data(), but uses a closure which
7833 ensures that the @gobject stays alive during the call to @c_handler
7834 by temporarily adding a reference count to @gobject.
7835 Note that there is a bug in GObject that makes this function
7836 much less useful than it might seem otherwise. Once @gobject is
7837 disposed, the callback will no longer be called, but, the signal
7838 handler is &lt;emphasis&gt;not&lt;/emphasis&gt; currently disconnected. If the
7839 matter, since the signal will automatically be removed, but
7840 if @instance persists, then the signal handler will leak. You
7841 should not remove the signal yourself because in a future versions of
7842 GObject, the handler &lt;emphasis&gt;will&lt;/emphasis&gt; automatically
7843 be disconnected.
7844 It's possible to work around this problem in a way that will
7845 continue to work with future versions of GObject by checking
7846 that the signal handler is still connected before disconnected it:
7847 &lt;informalexample&gt;&lt;programlisting&gt;
7848 if (g_signal_handler_is_connected (instance, id))
7849 g_signal_handler_disconnect (instance, id);
7850 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
7851       <return-value transfer-ownership="none">
7852         <doc xml:whitespace="preserve">the handler id.</doc>
7853         <type name="gulong" c:type="gulong"/>
7854       </return-value>
7855       <parameters>
7856         <parameter name="instance" transfer-ownership="none">
7857           <doc xml:whitespace="preserve">the instance to connect to.</doc>
7858           <type name="gpointer" c:type="gpointer"/>
7859         </parameter>
7860         <parameter name="detailed_signal" transfer-ownership="none">
7861           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
7862           <type name="utf8" c:type="gchar*"/>
7863         </parameter>
7864         <parameter name="c_handler" transfer-ownership="none">
7865           <doc xml:whitespace="preserve">the #GCallback to connect.</doc>
7866           <type name="Callback" c:type="GCallback"/>
7867         </parameter>
7868         <parameter name="gobject" transfer-ownership="none">
7869           <doc xml:whitespace="preserve">the object to pass as data to @c_handler.</doc>
7870           <type name="gpointer" c:type="gpointer"/>
7871         </parameter>
7872         <parameter name="connect_flags" transfer-ownership="none">
7873           <doc xml:whitespace="preserve">a combination of #GConnnectFlags.</doc>
7874           <type name="ConnectFlags" c:type="GConnectFlags"/>
7875         </parameter>
7876       </parameters>
7877     </function>
7878     <function name="signal_emit"
7879               c:identifier="g_signal_emit"
7880               introspectable="0">
7881       <doc xml:whitespace="preserve">Emits a signal.
7882 Note that g_signal_emit() resets the return value to the default
7883 if no handlers are connected, in contrast to g_signal_emitv().</doc>
7884       <return-value transfer-ownership="none">
7885         <type name="none" c:type="void"/>
7886       </return-value>
7887       <parameters>
7888         <parameter name="instance" transfer-ownership="none">
7889           <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
7890           <type name="gpointer" c:type="gpointer"/>
7891         </parameter>
7892         <parameter name="signal_id" transfer-ownership="none">
7893           <doc xml:whitespace="preserve">the signal id</doc>
7894           <type name="guint" c:type="guint"/>
7895         </parameter>
7896         <parameter name="detail" transfer-ownership="none">
7897           <doc xml:whitespace="preserve">the detail</doc>
7898           <type name="GLib.Quark" c:type="GQuark"/>
7899         </parameter>
7900         <parameter transfer-ownership="none">
7901           <varargs>
7902           </varargs>
7903         </parameter>
7904       </parameters>
7905     </function>
7906     <function name="signal_emit_by_name"
7907               c:identifier="g_signal_emit_by_name"
7908               introspectable="0">
7909       <doc xml:whitespace="preserve">Emits a signal.
7910 Note that g_signal_emit_by_name() resets the return value to the default
7911 if no handlers are connected, in contrast to g_signal_emitv().</doc>
7912       <return-value transfer-ownership="none">
7913         <type name="none" c:type="void"/>
7914       </return-value>
7915       <parameters>
7916         <parameter name="instance" transfer-ownership="none">
7917           <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
7918           <type name="gpointer" c:type="gpointer"/>
7919         </parameter>
7920         <parameter name="detailed_signal" transfer-ownership="none">
7921           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
7922           <type name="utf8" c:type="gchar*"/>
7923         </parameter>
7924         <parameter transfer-ownership="none">
7925           <varargs>
7926           </varargs>
7927         </parameter>
7928       </parameters>
7929     </function>
7930     <function name="signal_emit_valist"
7931               c:identifier="g_signal_emit_valist"
7932               introspectable="0">
7933       <doc xml:whitespace="preserve">Emits a signal.
7934 Note that g_signal_emit_valist() resets the return value to the default
7935 if no handlers are connected, in contrast to g_signal_emitv().</doc>
7936       <return-value transfer-ownership="none">
7937         <type name="none" c:type="void"/>
7938       </return-value>
7939       <parameters>
7940         <parameter name="instance" transfer-ownership="none">
7941           <doc xml:whitespace="preserve">the instance the signal is being emitted on.</doc>
7942           <type name="gpointer" c:type="gpointer"/>
7943         </parameter>
7944         <parameter name="signal_id" transfer-ownership="none">
7945           <doc xml:whitespace="preserve">the signal id</doc>
7946           <type name="guint" c:type="guint"/>
7947         </parameter>
7948         <parameter name="detail" transfer-ownership="none">
7949           <doc xml:whitespace="preserve">the detail</doc>
7950           <type name="GLib.Quark" c:type="GQuark"/>
7951         </parameter>
7952         <parameter name="var_args" transfer-ownership="none">
7953           <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>
7954           <type name="va_list" c:type="va_list"/>
7955         </parameter>
7956       </parameters>
7957     </function>
7958     <function name="signal_emitv" c:identifier="g_signal_emitv">
7959       <doc xml:whitespace="preserve">Emits a signal.
7960 Note that g_signal_emitv() doesn't change @return_value if no handlers are
7961 connected, in contrast to g_signal_emit() and g_signal_emit_valist().</doc>
7962       <return-value transfer-ownership="none">
7963         <type name="none" c:type="void"/>
7964       </return-value>
7965       <parameters>
7966         <parameter name="instance_and_params" transfer-ownership="none">
7967           <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>
7968           <type name="Value" c:type="GValue*"/>
7969         </parameter>
7970         <parameter name="signal_id" transfer-ownership="none">
7971           <doc xml:whitespace="preserve">the signal id</doc>
7972           <type name="guint" c:type="guint"/>
7973         </parameter>
7974         <parameter name="detail" transfer-ownership="none">
7975           <doc xml:whitespace="preserve">the detail</doc>
7976           <type name="GLib.Quark" c:type="GQuark"/>
7977         </parameter>
7978         <parameter name="return_value" transfer-ownership="none">
7979           <doc xml:whitespace="preserve">Location to store the return value of the signal emission.</doc>
7980           <type name="Value" c:type="GValue*"/>
7981         </parameter>
7982       </parameters>
7983     </function>
7984     <function name="signal_get_invocation_hint"
7985               c:identifier="g_signal_get_invocation_hint"
7986               introspectable="0">
7987       <doc xml:whitespace="preserve">Returns the invocation hint of the innermost signal emission of instance.</doc>
7988       <return-value>
7989         <doc xml:whitespace="preserve">the invocation hint of the innermost signal emission.</doc>
7990         <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
7991       </return-value>
7992       <parameters>
7993         <parameter name="instance" transfer-ownership="none">
7994           <doc xml:whitespace="preserve">the instance to query</doc>
7995           <type name="gpointer" c:type="gpointer"/>
7996         </parameter>
7997       </parameters>
7998     </function>
7999     <function name="signal_handler_block"
8000               c:identifier="g_signal_handler_block">
8001       <doc xml:whitespace="preserve">Blocks a handler of an instance so it will not be called during any
8002 signal emissions unless it is unblocked again. Thus "blocking" a
8003 signal handler means to temporarily deactive it, a signal handler
8004 has to be unblocked exactly the same amount of times it has been
8005 blocked before to become active again.
8006 The @handler_id has to be a valid signal handler id, connected to a
8007 signal of @instance.</doc>
8008       <return-value transfer-ownership="none">
8009         <type name="none" c:type="void"/>
8010       </return-value>
8011       <parameters>
8012         <parameter name="instance" transfer-ownership="none">
8013           <doc xml:whitespace="preserve">The instance to block the signal handler of.</doc>
8014           <type name="gpointer" c:type="gpointer"/>
8015         </parameter>
8016         <parameter name="handler_id" transfer-ownership="none">
8017           <doc xml:whitespace="preserve">Handler id of the handler to be blocked.</doc>
8018           <type name="gulong" c:type="gulong"/>
8019         </parameter>
8020       </parameters>
8021     </function>
8022     <function name="signal_handler_disconnect"
8023               c:identifier="g_signal_handler_disconnect">
8024       <doc xml:whitespace="preserve">Disconnects a handler from an instance so it will not be called during
8025 any future or currently ongoing emissions of the signal it has been
8026 connected to. The @handler_id becomes invalid and may be reused.
8027 The @handler_id has to be a valid signal handler id, connected to a
8028 signal of @instance.</doc>
8029       <return-value transfer-ownership="none">
8030         <type name="none" c:type="void"/>
8031       </return-value>
8032       <parameters>
8033         <parameter name="instance" transfer-ownership="none">
8034           <doc xml:whitespace="preserve">The instance to remove the signal handler from.</doc>
8035           <type name="gpointer" c:type="gpointer"/>
8036         </parameter>
8037         <parameter name="handler_id" transfer-ownership="none">
8038           <doc xml:whitespace="preserve">Handler id of the handler to be disconnected.</doc>
8039           <type name="gulong" c:type="gulong"/>
8040         </parameter>
8041       </parameters>
8042     </function>
8043     <function name="signal_handler_find" c:identifier="g_signal_handler_find">
8044       <doc xml:whitespace="preserve">Finds the first signal handler that matches certain selection criteria.
8045 The criteria mask is passed as an OR-ed combination of #GSignalMatchType
8046 flags, and the criteria values are passed as arguments.
8047 The match @mask has to be non-0 for successful matches.
8048 If no handler was found, 0 is returned.</doc>
8049       <return-value transfer-ownership="none">
8050         <doc xml:whitespace="preserve">A valid non-0 signal handler id for a successful match.</doc>
8051         <type name="gulong" c:type="gulong"/>
8052       </return-value>
8053       <parameters>
8054         <parameter name="instance" transfer-ownership="none">
8055           <doc xml:whitespace="preserve">The instance owning the signal handler to be found.</doc>
8056           <type name="gpointer" c:type="gpointer"/>
8057         </parameter>
8058         <parameter name="mask" transfer-ownership="none">
8059           <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handler has to match.</doc>
8060           <type name="SignalMatchType" c:type="GSignalMatchType"/>
8061         </parameter>
8062         <parameter name="signal_id" transfer-ownership="none">
8063           <doc xml:whitespace="preserve">Signal the handler has to be connected to.</doc>
8064           <type name="guint" c:type="guint"/>
8065         </parameter>
8066         <parameter name="detail" transfer-ownership="none">
8067           <doc xml:whitespace="preserve">Signal detail the handler has to be connected to.</doc>
8068           <type name="GLib.Quark" c:type="GQuark"/>
8069         </parameter>
8070         <parameter name="closure" transfer-ownership="none">
8071           <doc xml:whitespace="preserve">The closure the handler will invoke.</doc>
8072           <type name="Closure" c:type="GClosure*"/>
8073         </parameter>
8074         <parameter name="func" transfer-ownership="none">
8075           <doc xml:whitespace="preserve">The C closure callback of the handler (useless for non-C closures).</doc>
8076           <type name="gpointer" c:type="gpointer"/>
8077         </parameter>
8078         <parameter name="data" transfer-ownership="none">
8079           <doc xml:whitespace="preserve">The closure data of the handler's closure.</doc>
8080           <type name="gpointer" c:type="gpointer"/>
8081         </parameter>
8082       </parameters>
8083     </function>
8084     <function name="signal_handler_is_connected"
8085               c:identifier="g_signal_handler_is_connected">
8086       <doc xml:whitespace="preserve">Returns whether @handler_id is the id of a handler connected to @instance.</doc>
8087       <return-value transfer-ownership="none">
8088         <doc xml:whitespace="preserve">whether @handler_id identifies a handler connected to @instance.</doc>
8089         <type name="gboolean" c:type="gboolean"/>
8090       </return-value>
8091       <parameters>
8092         <parameter name="instance" transfer-ownership="none">
8093           <doc xml:whitespace="preserve">The instance where a signal handler is sought.</doc>
8094           <type name="gpointer" c:type="gpointer"/>
8095         </parameter>
8096         <parameter name="handler_id" transfer-ownership="none">
8097           <doc xml:whitespace="preserve">the handler id.</doc>
8098           <type name="gulong" c:type="gulong"/>
8099         </parameter>
8100       </parameters>
8101     </function>
8102     <function name="signal_handler_unblock"
8103               c:identifier="g_signal_handler_unblock">
8104       <doc xml:whitespace="preserve">Undoes the effect of a previous g_signal_handler_block() call.  A
8105 blocked handler is skipped during signal emissions and will not be
8106 invoked, unblocking it (for exactly the amount of times it has been
8107 blocked before) reverts its "blocked" state, so the handler will be
8108 recognized by the signal system and is called upon future or
8109 currently ongoing signal emissions (since the order in which
8110 handlers are called during signal emissions is deterministic,
8111 whether the unblocked handler in question is called as part of a
8112 currently ongoing emission depends on how far that emission has
8113 proceeded yet).
8114 The @handler_id has to be a valid id of a signal handler that is
8115 connected to a signal of @instance and is currently blocked.</doc>
8116       <return-value transfer-ownership="none">
8117         <type name="none" c:type="void"/>
8118       </return-value>
8119       <parameters>
8120         <parameter name="instance" transfer-ownership="none">
8121           <doc xml:whitespace="preserve">The instance to unblock the signal handler of.</doc>
8122           <type name="gpointer" c:type="gpointer"/>
8123         </parameter>
8124         <parameter name="handler_id" transfer-ownership="none">
8125           <doc xml:whitespace="preserve">Handler id of the handler to be unblocked.</doc>
8126           <type name="gulong" c:type="gulong"/>
8127         </parameter>
8128       </parameters>
8129     </function>
8130     <function name="signal_handlers_block_matched"
8131               c:identifier="g_signal_handlers_block_matched">
8132       <doc xml:whitespace="preserve">Blocks all handlers on an instance that match a certain selection criteria.
8133 The criteria mask is passed as an OR-ed combination of #GSignalMatchType
8134 flags, and the criteria values are passed as arguments.
8135 Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
8136 or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
8137 If no handlers were found, 0 is returned, the number of blocked handlers
8138 otherwise.</doc>
8139       <return-value transfer-ownership="none">
8140         <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
8141         <type name="guint" c:type="guint"/>
8142       </return-value>
8143       <parameters>
8144         <parameter name="instance" transfer-ownership="none">
8145           <doc xml:whitespace="preserve">The instance to block handlers from.</doc>
8146           <type name="gpointer" c:type="gpointer"/>
8147         </parameter>
8148         <parameter name="mask" transfer-ownership="none">
8149           <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
8150           <type name="SignalMatchType" c:type="GSignalMatchType"/>
8151         </parameter>
8152         <parameter name="signal_id" transfer-ownership="none">
8153           <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
8154           <type name="guint" c:type="guint"/>
8155         </parameter>
8156         <parameter name="detail" transfer-ownership="none">
8157           <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
8158           <type name="GLib.Quark" c:type="GQuark"/>
8159         </parameter>
8160         <parameter name="closure" transfer-ownership="none">
8161           <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
8162           <type name="Closure" c:type="GClosure*"/>
8163         </parameter>
8164         <parameter name="func" transfer-ownership="none">
8165           <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
8166           <type name="gpointer" c:type="gpointer"/>
8167         </parameter>
8168         <parameter name="data" transfer-ownership="none">
8169           <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
8170           <type name="gpointer" c:type="gpointer"/>
8171         </parameter>
8172       </parameters>
8173     </function>
8174     <function name="signal_handlers_destroy"
8175               c:identifier="g_signal_handlers_destroy">
8176       <return-value transfer-ownership="none">
8177         <type name="none" c:type="void"/>
8178       </return-value>
8179       <parameters>
8180         <parameter name="instance" transfer-ownership="none">
8181           <type name="gpointer" c:type="gpointer"/>
8182         </parameter>
8183       </parameters>
8184     </function>
8185     <function name="signal_handlers_disconnect_matched"
8186               c:identifier="g_signal_handlers_disconnect_matched">
8187       <doc xml:whitespace="preserve">Disconnects all handlers on an instance that match a certain
8188 selection criteria. The criteria mask is passed as an OR-ed
8189 combination of #GSignalMatchType flags, and the criteria values are
8190 passed as arguments.  Passing at least one of the
8191 %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or
8192 %G_SIGNAL_MATCH_DATA match flags is required for successful
8193 matches.  If no handlers were found, 0 is returned, the number of
8194 disconnected handlers otherwise.</doc>
8195       <return-value transfer-ownership="none">
8196         <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
8197         <type name="guint" c:type="guint"/>
8198       </return-value>
8199       <parameters>
8200         <parameter name="instance" transfer-ownership="none">
8201           <doc xml:whitespace="preserve">The instance to remove handlers from.</doc>
8202           <type name="gpointer" c:type="gpointer"/>
8203         </parameter>
8204         <parameter name="mask" transfer-ownership="none">
8205           <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
8206           <type name="SignalMatchType" c:type="GSignalMatchType"/>
8207         </parameter>
8208         <parameter name="signal_id" transfer-ownership="none">
8209           <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
8210           <type name="guint" c:type="guint"/>
8211         </parameter>
8212         <parameter name="detail" transfer-ownership="none">
8213           <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
8214           <type name="GLib.Quark" c:type="GQuark"/>
8215         </parameter>
8216         <parameter name="closure" transfer-ownership="none">
8217           <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
8218           <type name="Closure" c:type="GClosure*"/>
8219         </parameter>
8220         <parameter name="func" transfer-ownership="none">
8221           <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
8222           <type name="gpointer" c:type="gpointer"/>
8223         </parameter>
8224         <parameter name="data" transfer-ownership="none">
8225           <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
8226           <type name="gpointer" c:type="gpointer"/>
8227         </parameter>
8228       </parameters>
8229     </function>
8230     <function name="signal_handlers_unblock_matched"
8231               c:identifier="g_signal_handlers_unblock_matched">
8232       <doc xml:whitespace="preserve">Unblocks all handlers on an instance that match a certain selection
8233 criteria. The criteria mask is passed as an OR-ed combination of
8234 #GSignalMatchType flags, and the criteria values are passed as arguments.
8235 Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
8236 or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
8237 If no handlers were found, 0 is returned, the number of unblocked handlers
8238 otherwise. The match criteria should not apply to any handlers that are
8239 not currently blocked.</doc>
8240       <return-value transfer-ownership="none">
8241         <doc xml:whitespace="preserve">The number of handlers that matched.</doc>
8242         <type name="guint" c:type="guint"/>
8243       </return-value>
8244       <parameters>
8245         <parameter name="instance" transfer-ownership="none">
8246           <doc xml:whitespace="preserve">The instance to unblock handlers from.</doc>
8247           <type name="gpointer" c:type="gpointer"/>
8248         </parameter>
8249         <parameter name="mask" transfer-ownership="none">
8250           <doc xml:whitespace="preserve">Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match.</doc>
8251           <type name="SignalMatchType" c:type="GSignalMatchType"/>
8252         </parameter>
8253         <parameter name="signal_id" transfer-ownership="none">
8254           <doc xml:whitespace="preserve">Signal the handlers have to be connected to.</doc>
8255           <type name="guint" c:type="guint"/>
8256         </parameter>
8257         <parameter name="detail" transfer-ownership="none">
8258           <doc xml:whitespace="preserve">Signal detail the handlers have to be connected to.</doc>
8259           <type name="GLib.Quark" c:type="GQuark"/>
8260         </parameter>
8261         <parameter name="closure" transfer-ownership="none">
8262           <doc xml:whitespace="preserve">The closure the handlers will invoke.</doc>
8263           <type name="Closure" c:type="GClosure*"/>
8264         </parameter>
8265         <parameter name="func" transfer-ownership="none">
8266           <doc xml:whitespace="preserve">The C closure callback of the handlers (useless for non-C closures).</doc>
8267           <type name="gpointer" c:type="gpointer"/>
8268         </parameter>
8269         <parameter name="data" transfer-ownership="none">
8270           <doc xml:whitespace="preserve">The closure data of the handlers' closures.</doc>
8271           <type name="gpointer" c:type="gpointer"/>
8272         </parameter>
8273       </parameters>
8274     </function>
8275     <function name="signal_has_handler_pending"
8276               c:identifier="g_signal_has_handler_pending">
8277       <doc xml:whitespace="preserve">Returns whether there are any handlers connected to @instance for the
8278 given signal id and detail.
8279 One example of when you might use this is when the arguments to the
8280 signal are difficult to compute. A class implementor may opt to not
8281 emit the signal if no one is attached anyway, thus saving the cost
8282 of building the arguments.
8283 otherwise.</doc>
8284       <return-value transfer-ownership="none">
8285         <doc xml:whitespace="preserve">%TRUE if a handler is connected to the signal, %FALSE</doc>
8286         <type name="gboolean" c:type="gboolean"/>
8287       </return-value>
8288       <parameters>
8289         <parameter name="instance" transfer-ownership="none">
8290           <doc xml:whitespace="preserve">the object whose signal handlers are sought.</doc>
8291           <type name="gpointer" c:type="gpointer"/>
8292         </parameter>
8293         <parameter name="signal_id" transfer-ownership="none">
8294           <doc xml:whitespace="preserve">the signal id.</doc>
8295           <type name="guint" c:type="guint"/>
8296         </parameter>
8297         <parameter name="detail" transfer-ownership="none">
8298           <doc xml:whitespace="preserve">the detail.</doc>
8299           <type name="GLib.Quark" c:type="GQuark"/>
8300         </parameter>
8301         <parameter name="may_be_blocked" transfer-ownership="none">
8302           <doc xml:whitespace="preserve">whether blocked handlers should count as match.</doc>
8303           <type name="gboolean" c:type="gboolean"/>
8304         </parameter>
8305       </parameters>
8306     </function>
8307     <function name="signal_init" c:identifier="g_signal_init">
8308       <return-value transfer-ownership="none">
8309         <type name="none" c:type="void"/>
8310       </return-value>
8311     </function>
8312     <function name="signal_list_ids" c:identifier="g_signal_list_ids">
8313       <doc xml:whitespace="preserve">Lists the signals by id that a certain instance or interface type
8314 created. Further information about the signals can be acquired through
8315 g_signal_query().</doc>
8316       <return-value transfer-ownership="none">
8317         <doc xml:whitespace="preserve">Newly allocated array of signal IDs.</doc>
8318         <type name="guint" c:type="guint*"/>
8319       </return-value>
8320       <parameters>
8321         <parameter name="itype" transfer-ownership="none">
8322           <doc xml:whitespace="preserve">Instance or interface type.</doc>
8323           <type name="GType" c:type="GType"/>
8324         </parameter>
8325         <parameter name="n_ids" transfer-ownership="none">
8326           <doc xml:whitespace="preserve">Location to store the number of signal ids for @itype.</doc>
8327           <type name="guint" c:type="guint*"/>
8328         </parameter>
8329       </parameters>
8330     </function>
8331     <function name="signal_lookup" c:identifier="g_signal_lookup">
8332       <doc xml:whitespace="preserve">Given the name of the signal and the type of object it connects to, gets
8333 the signal's identifying integer. Emitting the signal by number is
8334 somewhat faster than using the name each time.
8335 Also tries the ancestors of the given type.
8336 See g_signal_new() for details on allowed signal names.</doc>
8337       <return-value transfer-ownership="none">
8338         <doc xml:whitespace="preserve">the signal's identifying number, or 0 if no signal was found.</doc>
8339         <type name="guint" c:type="guint"/>
8340       </return-value>
8341       <parameters>
8342         <parameter name="name" transfer-ownership="none">
8343           <doc xml:whitespace="preserve">the signal's name.</doc>
8344           <type name="utf8" c:type="gchar*"/>
8345         </parameter>
8346         <parameter name="itype" transfer-ownership="none">
8347           <doc xml:whitespace="preserve">the type that the signal operates on.</doc>
8348           <type name="GType" c:type="GType"/>
8349         </parameter>
8350       </parameters>
8351     </function>
8352     <function name="signal_name" c:identifier="g_signal_name">
8353       <doc xml:whitespace="preserve">Given the signal's identifier, finds its name.
8354 Two different signals may have the same name, if they have differing types.</doc>
8355       <return-value transfer-ownership="none">
8356         <doc xml:whitespace="preserve">the signal name, or %NULL if the signal number was invalid.</doc>
8357         <type name="utf8" c:type="gchar*"/>
8358       </return-value>
8359       <parameters>
8360         <parameter name="signal_id" transfer-ownership="none">
8361           <doc xml:whitespace="preserve">the signal's identifying number.</doc>
8362           <type name="guint" c:type="guint"/>
8363         </parameter>
8364       </parameters>
8365     </function>
8366     <function name="signal_new" c:identifier="g_signal_new" introspectable="0">
8367       <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
8368 A signal name consists of segments consisting of ASCII letters and
8369 digits, separated by either the '-' or '_' character. The first
8370 character of a signal name must be a letter. Names which violate these
8371 rules lead to undefined behaviour of the GSignal system.
8372 When registering a signal and looking up a signal, either separator can
8373 be used, but they cannot be mixed.
8374 If 0 is used for @class_offset subclasses cannot override the class handler
8375 in their &lt;code&gt;class_init&lt;/code&gt; method by doing
8376 &lt;code&gt;super_class-&gt;signal_handler = my_signal_handler&lt;/code&gt;. Instead they
8377 will have to use g_signal_override_class_handler().</doc>
8378       <return-value transfer-ownership="none">
8379         <doc xml:whitespace="preserve">the signal id</doc>
8380         <type name="guint" c:type="guint"/>
8381       </return-value>
8382       <parameters>
8383         <parameter name="signal_name" transfer-ownership="none">
8384           <doc xml:whitespace="preserve">the name for the signal</doc>
8385           <type name="utf8" c:type="gchar*"/>
8386         </parameter>
8387         <parameter name="itype" transfer-ownership="none">
8388           <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
8389           <type name="GType" c:type="GType"/>
8390         </parameter>
8391         <parameter name="signal_flags" transfer-ownership="none">
8392           <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>
8393           <type name="SignalFlags" c:type="GSignalFlags"/>
8394         </parameter>
8395         <parameter name="class_offset" transfer-ownership="none">
8396           <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>
8397           <type name="guint" c:type="guint"/>
8398         </parameter>
8399         <parameter name="accumulator" transfer-ownership="none" closure="5">
8400           <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
8401           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
8402         </parameter>
8403         <parameter name="accu_data" transfer-ownership="none">
8404           <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
8405           <type name="gpointer" c:type="gpointer"/>
8406         </parameter>
8407         <parameter name="c_marshaller" transfer-ownership="none">
8408           <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
8409           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
8410         </parameter>
8411         <parameter name="return_type" transfer-ownership="none">
8412           <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
8413           <type name="GType" c:type="GType"/>
8414         </parameter>
8415         <parameter name="n_params" transfer-ownership="none">
8416           <doc xml:whitespace="preserve">the number of parameter types to follow.</doc>
8417           <type name="guint" c:type="guint"/>
8418         </parameter>
8419         <parameter transfer-ownership="none">
8420           <varargs>
8421           </varargs>
8422         </parameter>
8423       </parameters>
8424     </function>
8425     <function name="signal_new_class_handler"
8426               c:identifier="g_signal_new_class_handler"
8427               version="2.18"
8428               introspectable="0">
8429       <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
8430 This is a variant of g_signal_new() that takes a C callback instead
8431 off a class offset for the signal's class handler. This function
8432 doesn't need a function pointer exposed in the class structure of
8433 an object definition, instead the function pointer is passed
8434 directly and can be overriden by derived classes with
8435 g_signal_override_class_closure() or
8436 g_signal_override_class_handler()and chained to with
8437 g_signal_chain_from_overridden() or
8438 g_signal_chain_from_overridden_handler().
8439 See g_signal_new() for information about signal names.</doc>
8440       <return-value transfer-ownership="none">
8441         <doc xml:whitespace="preserve">the signal id</doc>
8442         <type name="guint" c:type="guint"/>
8443       </return-value>
8444       <parameters>
8445         <parameter name="signal_name" transfer-ownership="none">
8446           <doc xml:whitespace="preserve">the name for the signal</doc>
8447           <type name="utf8" c:type="gchar*"/>
8448         </parameter>
8449         <parameter name="itype" transfer-ownership="none">
8450           <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
8451           <type name="GType" c:type="GType"/>
8452         </parameter>
8453         <parameter name="signal_flags" transfer-ownership="none">
8454           <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>
8455           <type name="SignalFlags" c:type="GSignalFlags"/>
8456         </parameter>
8457         <parameter name="class_handler" transfer-ownership="none">
8458           <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>
8459           <type name="Callback" c:type="GCallback"/>
8460         </parameter>
8461         <parameter name="accumulator" transfer-ownership="none" closure="5">
8462           <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
8463           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
8464         </parameter>
8465         <parameter name="accu_data" transfer-ownership="none">
8466           <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
8467           <type name="gpointer" c:type="gpointer"/>
8468         </parameter>
8469         <parameter name="c_marshaller" transfer-ownership="none">
8470           <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
8471           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
8472         </parameter>
8473         <parameter name="return_type" transfer-ownership="none">
8474           <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
8475           <type name="GType" c:type="GType"/>
8476         </parameter>
8477         <parameter name="n_params" transfer-ownership="none">
8478           <doc xml:whitespace="preserve">the number of parameter types to follow.</doc>
8479           <type name="guint" c:type="guint"/>
8480         </parameter>
8481         <parameter transfer-ownership="none">
8482           <varargs>
8483           </varargs>
8484         </parameter>
8485       </parameters>
8486     </function>
8487     <function name="signal_new_valist"
8488               c:identifier="g_signal_new_valist"
8489               introspectable="0">
8490       <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
8491 See g_signal_new() for details on allowed signal names.</doc>
8492       <return-value transfer-ownership="none">
8493         <doc xml:whitespace="preserve">the signal id</doc>
8494         <type name="guint" c:type="guint"/>
8495       </return-value>
8496       <parameters>
8497         <parameter name="signal_name" transfer-ownership="none">
8498           <doc xml:whitespace="preserve">the name for the signal</doc>
8499           <type name="utf8" c:type="gchar*"/>
8500         </parameter>
8501         <parameter name="itype" transfer-ownership="none">
8502           <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type.</doc>
8503           <type name="GType" c:type="GType"/>
8504         </parameter>
8505         <parameter name="signal_flags" transfer-ownership="none">
8506           <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>
8507           <type name="SignalFlags" c:type="GSignalFlags"/>
8508         </parameter>
8509         <parameter name="class_closure" transfer-ownership="none">
8510           <doc xml:whitespace="preserve">The closure to invoke on signal emission; may be %NULL.</doc>
8511           <type name="Closure" c:type="GClosure*"/>
8512         </parameter>
8513         <parameter name="accumulator" transfer-ownership="none" closure="5">
8514           <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL.</doc>
8515           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
8516         </parameter>
8517         <parameter name="accu_data" transfer-ownership="none">
8518           <doc xml:whitespace="preserve">user data for the @accumulator.</doc>
8519           <type name="gpointer" c:type="gpointer"/>
8520         </parameter>
8521         <parameter name="c_marshaller" transfer-ownership="none">
8522           <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations.</doc>
8523           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
8524         </parameter>
8525         <parameter name="return_type" transfer-ownership="none">
8526           <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value.</doc>
8527           <type name="GType" c:type="GType"/>
8528         </parameter>
8529         <parameter name="n_params" transfer-ownership="none">
8530           <doc xml:whitespace="preserve">the number of parameter types in @args.</doc>
8531           <type name="guint" c:type="guint"/>
8532         </parameter>
8533         <parameter name="args" transfer-ownership="none">
8534           <doc xml:whitespace="preserve">va_list of #GType, one for each parameter.</doc>
8535           <type name="va_list" c:type="va_list"/>
8536         </parameter>
8537       </parameters>
8538     </function>
8539     <function name="signal_newv"
8540               c:identifier="g_signal_newv"
8541               introspectable="0">
8542       <doc xml:whitespace="preserve">Creates a new signal. (This is usually done in the class initializer.)
8543 See g_signal_new() for details on allowed signal names.</doc>
8544       <return-value transfer-ownership="none">
8545         <doc xml:whitespace="preserve">the signal id</doc>
8546         <type name="guint" c:type="guint"/>
8547       </return-value>
8548       <parameters>
8549         <parameter name="signal_name" transfer-ownership="none">
8550           <doc xml:whitespace="preserve">the name for the signal</doc>
8551           <type name="utf8" c:type="gchar*"/>
8552         </parameter>
8553         <parameter name="itype" transfer-ownership="none">
8554           <doc xml:whitespace="preserve">the type this signal pertains to. It will also pertain to types which are derived from this type</doc>
8555           <type name="GType" c:type="GType"/>
8556         </parameter>
8557         <parameter name="signal_flags" transfer-ownership="none">
8558           <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>
8559           <type name="SignalFlags" c:type="GSignalFlags"/>
8560         </parameter>
8561         <parameter name="class_closure" transfer-ownership="none">
8562           <doc xml:whitespace="preserve">The closure to invoke on signal emission; may be %NULL</doc>
8563           <type name="Closure" c:type="GClosure*"/>
8564         </parameter>
8565         <parameter name="accumulator" transfer-ownership="none" closure="5">
8566           <doc xml:whitespace="preserve">the accumulator for this signal; may be %NULL</doc>
8567           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
8568         </parameter>
8569         <parameter name="accu_data" transfer-ownership="none">
8570           <doc xml:whitespace="preserve">user data for the @accumulator</doc>
8571           <type name="gpointer" c:type="gpointer"/>
8572         </parameter>
8573         <parameter name="c_marshaller" transfer-ownership="none">
8574           <doc xml:whitespace="preserve">the function to translate arrays of parameter values to signal emissions into C language callback invocations</doc>
8575           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
8576         </parameter>
8577         <parameter name="return_type" transfer-ownership="none">
8578           <doc xml:whitespace="preserve">the type of return value, or #G_TYPE_NONE for a signal without a return value</doc>
8579           <type name="GType" c:type="GType"/>
8580         </parameter>
8581         <parameter name="n_params" transfer-ownership="none">
8582           <doc xml:whitespace="preserve">the length of @param_types</doc>
8583           <type name="guint" c:type="guint"/>
8584         </parameter>
8585         <parameter name="param_types" transfer-ownership="none">
8586           <doc xml:whitespace="preserve">an array of types, one for each parameter</doc>
8587           <type name="GType" c:type="GType*"/>
8588         </parameter>
8589       </parameters>
8590     </function>
8591     <function name="signal_override_class_closure"
8592               c:identifier="g_signal_override_class_closure">
8593       <doc xml:whitespace="preserve">Overrides the class closure (i.e. the default handler) for the given signal
8594 for emissions on instances of @instance_type. @instance_type must be derived
8595 from the type to which the signal belongs.
8596 See g_signal_chain_from_overridden() and
8597 g_signal_chain_from_overridden_handler() for how to chain up to the
8598 parent class closure from inside the overridden one.</doc>
8599       <return-value transfer-ownership="none">
8600         <type name="none" c:type="void"/>
8601       </return-value>
8602       <parameters>
8603         <parameter name="signal_id" transfer-ownership="none">
8604           <doc xml:whitespace="preserve">the signal id</doc>
8605           <type name="guint" c:type="guint"/>
8606         </parameter>
8607         <parameter name="instance_type" transfer-ownership="none">
8608           <doc xml:whitespace="preserve">the instance type on which to override the class closure for the signal.</doc>
8609           <type name="GType" c:type="GType"/>
8610         </parameter>
8611         <parameter name="class_closure" transfer-ownership="none">
8612           <doc xml:whitespace="preserve">the closure.</doc>
8613           <type name="Closure" c:type="GClosure*"/>
8614         </parameter>
8615       </parameters>
8616     </function>
8617     <function name="signal_override_class_handler"
8618               c:identifier="g_signal_override_class_handler"
8619               version="2.18"
8620               introspectable="0">
8621       <doc xml:whitespace="preserve">Overrides the class closure (i.e. the default handler) for the
8622 given signal for emissions on instances of @instance_type with
8623 callabck @class_handler. @instance_type must be derived from the
8624 type to which the signal belongs.
8625 See g_signal_chain_from_overridden() and
8626 g_signal_chain_from_overridden_handler() for how to chain up to the
8627 parent class closure from inside the overridden one.</doc>
8628       <return-value transfer-ownership="none">
8629         <type name="none" c:type="void"/>
8630       </return-value>
8631       <parameters>
8632         <parameter name="signal_name" transfer-ownership="none">
8633           <doc xml:whitespace="preserve">the name for the signal</doc>
8634           <type name="utf8" c:type="gchar*"/>
8635         </parameter>
8636         <parameter name="instance_type" transfer-ownership="none">
8637           <doc xml:whitespace="preserve">the instance type on which to override the class handler for the signal.</doc>
8638           <type name="GType" c:type="GType"/>
8639         </parameter>
8640         <parameter name="class_handler" transfer-ownership="none">
8641           <doc xml:whitespace="preserve">the handler.</doc>
8642           <type name="Callback" c:type="GCallback"/>
8643         </parameter>
8644       </parameters>
8645     </function>
8646     <function name="signal_parse_name" c:identifier="g_signal_parse_name">
8647       <doc xml:whitespace="preserve">Internal function to parse a signal name into its @signal_id
8648 and @detail quark.</doc>
8649       <return-value transfer-ownership="none">
8650         <doc xml:whitespace="preserve">Whether the signal name could successfully be parsed and @signal_id_p and @detail_p contain valid return values.</doc>
8651         <type name="gboolean" c:type="gboolean"/>
8652       </return-value>
8653       <parameters>
8654         <parameter name="detailed_signal" transfer-ownership="none">
8655           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
8656           <type name="utf8" c:type="gchar*"/>
8657         </parameter>
8658         <parameter name="itype" transfer-ownership="none">
8659           <doc xml:whitespace="preserve">The interface/instance type that introduced "signal-name".</doc>
8660           <type name="GType" c:type="GType"/>
8661         </parameter>
8662         <parameter name="signal_id_p" transfer-ownership="none">
8663           <doc xml:whitespace="preserve">Location to store the signal id.</doc>
8664           <type name="guint" c:type="guint*"/>
8665         </parameter>
8666         <parameter name="detail_p" transfer-ownership="none">
8667           <doc xml:whitespace="preserve">Location to store the detail quark.</doc>
8668           <type name="GLib.Quark" c:type="GQuark*"/>
8669         </parameter>
8670         <parameter name="force_detail_quark" transfer-ownership="none">
8671           <doc xml:whitespace="preserve">%TRUE forces creation of a #GQuark for the detail.</doc>
8672           <type name="gboolean" c:type="gboolean"/>
8673         </parameter>
8674       </parameters>
8675     </function>
8676     <function name="signal_query" c:identifier="g_signal_query">
8677       <doc xml:whitespace="preserve">Queries the signal system for in-depth information about a
8678 specific signal. This function will fill in a user-provided
8679 structure to hold signal-specific information. If an invalid
8680 signal id is passed in, the @signal_id member of the #GSignalQuery
8681 is 0. All members filled into the #GSignalQuery structure should
8682 be considered constant and have to be left untouched.</doc>
8683       <return-value transfer-ownership="none">
8684         <type name="none" c:type="void"/>
8685       </return-value>
8686       <parameters>
8687         <parameter name="signal_id" transfer-ownership="none">
8688           <doc xml:whitespace="preserve">The signal id of the signal to query information for.</doc>
8689           <type name="guint" c:type="guint"/>
8690         </parameter>
8691         <parameter name="query" transfer-ownership="none">
8692           <doc xml:whitespace="preserve">A user provided structure that is filled in with constant values upon success.</doc>
8693           <type name="SignalQuery" c:type="GSignalQuery*"/>
8694         </parameter>
8695       </parameters>
8696     </function>
8697     <function name="signal_remove_emission_hook"
8698               c:identifier="g_signal_remove_emission_hook">
8699       <doc xml:whitespace="preserve">Deletes an emission hook.</doc>
8700       <return-value transfer-ownership="none">
8701         <type name="none" c:type="void"/>
8702       </return-value>
8703       <parameters>
8704         <parameter name="signal_id" transfer-ownership="none">
8705           <doc xml:whitespace="preserve">the id of the signal</doc>
8706           <type name="guint" c:type="guint"/>
8707         </parameter>
8708         <parameter name="hook_id" transfer-ownership="none">
8709           <doc xml:whitespace="preserve">the id of the emission hook, as returned by g_signal_add_emission_hook()</doc>
8710           <type name="gulong" c:type="gulong"/>
8711         </parameter>
8712       </parameters>
8713     </function>
8714     <function name="signal_stop_emission"
8715               c:identifier="g_signal_stop_emission">
8716       <doc xml:whitespace="preserve">Stops a signal's current emission.
8717 This will prevent the default method from running, if the signal was
8718 %G_SIGNAL_RUN_LAST and you connected normally (i.e. without the "after"
8719 flag).
8720 Prints a warning if used on a signal which isn't being emitted.</doc>
8721       <return-value transfer-ownership="none">
8722         <type name="none" c:type="void"/>
8723       </return-value>
8724       <parameters>
8725         <parameter name="instance" transfer-ownership="none">
8726           <doc xml:whitespace="preserve">the object whose signal handlers you wish to stop.</doc>
8727           <type name="gpointer" c:type="gpointer"/>
8728         </parameter>
8729         <parameter name="signal_id" transfer-ownership="none">
8730           <doc xml:whitespace="preserve">the signal identifier, as returned by g_signal_lookup().</doc>
8731           <type name="guint" c:type="guint"/>
8732         </parameter>
8733         <parameter name="detail" transfer-ownership="none">
8734           <doc xml:whitespace="preserve">the detail which the signal was emitted with.</doc>
8735           <type name="GLib.Quark" c:type="GQuark"/>
8736         </parameter>
8737       </parameters>
8738     </function>
8739     <function name="signal_stop_emission_by_name"
8740               c:identifier="g_signal_stop_emission_by_name">
8741       <doc xml:whitespace="preserve">Stops a signal's current emission.
8742 This is just like g_signal_stop_emission() except it will look up the
8743 signal id for you.</doc>
8744       <return-value transfer-ownership="none">
8745         <type name="none" c:type="void"/>
8746       </return-value>
8747       <parameters>
8748         <parameter name="instance" transfer-ownership="none">
8749           <doc xml:whitespace="preserve">the object whose signal handlers you wish to stop.</doc>
8750           <type name="gpointer" c:type="gpointer"/>
8751         </parameter>
8752         <parameter name="detailed_signal" transfer-ownership="none">
8753           <doc xml:whitespace="preserve">a string of the form "signal-name::detail".</doc>
8754           <type name="utf8" c:type="gchar*"/>
8755         </parameter>
8756       </parameters>
8757     </function>
8758     <function name="signal_type_cclosure_new"
8759               c:identifier="g_signal_type_cclosure_new">
8760       <doc xml:whitespace="preserve">Creates a new closure which invokes the function found at the offset
8761 identified by @itype.</doc>
8762       <return-value transfer-ownership="full">
8763         <doc xml:whitespace="preserve">a new #GCClosure</doc>
8764         <type name="Closure" c:type="GClosure*"/>
8765       </return-value>
8766       <parameters>
8767         <parameter name="itype" transfer-ownership="none">
8768           <doc xml:whitespace="preserve">the #GType identifier of an interface or classed type</doc>
8769           <type name="GType" c:type="GType"/>
8770         </parameter>
8771         <parameter name="struct_offset" transfer-ownership="none">
8772           <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>
8773           <type name="guint" c:type="guint"/>
8774         </parameter>
8775       </parameters>
8776     </function>
8777     <function name="source_set_closure" c:identifier="g_source_set_closure">
8778       <doc xml:whitespace="preserve">Set the callback for a source as a #GClosure.
8779 If the source is not one of the standard GLib types, the @closure_callback
8780 and @closure_marshal fields of the #GSourceFuncs structure must have been
8781 filled in with pointers to appropriate functions.</doc>
8782       <return-value transfer-ownership="none">
8783         <type name="none" c:type="void"/>
8784       </return-value>
8785       <parameters>
8786         <parameter name="source" transfer-ownership="none">
8787           <doc xml:whitespace="preserve">the source</doc>
8788           <type name="GLib.Source" c:type="GSource*"/>
8789         </parameter>
8790         <parameter name="closure" transfer-ownership="none">
8791           <doc xml:whitespace="preserve">a #GClosure</doc>
8792           <type name="Closure" c:type="GClosure*"/>
8793         </parameter>
8794       </parameters>
8795     </function>
8796     <function name="strdup_value_contents"
8797               c:identifier="g_strdup_value_contents">
8798       <doc xml:whitespace="preserve">Return a newly allocated string, which describes the contents of a
8799 #GValue.  The main purpose of this function is to describe #GValue
8800 contents for debugging output, the way in which the contents are
8801 described may change between different GLib versions.</doc>
8802       <return-value transfer-ownership="full">
8803         <doc xml:whitespace="preserve">Newly allocated string.</doc>
8804         <type name="utf8" c:type="gchar*"/>
8805       </return-value>
8806       <parameters>
8807         <parameter name="value" transfer-ownership="none">
8808           <doc xml:whitespace="preserve">#GValue which contents are to be described.</doc>
8809           <type name="Value" c:type="GValue*"/>
8810         </parameter>
8811       </parameters>
8812     </function>
8813     <function name="strv_get_type" c:identifier="g_strv_get_type">
8814       <return-value transfer-ownership="none">
8815         <type name="GType" c:type="GType"/>
8816       </return-value>
8817     </function>
8818     <function name="type_add_class_cache_func"
8819               c:identifier="g_type_add_class_cache_func"
8820               introspectable="0">
8821       <doc xml:whitespace="preserve">Adds a #GTypeClassCacheFunc to be called before the reference count of a
8822 class goes from one to zero. This can be used to prevent premature class
8823 destruction. All installed #GTypeClassCacheFunc functions will be chained
8824 until one of them returns %TRUE. The functions have to check the class id
8825 passed in to figure whether they actually want to cache the class of this
8826 type, since all classes are routed through the same #GTypeClassCacheFunc
8827 chain.</doc>
8828       <return-value transfer-ownership="none">
8829         <type name="none" c:type="void"/>
8830       </return-value>
8831       <parameters>
8832         <parameter name="cache_data" transfer-ownership="none">
8833           <doc xml:whitespace="preserve">data to be passed to @cache_func</doc>
8834           <type name="gpointer" c:type="gpointer"/>
8835         </parameter>
8836         <parameter name="cache_func" transfer-ownership="none">
8837           <doc xml:whitespace="preserve">a #GTypeClassCacheFunc</doc>
8838           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
8839         </parameter>
8840       </parameters>
8841     </function>
8842     <function name="type_add_class_private"
8843               c:identifier="g_type_add_class_private"
8844               version="2.24">
8845       <doc xml:whitespace="preserve">Registers a private class structure for a classed type;
8846 when the class is allocated, the private structures for
8847 the class and all of its parent types are allocated
8848 sequentially in the same memory block as the public
8849 structures. This function should be called in the
8850 type's get_type() function after the type is registered.
8851 The private structure can be retrieved using the
8852 G_TYPE_CLASS_GET_PRIVATE() macro.</doc>
8853       <return-value transfer-ownership="none">
8854         <type name="none" c:type="void"/>
8855       </return-value>
8856       <parameters>
8857         <parameter name="class_type" transfer-ownership="none">
8858           <doc xml:whitespace="preserve">GType of an classed type.</doc>
8859           <type name="GType" c:type="GType"/>
8860         </parameter>
8861         <parameter name="private_size" transfer-ownership="none">
8862           <doc xml:whitespace="preserve">size of private structure.</doc>
8863           <type name="gulong" c:type="gsize"/>
8864         </parameter>
8865       </parameters>
8866     </function>
8867     <function name="type_add_interface_check"
8868               c:identifier="g_type_add_interface_check"
8869               version="2.4"
8870               introspectable="0">
8871       <doc xml:whitespace="preserve">Adds a function to be called after an interface vtable is
8872 initialized for any class (i.e. after the @interface_init member of
8873 #GInterfaceInfo has been called).
8874 This function is useful when you want to check an invariant that
8875 depends on the interfaces of a class. For instance, the
8876 implementation of #GObject uses this facility to check that an
8877 object implements all of the properties that are defined on its
8878 interfaces.</doc>
8879       <return-value transfer-ownership="none">
8880         <type name="none" c:type="void"/>
8881       </return-value>
8882       <parameters>
8883         <parameter name="check_data" transfer-ownership="none">
8884           <doc xml:whitespace="preserve">data to pass to @check_func</doc>
8885           <type name="gpointer" c:type="gpointer"/>
8886         </parameter>
8887         <parameter name="check_func" transfer-ownership="none">
8888           <doc xml:whitespace="preserve">function to be called after each interface is initialized.</doc>
8889           <type name="TypeInterfaceCheckFunc"
8890                 c:type="GTypeInterfaceCheckFunc"/>
8891         </parameter>
8892       </parameters>
8893     </function>
8894     <function name="type_add_interface_dynamic"
8895               c:identifier="g_type_add_interface_dynamic">
8896       <doc xml:whitespace="preserve">Adds the dynamic @interface_type to @instantiable_type. The information
8897 contained in the #GTypePlugin structure pointed to by @plugin
8898 is used to manage the relationship.</doc>
8899       <return-value transfer-ownership="none">
8900         <type name="none" c:type="void"/>
8901       </return-value>
8902       <parameters>
8903         <parameter name="instance_type" transfer-ownership="none">
8904           <doc xml:whitespace="preserve">the #GType value of an instantiable type.</doc>
8905           <type name="GType" c:type="GType"/>
8906         </parameter>
8907         <parameter name="interface_type" transfer-ownership="none">
8908           <doc xml:whitespace="preserve">the #GType value of an interface type.</doc>
8909           <type name="GType" c:type="GType"/>
8910         </parameter>
8911         <parameter name="plugin" transfer-ownership="none">
8912           <doc xml:whitespace="preserve">the #GTypePlugin structure to retrieve the #GInterfaceInfo from.</doc>
8913           <type name="TypePlugin" c:type="GTypePlugin*"/>
8914         </parameter>
8915       </parameters>
8916     </function>
8917     <function name="type_add_interface_static"
8918               c:identifier="g_type_add_interface_static">
8919       <doc xml:whitespace="preserve">Adds the static @interface_type to @instantiable_type.  The information
8920 contained in the #GTypeInterfaceInfo structure pointed to by @info
8921 is used to manage the relationship.</doc>
8922       <return-value transfer-ownership="none">
8923         <type name="none" c:type="void"/>
8924       </return-value>
8925       <parameters>
8926         <parameter name="instance_type" transfer-ownership="none">
8927           <doc xml:whitespace="preserve">#GType value of an instantiable type.</doc>
8928           <type name="GType" c:type="GType"/>
8929         </parameter>
8930         <parameter name="interface_type" transfer-ownership="none">
8931           <doc xml:whitespace="preserve">#GType value of an interface type.</doc>
8932           <type name="GType" c:type="GType"/>
8933         </parameter>
8934         <parameter name="info" transfer-ownership="none">
8935           <doc xml:whitespace="preserve">The #GInterfaceInfo structure for this (@instance_type, @interface_type) combination.</doc>
8936           <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
8937         </parameter>
8938       </parameters>
8939     </function>
8940     <function name="type_check_class_cast"
8941               c:identifier="g_type_check_class_cast"
8942               introspectable="0">
8943       <return-value>
8944         <type name="TypeClass" c:type="GTypeClass*"/>
8945       </return-value>
8946       <parameters>
8947         <parameter name="g_class" transfer-ownership="none">
8948           <type name="TypeClass" c:type="GTypeClass*"/>
8949         </parameter>
8950         <parameter name="is_a_type" transfer-ownership="none">
8951           <type name="GType" c:type="GType"/>
8952         </parameter>
8953       </parameters>
8954     </function>
8955     <function name="type_check_class_is_a"
8956               c:identifier="g_type_check_class_is_a">
8957       <return-value transfer-ownership="none">
8958         <type name="gboolean" c:type="gboolean"/>
8959       </return-value>
8960       <parameters>
8961         <parameter name="g_class" transfer-ownership="none">
8962           <type name="TypeClass" c:type="GTypeClass*"/>
8963         </parameter>
8964         <parameter name="is_a_type" transfer-ownership="none">
8965           <type name="GType" c:type="GType"/>
8966         </parameter>
8967       </parameters>
8968     </function>
8969     <function name="type_check_instance" c:identifier="g_type_check_instance">
8970       <doc xml:whitespace="preserve">Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE()
8971 macro.</doc>
8972       <return-value transfer-ownership="none">
8973         <type name="gboolean" c:type="gboolean"/>
8974       </return-value>
8975       <parameters>
8976         <parameter name="instance" transfer-ownership="none">
8977           <doc xml:whitespace="preserve">A valid #GTypeInstance structure.</doc>
8978           <type name="TypeInstance" c:type="GTypeInstance*"/>
8979         </parameter>
8980       </parameters>
8981     </function>
8982     <function name="type_check_instance_cast"
8983               c:identifier="g_type_check_instance_cast"
8984               introspectable="0">
8985       <return-value>
8986         <type name="TypeInstance" c:type="GTypeInstance*"/>
8987       </return-value>
8988       <parameters>
8989         <parameter name="instance" transfer-ownership="none">
8990           <type name="TypeInstance" c:type="GTypeInstance*"/>
8991         </parameter>
8992         <parameter name="iface_type" transfer-ownership="none">
8993           <type name="GType" c:type="GType"/>
8994         </parameter>
8995       </parameters>
8996     </function>
8997     <function name="type_check_instance_is_a"
8998               c:identifier="g_type_check_instance_is_a">
8999       <return-value transfer-ownership="none">
9000         <type name="gboolean" c:type="gboolean"/>
9001       </return-value>
9002       <parameters>
9003         <parameter name="instance" transfer-ownership="none">
9004           <type name="TypeInstance" c:type="GTypeInstance*"/>
9005         </parameter>
9006         <parameter name="iface_type" transfer-ownership="none">
9007           <type name="GType" c:type="GType"/>
9008         </parameter>
9009       </parameters>
9010     </function>
9011     <function name="type_check_is_value_type"
9012               c:identifier="g_type_check_is_value_type">
9013       <return-value transfer-ownership="none">
9014         <type name="gboolean" c:type="gboolean"/>
9015       </return-value>
9016       <parameters>
9017         <parameter name="type" transfer-ownership="none">
9018           <type name="GType" c:type="GType"/>
9019         </parameter>
9020       </parameters>
9021     </function>
9022     <function name="type_check_value" c:identifier="g_type_check_value">
9023       <return-value transfer-ownership="none">
9024         <type name="gboolean" c:type="gboolean"/>
9025       </return-value>
9026       <parameters>
9027         <parameter name="value" transfer-ownership="none">
9028           <type name="Value" c:type="GValue*"/>
9029         </parameter>
9030       </parameters>
9031     </function>
9032     <function name="type_check_value_holds"
9033               c:identifier="g_type_check_value_holds">
9034       <return-value transfer-ownership="none">
9035         <type name="gboolean" c:type="gboolean"/>
9036       </return-value>
9037       <parameters>
9038         <parameter name="value" transfer-ownership="none">
9039           <type name="Value" c:type="GValue*"/>
9040         </parameter>
9041         <parameter name="type" transfer-ownership="none">
9042           <type name="GType" c:type="GType"/>
9043         </parameter>
9044       </parameters>
9045     </function>
9046     <function name="type_children" c:identifier="g_type_children">
9047       <doc xml:whitespace="preserve">Return a newly allocated and 0-terminated array of type IDs, listing the
9048 child types of @type. The return value has to be g_free()ed after use.</doc>
9049       <return-value transfer-ownership="none">
9050         <doc xml:whitespace="preserve">Newly allocated and 0-terminated array of child types.</doc>
9051         <type name="GType" c:type="GType*"/>
9052       </return-value>
9053       <parameters>
9054         <parameter name="type" transfer-ownership="none">
9055           <doc xml:whitespace="preserve">The parent type.</doc>
9056           <type name="GType" c:type="GType"/>
9057         </parameter>
9058         <parameter name="n_children" transfer-ownership="none">
9059           <doc xml:whitespace="preserve">Optional #guint pointer to contain the number of child types.</doc>
9060           <type name="guint" c:type="guint*"/>
9061         </parameter>
9062       </parameters>
9063     </function>
9064     <function name="type_class_add_private"
9065               c:identifier="g_type_class_add_private"
9066               version="2.4">
9067       <doc xml:whitespace="preserve">Registers a private structure for an instantiatable type.
9068 When an object is allocated, the private structures for
9069 the type and all of its parent types are allocated
9070 sequentially in the same memory block as the public
9071 structures.
9072 Note that the accumulated size of the private structures of
9073 a type and all its parent types cannot excced 64kB.
9074 This function should be called in the type's class_init() function.
9075 The private structure can be retrieved using the
9076 G_TYPE_INSTANCE_GET_PRIVATE() macro.
9077 The following example shows attaching a private structure
9078 &lt;structname&gt;MyObjectPrivate&lt;/structname&gt; to an object
9079 &lt;structname&gt;MyObject&lt;/structname&gt; defined in the standard GObject
9080 fashion.
9081 type's class_init() function.
9082 |[
9083 typedef struct _MyObject        MyObject;
9084 typedef struct _MyObjectPrivate MyObjectPrivate;
9085 struct _MyObject {
9086 GObject parent;
9087 MyObjectPrivate *priv;
9088 };
9089 struct _MyObjectPrivate {
9090 int some_field;
9091 };
9092 static void
9093 my_object_class_init (MyObjectClass *klass)
9094 {
9095 g_type_class_add_private (klass, sizeof (MyObjectPrivate));
9096 }
9097 static void
9098 my_object_init (MyObject *my_object)
9099 {
9100 my_object-&gt;priv = G_TYPE_INSTANCE_GET_PRIVATE (my_object,
9101 MY_TYPE_OBJECT,
9102 MyObjectPrivate);
9103 }
9104 static int
9105 my_object_get_some_field (MyObject *my_object)
9106 {
9107 MyObjectPrivate *priv = my_object-&gt;priv;
9108 return priv-&gt;some_field;
9109 }
9110 ]|</doc>
9111       <return-value transfer-ownership="none">
9112         <type name="none" c:type="void"/>
9113       </return-value>
9114       <parameters>
9115         <parameter name="g_class" transfer-ownership="none">
9116           <doc xml:whitespace="preserve">class structure for an instantiatable type</doc>
9117           <type name="gpointer" c:type="gpointer"/>
9118         </parameter>
9119         <parameter name="private_size" transfer-ownership="none">
9120           <doc xml:whitespace="preserve">size of private structure.</doc>
9121           <type name="gulong" c:type="gsize"/>
9122         </parameter>
9123       </parameters>
9124     </function>
9125     <function name="type_class_peek"
9126               c:identifier="g_type_class_peek"
9127               introspectable="0">
9128       <doc xml:whitespace="preserve">This function is essentially the same as g_type_class_ref(), except that
9129 the classes reference count isn't incremented. As a consequence, this function
9130 may return %NULL if the class of the type passed in does not currently
9131 exist (hasn't been referenced before).
9132 if the class does not currently exist.</doc>
9133       <return-value>
9134         <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID or %NULL</doc>
9135         <type name="gpointer" c:type="gpointer"/>
9136       </return-value>
9137       <parameters>
9138         <parameter name="type" transfer-ownership="none">
9139           <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
9140           <type name="GType" c:type="GType"/>
9141         </parameter>
9142       </parameters>
9143     </function>
9144     <function name="type_class_peek_parent"
9145               c:identifier="g_type_class_peek_parent"
9146               introspectable="0">
9147       <doc xml:whitespace="preserve">This is a convenience function often needed in class initializers.
9148 It returns the class structure of the immediate parent type of the
9149 class passed in.  Since derived classes hold a reference count on
9150 their parent classes as long as they are instantiated, the returned
9151 class will always exist. This function is essentially equivalent
9152 to:
9153 &lt;programlisting&gt;
9154 g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
9155 &lt;/programlisting&gt;</doc>
9156       <return-value>
9157         <doc xml:whitespace="preserve">The parent class of @g_class.</doc>
9158         <type name="gpointer" c:type="gpointer"/>
9159       </return-value>
9160       <parameters>
9161         <parameter name="g_class" transfer-ownership="none">
9162           <doc xml:whitespace="preserve">The #GTypeClass structure to retrieve the parent class for.</doc>
9163           <type name="gpointer" c:type="gpointer"/>
9164         </parameter>
9165       </parameters>
9166     </function>
9167     <function name="type_class_peek_static"
9168               c:identifier="g_type_class_peek_static"
9169               version="2.4"
9170               introspectable="0">
9171       <doc xml:whitespace="preserve">A more efficient version of g_type_class_peek() which works only for
9172 static types.
9173 if the class does not currently exist or is dynamically loaded.</doc>
9174       <return-value>
9175         <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID or %NULL</doc>
9176         <type name="gpointer" c:type="gpointer"/>
9177       </return-value>
9178       <parameters>
9179         <parameter name="type" transfer-ownership="none">
9180           <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
9181           <type name="GType" c:type="GType"/>
9182         </parameter>
9183       </parameters>
9184     </function>
9185     <function name="type_class_ref"
9186               c:identifier="g_type_class_ref"
9187               introspectable="0">
9188       <doc xml:whitespace="preserve">Increments the reference count of the class structure belonging to
9189 exist already.</doc>
9190       <return-value>
9191         <doc xml:whitespace="preserve">The #GTypeClass structure for the given type ID.</doc>
9192         <type name="gpointer" c:type="gpointer"/>
9193       </return-value>
9194       <parameters>
9195         <parameter name="type" transfer-ownership="none">
9196           <doc xml:whitespace="preserve">Type ID of a classed type.</doc>
9197           <type name="GType" c:type="GType"/>
9198         </parameter>
9199       </parameters>
9200     </function>
9201     <function name="type_class_unref" c:identifier="g_type_class_unref">
9202       <doc xml:whitespace="preserve">Decrements the reference count of the class structure being passed in.
9203 Once the last reference count of a class has been released, classes
9204 may be finalized by the type system, so further dereferencing of a
9205 class pointer after g_type_class_unref() are invalid.</doc>
9206       <return-value transfer-ownership="none">
9207         <type name="none" c:type="void"/>
9208       </return-value>
9209       <parameters>
9210         <parameter name="g_class" transfer-ownership="none">
9211           <doc xml:whitespace="preserve">The #GTypeClass structure to unreference.</doc>
9212           <type name="gpointer" c:type="gpointer"/>
9213         </parameter>
9214       </parameters>
9215     </function>
9216     <function name="type_class_unref_uncached"
9217               c:identifier="g_type_class_unref_uncached">
9218       <doc xml:whitespace="preserve">A variant of g_type_class_unref() for use in #GTypeClassCacheFunc
9219 implementations. It unreferences a class without consulting the chain
9220 of #GTypeClassCacheFunc&lt;!-- --&gt;s, avoiding the recursion which would occur
9221 otherwise.</doc>
9222       <return-value transfer-ownership="none">
9223         <type name="none" c:type="void"/>
9224       </return-value>
9225       <parameters>
9226         <parameter name="g_class" transfer-ownership="none">
9227           <doc xml:whitespace="preserve">The #GTypeClass structure to unreference.</doc>
9228           <type name="gpointer" c:type="gpointer"/>
9229         </parameter>
9230       </parameters>
9231     </function>
9232     <function name="type_create_instance"
9233               c:identifier="g_type_create_instance"
9234               introspectable="0">
9235       <doc xml:whitespace="preserve">Creates and initializes an instance of @type if @type is valid and
9236 can be instantiated. The type system only performs basic allocation
9237 happen through functions supplied by the type's fundamental type
9238 implementation.  So use of g_type_create_instance() is reserved for
9239 implementators of fundamental types only. E.g. instances of the
9240 #GObject hierarchy should be created via g_object_new() and
9241 &lt;emphasis&gt;never&lt;/emphasis&gt; directly through
9242 g_type_create_instance() which doesn't handle things like singleton
9243 use this function, unless you're implementing a fundamental
9244 type. Also language bindings should &lt;emphasis&gt;not&lt;/emphasis&gt; use
9245 this function but g_object_new() instead.
9246 treatment by the fundamental type implementation.</doc>
9247       <return-value>
9248         <doc xml:whitespace="preserve">An allocated and initialized instance, subject to further</doc>
9249         <type name="TypeInstance" c:type="GTypeInstance*"/>
9250       </return-value>
9251       <parameters>
9252         <parameter name="type" transfer-ownership="none">
9253           <doc xml:whitespace="preserve">An instantiatable type to create an instance for.</doc>
9254           <type name="GType" c:type="GType"/>
9255         </parameter>
9256       </parameters>
9257     </function>
9258     <function name="type_default_interface_peek"
9259               c:identifier="g_type_default_interface_peek"
9260               version="2.4"
9261               introspectable="0">
9262       <doc xml:whitespace="preserve">If the interface type @g_type is currently in use, returns its
9263 default interface vtable.
9264 if the type is not currently in use.</doc>
9265       <return-value>
9266         <doc xml:whitespace="preserve">the default vtable for the interface, or %NULL</doc>
9267         <type name="gpointer" c:type="gpointer"/>
9268       </return-value>
9269       <parameters>
9270         <parameter name="g_type" transfer-ownership="none">
9271           <doc xml:whitespace="preserve">an interface type</doc>
9272           <type name="GType" c:type="GType"/>
9273         </parameter>
9274       </parameters>
9275     </function>
9276     <function name="type_default_interface_ref"
9277               c:identifier="g_type_default_interface_ref"
9278               version="2.4"
9279               introspectable="0">
9280       <doc xml:whitespace="preserve">Increments the reference count for the interface type @g_type,
9281 and returns the default interface vtable for the type.
9282 If the type is not currently in use, then the default vtable
9283 for the type will be created and initalized by calling
9284 the base interface init and default vtable init functions for
9285 the type (the @&lt;structfield&gt;base_init&lt;/structfield&gt;
9286 and &lt;structfield&gt;class_init&lt;/structfield&gt; members of #GTypeInfo).
9287 Calling g_type_default_interface_ref() is useful when you
9288 want to make sure that signals and properties for an interface
9289 have been installed.
9290 g_type_default_interface_unref() when you are done using
9291 the interface.</doc>
9292       <return-value>
9293         <doc xml:whitespace="preserve">the default vtable for the interface; call</doc>
9294         <type name="gpointer" c:type="gpointer"/>
9295       </return-value>
9296       <parameters>
9297         <parameter name="g_type" transfer-ownership="none">
9298           <doc xml:whitespace="preserve">an interface type</doc>
9299           <type name="GType" c:type="GType"/>
9300         </parameter>
9301       </parameters>
9302     </function>
9303     <function name="type_default_interface_unref"
9304               c:identifier="g_type_default_interface_unref"
9305               version="2.4">
9306       <doc xml:whitespace="preserve">Decrements the reference count for the type corresponding to the
9307 interface default vtable @g_iface. If the type is dynamic, then
9308 when no one is using the interface and all references have
9309 been released, the finalize function for the interface's default
9310 vtable (the &lt;structfield&gt;class_finalize&lt;/structfield&gt; member of
9311 #GTypeInfo) will be called.</doc>
9312       <return-value transfer-ownership="none">
9313         <type name="none" c:type="void"/>
9314       </return-value>
9315       <parameters>
9316         <parameter name="g_iface" transfer-ownership="none">
9317           <doc xml:whitespace="preserve">the default vtable structure for a interface, as returned by g_type_default_interface_ref()</doc>
9318           <type name="gpointer" c:type="gpointer"/>
9319         </parameter>
9320       </parameters>
9321     </function>
9322     <function name="type_depth" c:identifier="g_type_depth">
9323       <doc xml:whitespace="preserve">Returns the length of the ancestry of the passed in type. This
9324 includes the type itself, so that e.g. a fundamental type has depth 1.</doc>
9325       <return-value transfer-ownership="none">
9326         <doc xml:whitespace="preserve">The depth of @type.</doc>
9327         <type name="guint" c:type="guint"/>
9328       </return-value>
9329       <parameters>
9330         <parameter name="type" transfer-ownership="none">
9331           <doc xml:whitespace="preserve">A #GType value.</doc>
9332           <type name="GType" c:type="GType"/>
9333         </parameter>
9334       </parameters>
9335     </function>
9336     <function name="type_free_instance" c:identifier="g_type_free_instance">
9337       <doc xml:whitespace="preserve">Frees an instance of a type, returning it to the instance pool for
9338 the type, if there is one.
9339 Like g_type_create_instance(), this function is reserved for
9340 implementors of fundamental types.</doc>
9341       <return-value transfer-ownership="none">
9342         <type name="none" c:type="void"/>
9343       </return-value>
9344       <parameters>
9345         <parameter name="instance" transfer-ownership="none">
9346           <doc xml:whitespace="preserve">an instance of a type.</doc>
9347           <type name="TypeInstance" c:type="GTypeInstance*"/>
9348         </parameter>
9349       </parameters>
9350     </function>
9351     <function name="type_from_name" c:identifier="g_type_from_name">
9352       <doc xml:whitespace="preserve">Lookup the type ID from a given type name, returning 0 if no type
9353 has been registered under this name (this is the preferred method
9354 to find out by name whether a specific type has been registered
9355 yet).</doc>
9356       <return-value transfer-ownership="none">
9357         <doc xml:whitespace="preserve">Corresponding type ID or 0.</doc>
9358         <type name="GType" c:type="GType"/>
9359       </return-value>
9360       <parameters>
9361         <parameter name="name" transfer-ownership="none">
9362           <doc xml:whitespace="preserve">Type name to lookup.</doc>
9363           <type name="utf8" c:type="gchar*"/>
9364         </parameter>
9365       </parameters>
9366     </function>
9367     <function name="type_fundamental" c:identifier="g_type_fundamental">
9368       <doc xml:whitespace="preserve">Internal function, used to extract the fundamental type ID portion.
9369 use G_TYPE_FUNDAMENTAL() instead.</doc>
9370       <return-value transfer-ownership="none">
9371         <doc xml:whitespace="preserve">fundamental type ID</doc>
9372         <type name="GType" c:type="GType"/>
9373       </return-value>
9374       <parameters>
9375         <parameter name="type_id" transfer-ownership="none">
9376           <doc xml:whitespace="preserve">valid type ID</doc>
9377           <type name="GType" c:type="GType"/>
9378         </parameter>
9379       </parameters>
9380     </function>
9381     <function name="type_fundamental_next"
9382               c:identifier="g_type_fundamental_next">
9383       <doc xml:whitespace="preserve">Returns the next free fundamental type id which can be used to
9384 register a new fundamental type with g_type_register_fundamental().
9385 The returned type ID represents the highest currently registered
9386 fundamental type identifier.
9387 or 0 if the type system ran out of fundamental type IDs.</doc>
9388       <return-value transfer-ownership="none">
9389         <doc xml:whitespace="preserve">The nextmost fundamental type ID to be registered,</doc>
9390         <type name="GType" c:type="GType"/>
9391       </return-value>
9392     </function>
9393     <function name="type_get_plugin"
9394               c:identifier="g_type_get_plugin"
9395               introspectable="0">
9396       <doc xml:whitespace="preserve">Returns the #GTypePlugin structure for @type or
9397 %NULL if @type does not have a #GTypePlugin structure.
9398 %NULL otherwise.</doc>
9399       <return-value>
9400         <doc xml:whitespace="preserve">The corresponding plugin if @type is a dynamic type,</doc>
9401         <type name="TypePlugin" c:type="GTypePlugin*"/>
9402       </return-value>
9403       <parameters>
9404         <parameter name="type" transfer-ownership="none">
9405           <doc xml:whitespace="preserve">The #GType to retrieve the plugin for.</doc>
9406           <type name="GType" c:type="GType"/>
9407         </parameter>
9408       </parameters>
9409     </function>
9410     <function name="type_get_qdata"
9411               c:identifier="g_type_get_qdata"
9412               introspectable="0">
9413       <doc xml:whitespace="preserve">Obtains data which has previously been attached to @type
9414 with g_type_set_qdata().</doc>
9415       <return-value>
9416         <doc xml:whitespace="preserve">the data, or %NULL if no data was found</doc>
9417         <type name="gpointer" c:type="gpointer"/>
9418       </return-value>
9419       <parameters>
9420         <parameter name="type" transfer-ownership="none">
9421           <doc xml:whitespace="preserve">a #GType</doc>
9422           <type name="GType" c:type="GType"/>
9423         </parameter>
9424         <parameter name="quark" transfer-ownership="none">
9425           <doc xml:whitespace="preserve">a #GQuark id to identify the data</doc>
9426           <type name="GLib.Quark" c:type="GQuark"/>
9427         </parameter>
9428       </parameters>
9429     </function>
9430     <function name="type_init" c:identifier="g_type_init">
9431       <doc xml:whitespace="preserve">Prior to any use of the type system, g_type_init() has to be called
9432 to initialize the type system and assorted other code portions
9433 (such as the various fundamental type implementations or the signal
9434 system).
9435 Since version 2.24 this also initializes the thread system</doc>
9436       <return-value transfer-ownership="none">
9437         <type name="none" c:type="void"/>
9438       </return-value>
9439     </function>
9440     <function name="type_init_with_debug_flags"
9441               c:identifier="g_type_init_with_debug_flags">
9442       <doc xml:whitespace="preserve">Similar to g_type_init(), but additionally sets debug flags.</doc>
9443       <return-value transfer-ownership="none">
9444         <type name="none" c:type="void"/>
9445       </return-value>
9446       <parameters>
9447         <parameter name="debug_flags" transfer-ownership="none">
9448           <doc xml:whitespace="preserve">Bitwise combination of #GTypeDebugFlags values for debugging purposes.</doc>
9449           <type name="TypeDebugFlags" c:type="GTypeDebugFlags"/>
9450         </parameter>
9451       </parameters>
9452     </function>
9453     <function name="type_interface_add_prerequisite"
9454               c:identifier="g_type_interface_add_prerequisite">
9455       <doc xml:whitespace="preserve">Adds @prerequisite_type to the list of prerequisites of @interface_type.
9456 This means that any type implementing @interface_type must also implement
9457 interface derivation (which GType doesn't support). An interface can have
9458 at most one instantiatable prerequisite type.</doc>
9459       <return-value transfer-ownership="none">
9460         <type name="none" c:type="void"/>
9461       </return-value>
9462       <parameters>
9463         <parameter name="interface_type" transfer-ownership="none">
9464           <doc xml:whitespace="preserve">#GType value of an interface type.</doc>
9465           <type name="GType" c:type="GType"/>
9466         </parameter>
9467         <parameter name="prerequisite_type" transfer-ownership="none">
9468           <doc xml:whitespace="preserve">#GType value of an interface or instantiatable type.</doc>
9469           <type name="GType" c:type="GType"/>
9470         </parameter>
9471       </parameters>
9472     </function>
9473     <function name="type_interface_get_plugin"
9474               c:identifier="g_type_interface_get_plugin"
9475               introspectable="0">
9476       <doc xml:whitespace="preserve">Returns the #GTypePlugin structure for the dynamic interface
9477 have a #GTypePlugin structure. See g_type_add_interface_dynamic().
9478 of @instance_type.</doc>
9479       <return-value>
9480         <doc xml:whitespace="preserve">the #GTypePlugin for the dynamic interface @interface_type</doc>
9481         <type name="TypePlugin" c:type="GTypePlugin*"/>
9482       </return-value>
9483       <parameters>
9484         <parameter name="instance_type" transfer-ownership="none">
9485           <doc xml:whitespace="preserve">the #GType value of an instantiatable type.</doc>
9486           <type name="GType" c:type="GType"/>
9487         </parameter>
9488         <parameter name="interface_type" transfer-ownership="none">
9489           <doc xml:whitespace="preserve">the #GType value of an interface type.</doc>
9490           <type name="GType" c:type="GType"/>
9491         </parameter>
9492       </parameters>
9493     </function>
9494     <function name="type_interface_peek"
9495               c:identifier="g_type_interface_peek"
9496               introspectable="0">
9497       <doc xml:whitespace="preserve">Returns the #GTypeInterface structure of an interface to which the
9498 passed in class conforms.
9499 by @instance_class, %NULL otherwise</doc>
9500       <return-value>
9501         <doc xml:whitespace="preserve">The GTypeInterface structure of iface_type if implemented</doc>
9502         <type name="gpointer" c:type="gpointer"/>
9503       </return-value>
9504       <parameters>
9505         <parameter name="instance_class" transfer-ownership="none">
9506           <doc xml:whitespace="preserve">A #GTypeClass structure.</doc>
9507           <type name="gpointer" c:type="gpointer"/>
9508         </parameter>
9509         <parameter name="iface_type" transfer-ownership="none">
9510           <doc xml:whitespace="preserve">An interface ID which this class conforms to.</doc>
9511           <type name="GType" c:type="GType"/>
9512         </parameter>
9513       </parameters>
9514     </function>
9515     <function name="type_interface_peek_parent"
9516               c:identifier="g_type_interface_peek_parent"
9517               introspectable="0">
9518       <doc xml:whitespace="preserve">Returns the corresponding #GTypeInterface structure of the parent type
9519 of the instance type to which @g_iface belongs. This is useful when
9520 deriving the implementation of an interface from the parent type and
9521 then possibly overriding some methods.
9522 type of the instance type to which @g_iface belongs, or
9523 %NULL if the parent type doesn't conform to the interface.</doc>
9524       <return-value>
9525         <doc xml:whitespace="preserve">The corresponding #GTypeInterface structure of the parent</doc>
9526         <type name="gpointer" c:type="gpointer"/>
9527       </return-value>
9528       <parameters>
9529         <parameter name="g_iface" transfer-ownership="none">
9530           <doc xml:whitespace="preserve">A #GTypeInterface structure.</doc>
9531           <type name="gpointer" c:type="gpointer"/>
9532         </parameter>
9533       </parameters>
9534     </function>
9535     <function name="type_interface_prerequisites"
9536               c:identifier="g_type_interface_prerequisites"
9537               version="2.2">
9538       <doc xml:whitespace="preserve">Returns the prerequisites of an interfaces type.
9539 the prerequisites of @interface_type</doc>
9540       <return-value transfer-ownership="none">
9541         <doc xml:whitespace="preserve">a newly-allocated zero-terminated array of #GType containing</doc>
9542         <type name="GType" c:type="GType*"/>
9543       </return-value>
9544       <parameters>
9545         <parameter name="interface_type" transfer-ownership="none">
9546           <doc xml:whitespace="preserve">an interface type</doc>
9547           <type name="GType" c:type="GType"/>
9548         </parameter>
9549         <parameter name="n_prerequisites" transfer-ownership="none">
9550           <doc xml:whitespace="preserve">location to return the number of prerequisites, or %NULL</doc>
9551           <type name="guint" c:type="guint*"/>
9552         </parameter>
9553       </parameters>
9554     </function>
9555     <function name="type_interfaces" c:identifier="g_type_interfaces">
9556       <doc xml:whitespace="preserve">Return a newly allocated and 0-terminated array of type IDs, listing the
9557 interface types that @type conforms to. The return value has to be
9558 g_free()ed after use.</doc>
9559       <return-value transfer-ownership="none">
9560         <doc xml:whitespace="preserve">Newly allocated and 0-terminated array of interface types.</doc>
9561         <type name="GType" c:type="GType*"/>
9562       </return-value>
9563       <parameters>
9564         <parameter name="type" transfer-ownership="none">
9565           <doc xml:whitespace="preserve">The type to list interface types for.</doc>
9566           <type name="GType" c:type="GType"/>
9567         </parameter>
9568         <parameter name="n_interfaces" transfer-ownership="none">
9569           <doc xml:whitespace="preserve">Optional #guint pointer to contain the number of interface types.</doc>
9570           <type name="guint" c:type="guint*"/>
9571         </parameter>
9572       </parameters>
9573     </function>
9574     <function name="type_is_a" c:identifier="g_type_is_a">
9575       <doc xml:whitespace="preserve">If @is_a_type is a derivable type, check whether @type is a
9576 descendant of @is_a_type.  If @is_a_type is an interface, check
9577 whether @type conforms to it.</doc>
9578       <return-value transfer-ownership="none">
9579         <doc xml:whitespace="preserve">%TRUE if @type is_a @is_a_type holds true.</doc>
9580         <type name="gboolean" c:type="gboolean"/>
9581       </return-value>
9582       <parameters>
9583         <parameter name="type" transfer-ownership="none">
9584           <doc xml:whitespace="preserve">Type to check anchestry for.</doc>
9585           <type name="GType" c:type="GType"/>
9586         </parameter>
9587         <parameter name="is_a_type" transfer-ownership="none">
9588           <doc xml:whitespace="preserve">Possible anchestor of @type or interface @type could conform to.</doc>
9589           <type name="GType" c:type="GType"/>
9590         </parameter>
9591       </parameters>
9592     </function>
9593     <function name="type_name" c:identifier="g_type_name">
9594       <doc xml:whitespace="preserve">Get the unique name that is assigned to a type ID.  Note that this
9595 function (like all other GType API) cannot cope with invalid type
9596 IDs. %G_TYPE_INVALID may be passed to this function, as may be any
9597 other validly registered type ID, but randomized type IDs should
9598 not be passed in and will most likely lead to a crash.</doc>
9599       <return-value transfer-ownership="none">
9600         <doc xml:whitespace="preserve">Static type name or %NULL.</doc>
9601         <type name="utf8" c:type="gchar*"/>
9602       </return-value>
9603       <parameters>
9604         <parameter name="type" transfer-ownership="none">
9605           <doc xml:whitespace="preserve">Type to return name for.</doc>
9606           <type name="GType" c:type="GType"/>
9607         </parameter>
9608       </parameters>
9609     </function>
9610     <function name="type_name_from_class"
9611               c:identifier="g_type_name_from_class">
9612       <return-value transfer-ownership="none">
9613         <type name="utf8" c:type="gchar*"/>
9614       </return-value>
9615       <parameters>
9616         <parameter name="g_class" transfer-ownership="none">
9617           <type name="TypeClass" c:type="GTypeClass*"/>
9618         </parameter>
9619       </parameters>
9620     </function>
9621     <function name="type_name_from_instance"
9622               c:identifier="g_type_name_from_instance">
9623       <return-value transfer-ownership="none">
9624         <type name="utf8" c:type="gchar*"/>
9625       </return-value>
9626       <parameters>
9627         <parameter name="instance" transfer-ownership="none">
9628           <type name="TypeInstance" c:type="GTypeInstance*"/>
9629         </parameter>
9630       </parameters>
9631     </function>
9632     <function name="type_next_base" c:identifier="g_type_next_base">
9633       <doc xml:whitespace="preserve">Given a @leaf_type and a @root_type which is contained in its
9634 anchestry, return the type that @root_type is the immediate parent
9635 of.  In other words, this function determines the type that is
9636 derived directly from @root_type which is also a base class of
9637 be used to determine the types and order in which the leaf type is
9638 descended from the root type.</doc>
9639       <return-value transfer-ownership="none">
9640         <doc xml:whitespace="preserve">Immediate child of @root_type and anchestor of @leaf_type.</doc>
9641         <type name="GType" c:type="GType"/>
9642       </return-value>
9643       <parameters>
9644         <parameter name="leaf_type" transfer-ownership="none">
9645           <doc xml:whitespace="preserve">Descendant of @root_type and the type to be returned.</doc>
9646           <type name="GType" c:type="GType"/>
9647         </parameter>
9648         <parameter name="root_type" transfer-ownership="none">
9649           <doc xml:whitespace="preserve">Immediate parent of the returned type.</doc>
9650           <type name="GType" c:type="GType"/>
9651         </parameter>
9652       </parameters>
9653     </function>
9654     <function name="type_parent" c:identifier="g_type_parent">
9655       <doc xml:whitespace="preserve">Return the direct parent type of the passed in type.  If the passed
9656 in type has no parent, i.e. is a fundamental type, 0 is returned.</doc>
9657       <return-value transfer-ownership="none">
9658         <doc xml:whitespace="preserve">The parent type.</doc>
9659         <type name="GType" c:type="GType"/>
9660       </return-value>
9661       <parameters>
9662         <parameter name="type" transfer-ownership="none">
9663           <doc xml:whitespace="preserve">The derived type.</doc>
9664           <type name="GType" c:type="GType"/>
9665         </parameter>
9666       </parameters>
9667     </function>
9668     <function name="type_qname" c:identifier="g_type_qname">
9669       <doc xml:whitespace="preserve">Get the corresponding quark of the type IDs name.</doc>
9670       <return-value transfer-ownership="none">
9671         <doc xml:whitespace="preserve">The type names quark or 0.</doc>
9672         <type name="GLib.Quark" c:type="GQuark"/>
9673       </return-value>
9674       <parameters>
9675         <parameter name="type" transfer-ownership="none">
9676           <doc xml:whitespace="preserve">Type to return quark of type name for.</doc>
9677           <type name="GType" c:type="GType"/>
9678         </parameter>
9679       </parameters>
9680     </function>
9681     <function name="type_query" c:identifier="g_type_query">
9682       <doc xml:whitespace="preserve">Queries the type system for information about a specific type.
9683 This function will fill in a user-provided structure to hold
9684 type-specific information. If an invalid #GType is passed in, the
9685 #GTypeQuery structure should be considered constant and have to be
9686 left untouched.</doc>
9687       <return-value transfer-ownership="none">
9688         <type name="none" c:type="void"/>
9689       </return-value>
9690       <parameters>
9691         <parameter name="type" transfer-ownership="none">
9692           <doc xml:whitespace="preserve">the #GType value of a static, classed type.</doc>
9693           <type name="GType" c:type="GType"/>
9694         </parameter>
9695         <parameter name="query" transfer-ownership="none">
9696           <doc xml:whitespace="preserve">A user provided structure that is filled in with constant values upon success.</doc>
9697           <type name="TypeQuery" c:type="GTypeQuery*"/>
9698         </parameter>
9699       </parameters>
9700     </function>
9701     <function name="type_register_dynamic"
9702               c:identifier="g_type_register_dynamic">
9703       <doc xml:whitespace="preserve">Registers @type_name as the name of a new dynamic type derived from
9704 #GTypePlugin structure pointed to by @plugin to manage the type and its
9705 instances (if not abstract).  The value of @flags determines the nature
9706 (e.g. abstract or not) of the type.</doc>
9707       <return-value transfer-ownership="none">
9708         <doc xml:whitespace="preserve">The new type identifier or #G_TYPE_INVALID if registration failed.</doc>
9709         <type name="GType" c:type="GType"/>
9710       </return-value>
9711       <parameters>
9712         <parameter name="parent_type" transfer-ownership="none">
9713           <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
9714           <type name="GType" c:type="GType"/>
9715         </parameter>
9716         <parameter name="type_name" transfer-ownership="none">
9717           <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
9718           <type name="utf8" c:type="gchar*"/>
9719         </parameter>
9720         <parameter name="plugin" transfer-ownership="none">
9721           <doc xml:whitespace="preserve">The #GTypePlugin structure to retrieve the #GTypeInfo from.</doc>
9722           <type name="TypePlugin" c:type="GTypePlugin*"/>
9723         </parameter>
9724         <parameter name="flags" transfer-ownership="none">
9725           <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
9726           <type name="TypeFlags" c:type="GTypeFlags"/>
9727         </parameter>
9728       </parameters>
9729     </function>
9730     <function name="type_register_fundamental"
9731               c:identifier="g_type_register_fundamental">
9732       <doc xml:whitespace="preserve">Registers @type_id as the predefined identifier and @type_name as the
9733 name of a fundamental type.  The type system uses the information
9734 contained in the #GTypeInfo structure pointed to by @info and the
9735 #GTypeFundamentalInfo structure pointed to by @finfo to manage the
9736 type and its instances.  The value of @flags determines additional
9737 characteristics of the fundamental type.</doc>
9738       <return-value transfer-ownership="none">
9739         <doc xml:whitespace="preserve">The predefined type identifier.</doc>
9740         <type name="GType" c:type="GType"/>
9741       </return-value>
9742       <parameters>
9743         <parameter name="type_id" transfer-ownership="none">
9744           <doc xml:whitespace="preserve">A predefined type identifier.</doc>
9745           <type name="GType" c:type="GType"/>
9746         </parameter>
9747         <parameter name="type_name" transfer-ownership="none">
9748           <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
9749           <type name="utf8" c:type="gchar*"/>
9750         </parameter>
9751         <parameter name="info" transfer-ownership="none">
9752           <doc xml:whitespace="preserve">The #GTypeInfo structure for this type.</doc>
9753           <type name="TypeInfo" c:type="GTypeInfo*"/>
9754         </parameter>
9755         <parameter name="finfo" transfer-ownership="none">
9756           <doc xml:whitespace="preserve">The #GTypeFundamentalInfo structure for this type.</doc>
9757           <type name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo*"/>
9758         </parameter>
9759         <parameter name="flags" transfer-ownership="none">
9760           <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
9761           <type name="TypeFlags" c:type="GTypeFlags"/>
9762         </parameter>
9763       </parameters>
9764     </function>
9765     <function name="type_register_static"
9766               c:identifier="g_type_register_static">
9767       <doc xml:whitespace="preserve">Registers @type_name as the name of a new static type derived from
9768 #GTypeInfo structure pointed to by @info to manage the type and its
9769 instances (if not abstract).  The value of @flags determines the nature
9770 (e.g. abstract or not) of the type.</doc>
9771       <return-value transfer-ownership="none">
9772         <doc xml:whitespace="preserve">The new type identifier.</doc>
9773         <type name="GType" c:type="GType"/>
9774       </return-value>
9775       <parameters>
9776         <parameter name="parent_type" transfer-ownership="none">
9777           <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
9778           <type name="GType" c:type="GType"/>
9779         </parameter>
9780         <parameter name="type_name" transfer-ownership="none">
9781           <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
9782           <type name="utf8" c:type="gchar*"/>
9783         </parameter>
9784         <parameter name="info" transfer-ownership="none">
9785           <doc xml:whitespace="preserve">The #GTypeInfo structure for this type.</doc>
9786           <type name="TypeInfo" c:type="GTypeInfo*"/>
9787         </parameter>
9788         <parameter name="flags" transfer-ownership="none">
9789           <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
9790           <type name="TypeFlags" c:type="GTypeFlags"/>
9791         </parameter>
9792       </parameters>
9793     </function>
9794     <function name="type_register_static_simple"
9795               c:identifier="g_type_register_static_simple"
9796               version="2.12"
9797               introspectable="0">
9798       <doc xml:whitespace="preserve">Registers @type_name as the name of a new static type derived from
9799 abstract or not) of the type. It works by filling a #GTypeInfo
9800 struct and calling g_type_register_static().</doc>
9801       <return-value transfer-ownership="none">
9802         <doc xml:whitespace="preserve">The new type identifier.</doc>
9803         <type name="GType" c:type="GType"/>
9804       </return-value>
9805       <parameters>
9806         <parameter name="parent_type" transfer-ownership="none">
9807           <doc xml:whitespace="preserve">Type from which this type will be derived.</doc>
9808           <type name="GType" c:type="GType"/>
9809         </parameter>
9810         <parameter name="type_name" transfer-ownership="none">
9811           <doc xml:whitespace="preserve">0-terminated string used as the name of the new type.</doc>
9812           <type name="utf8" c:type="gchar*"/>
9813         </parameter>
9814         <parameter name="class_size" transfer-ownership="none">
9815           <doc xml:whitespace="preserve">Size of the class structure (see #GTypeInfo)</doc>
9816           <type name="guint" c:type="guint"/>
9817         </parameter>
9818         <parameter name="class_init" transfer-ownership="none">
9819           <doc xml:whitespace="preserve">Location of the class initialization function (see #GTypeInfo)</doc>
9820           <type name="ClassInitFunc" c:type="GClassInitFunc"/>
9821         </parameter>
9822         <parameter name="instance_size" transfer-ownership="none">
9823           <doc xml:whitespace="preserve">Size of the instance structure (see #GTypeInfo)</doc>
9824           <type name="guint" c:type="guint"/>
9825         </parameter>
9826         <parameter name="instance_init" transfer-ownership="none">
9827           <doc xml:whitespace="preserve">Location of the instance initialization function (see #GTypeInfo)</doc>
9828           <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
9829         </parameter>
9830         <parameter name="flags" transfer-ownership="none">
9831           <doc xml:whitespace="preserve">Bitwise combination of #GTypeFlags values.</doc>
9832           <type name="TypeFlags" c:type="GTypeFlags"/>
9833         </parameter>
9834       </parameters>
9835     </function>
9836     <function name="type_remove_class_cache_func"
9837               c:identifier="g_type_remove_class_cache_func"
9838               introspectable="0">
9839       <doc xml:whitespace="preserve">Removes a previously installed #GTypeClassCacheFunc. The cache
9840 maintained by @cache_func has to be empty when calling
9841 g_type_remove_class_cache_func() to avoid leaks.</doc>
9842       <return-value transfer-ownership="none">
9843         <type name="none" c:type="void"/>
9844       </return-value>
9845       <parameters>
9846         <parameter name="cache_data" transfer-ownership="none">
9847           <doc xml:whitespace="preserve">data that was given when adding @cache_func</doc>
9848           <type name="gpointer" c:type="gpointer"/>
9849         </parameter>
9850         <parameter name="cache_func" transfer-ownership="none">
9851           <doc xml:whitespace="preserve">a #GTypeClassCacheFunc</doc>
9852           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
9853         </parameter>
9854       </parameters>
9855     </function>
9856     <function name="type_remove_interface_check"
9857               c:identifier="g_type_remove_interface_check"
9858               version="2.4"
9859               introspectable="0">
9860       <doc xml:whitespace="preserve">Removes an interface check function added with
9861 g_type_add_interface_check().</doc>
9862       <return-value transfer-ownership="none">
9863         <type name="none" c:type="void"/>
9864       </return-value>
9865       <parameters>
9866         <parameter name="check_data" transfer-ownership="none">
9867           <doc xml:whitespace="preserve">callback data passed to g_type_add_interface_check()</doc>
9868           <type name="gpointer" c:type="gpointer"/>
9869         </parameter>
9870         <parameter name="check_func" transfer-ownership="none">
9871           <doc xml:whitespace="preserve">callback function passed to g_type_add_interface_check()</doc>
9872           <type name="TypeInterfaceCheckFunc"
9873                 c:type="GTypeInterfaceCheckFunc"/>
9874         </parameter>
9875       </parameters>
9876     </function>
9877     <function name="type_set_qdata" c:identifier="g_type_set_qdata">
9878       <doc xml:whitespace="preserve">Attaches arbitrary data to a type.</doc>
9879       <return-value transfer-ownership="none">
9880         <type name="none" c:type="void"/>
9881       </return-value>
9882       <parameters>
9883         <parameter name="type" transfer-ownership="none">
9884           <doc xml:whitespace="preserve">a #GType</doc>
9885           <type name="GType" c:type="GType"/>
9886         </parameter>
9887         <parameter name="quark" transfer-ownership="none">
9888           <doc xml:whitespace="preserve">a #GQuark id to identify the data</doc>
9889           <type name="GLib.Quark" c:type="GQuark"/>
9890         </parameter>
9891         <parameter name="data" transfer-ownership="none">
9892           <doc xml:whitespace="preserve">the data</doc>
9893           <type name="gpointer" c:type="gpointer"/>
9894         </parameter>
9895       </parameters>
9896     </function>
9897     <function name="type_test_flags" c:identifier="g_type_test_flags">
9898       <return-value transfer-ownership="none">
9899         <type name="gboolean" c:type="gboolean"/>
9900       </return-value>
9901       <parameters>
9902         <parameter name="type" transfer-ownership="none">
9903           <type name="GType" c:type="GType"/>
9904         </parameter>
9905         <parameter name="flags" transfer-ownership="none">
9906           <type name="guint" c:type="guint"/>
9907         </parameter>
9908       </parameters>
9909     </function>
9910     <function name="type_value_table_peek"
9911               c:identifier="g_type_value_table_peek"
9912               introspectable="0">
9913       <doc xml:whitespace="preserve">Returns the location of the #GTypeValueTable associated with @type.
9914 &lt;emphasis&gt;Note that this function should only be used from source code
9915 that implements or has internal knowledge of the implementation of
9916 %NULL if there is no #GTypeValueTable associated with @type.</doc>
9917       <return-value>
9918         <doc xml:whitespace="preserve">Location of the #GTypeValueTable associated with @type or</doc>
9919         <type name="TypeValueTable" c:type="GTypeValueTable*"/>
9920       </return-value>
9921       <parameters>
9922         <parameter name="type" transfer-ownership="none">
9923           <doc xml:whitespace="preserve">A #GType value.</doc>
9924           <type name="GType" c:type="GType"/>
9925         </parameter>
9926       </parameters>
9927     </function>
9928     <function name="value_c_init" c:identifier="g_value_c_init">
9929       <return-value transfer-ownership="none">
9930         <type name="none" c:type="void"/>
9931       </return-value>
9932     </function>
9933     <function name="value_register_transform_func"
9934               c:identifier="g_value_register_transform_func"
9935               introspectable="0">
9936       <doc xml:whitespace="preserve">Registers a value transformation function for use in g_value_transform().
9937 A previously registered transformation function for @src_type and @dest_type
9938 will be replaced.</doc>
9939       <return-value transfer-ownership="none">
9940         <type name="none" c:type="void"/>
9941       </return-value>
9942       <parameters>
9943         <parameter name="src_type" transfer-ownership="none">
9944           <doc xml:whitespace="preserve">Source type.</doc>
9945           <type name="GType" c:type="GType"/>
9946         </parameter>
9947         <parameter name="dest_type" transfer-ownership="none">
9948           <doc xml:whitespace="preserve">Target type.</doc>
9949           <type name="GType" c:type="GType"/>
9950         </parameter>
9951         <parameter name="transform_func" transfer-ownership="none">
9952           <doc xml:whitespace="preserve">a function which transforms values of type @src_type into value of type @dest_type</doc>
9953           <type name="ValueTransform" c:type="GValueTransform"/>
9954         </parameter>
9955       </parameters>
9956     </function>
9957     <function name="value_transforms_init"
9958               c:identifier="g_value_transforms_init">
9959       <return-value transfer-ownership="none">
9960         <type name="none" c:type="void"/>
9961       </return-value>
9962     </function>
9963     <function name="value_type_compatible"
9964               c:identifier="g_value_type_compatible">
9965       <doc xml:whitespace="preserve">Returns whether a #GValue of type @src_type can be copied into
9966 a #GValue of type @dest_type.</doc>
9967       <return-value transfer-ownership="none">
9968         <doc xml:whitespace="preserve">%TRUE if g_value_copy() is possible with @src_type and @dest_type.</doc>
9969         <type name="gboolean" c:type="gboolean"/>
9970       </return-value>
9971       <parameters>
9972         <parameter name="src_type" transfer-ownership="none">
9973           <doc xml:whitespace="preserve">source type to be copied.</doc>
9974           <type name="GType" c:type="GType"/>
9975         </parameter>
9976         <parameter name="dest_type" transfer-ownership="none">
9977           <doc xml:whitespace="preserve">destination type for copying.</doc>
9978           <type name="GType" c:type="GType"/>
9979         </parameter>
9980       </parameters>
9981     </function>
9982     <function name="value_type_transformable"
9983               c:identifier="g_value_type_transformable">
9984       <doc xml:whitespace="preserve">Check whether g_value_transform() is able to transform values
9985 of type @src_type into values of type @dest_type.</doc>
9986       <return-value transfer-ownership="none">
9987         <doc xml:whitespace="preserve">%TRUE if the transformation is possible, %FALSE otherwise.</doc>
9988         <type name="gboolean" c:type="gboolean"/>
9989       </return-value>
9990       <parameters>
9991         <parameter name="src_type" transfer-ownership="none">
9992           <doc xml:whitespace="preserve">Source type.</doc>
9993           <type name="GType" c:type="GType"/>
9994         </parameter>
9995         <parameter name="dest_type" transfer-ownership="none">
9996           <doc xml:whitespace="preserve">Target type.</doc>
9997           <type name="GType" c:type="GType"/>
9998         </parameter>
9999       </parameters>
10000     </function>
10001     <function name="value_types_init" c:identifier="g_value_types_init">
10002       <return-value transfer-ownership="none">
10003         <type name="none" c:type="void"/>
10004       </return-value>
10005     </function>
10006     <function name="variant_get_gtype"
10007               c:identifier="g_variant_get_gtype"
10008               version="2.24"
10009               deprecated="2.26">
10010       <return-value transfer-ownership="none">
10011         <type name="GType" c:type="GType"/>
10012       </return-value>
10013     </function>
10014     <function name="variant_type_get_gtype"
10015               c:identifier="g_variant_type_get_gtype">
10016       <return-value transfer-ownership="none">
10017         <type name="GType" c:type="GType"/>
10018       </return-value>
10019     </function>
10020   </namespace>
10021 </repository>