]> gitweb.factorcode.org Git - factor.git/blob - basis/gobject/GObject-2.0.gir
Merge remote branch 'origin/native-image-loader' into my-gtk
[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.0"
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:prefix="g">
16     <alias name="SignalCMarshaller"
17            target="ClosureMarshal"
18            c:type="GSignalCMarshaller"/>
19     <alias name="Strv" target="none" c:type="GStrv"/>
20     <alias name="chararray" target="none" c:type="gchararray"/>
21     <glib:boxed c:type="GArray"
22                 glib:name="Array"
23                 glib:type-name="GArray"
24                 glib:get-type="g_array_get_type">
25     </glib:boxed>
26     <callback name="BaseFinalizeFunc"
27               c:type="GBaseFinalizeFunc"
28               doc="A callback function used by the type system to finalize those portions
29 of a derived types class structure that were setup from the corresponding
30 GBaseInitFunc() function. Class finalization basically works the inverse
31 way in which class intialization is performed.
32 See GClassInitFunc() for a discussion of the class intialization process.">
33       <return-value transfer-ownership="none">
34         <type name="none" c:type="void"/>
35       </return-value>
36       <parameters>
37         <parameter name="g_class" transfer-ownership="none">
38           <type name="any" c:type="gpointer"/>
39         </parameter>
40       </parameters>
41     </callback>
42     <callback name="BaseInitFunc"
43               c:type="GBaseInitFunc"
44               doc="A callback function used by the type system to do base initialization
45 of the class structures of derived types. It is called as part of the
46 initialization process of all derived classes and should reallocate
47 or reset all dynamic class members copied over from the parent class.
48 For example, class members (such as strings) that are not sufficiently
49 handled by a plain memory copy of the parent class into the derived class
50 have to be altered. See GClassInitFunc() for a discussion of the class
51 intialization process.">
52       <return-value transfer-ownership="none">
53         <type name="none" c:type="void"/>
54       </return-value>
55       <parameters>
56         <parameter name="g_class" transfer-ownership="none">
57           <type name="any" c:type="gpointer"/>
58         </parameter>
59       </parameters>
60     </callback>
61     <callback name="BoxedCopyFunc"
62               c:type="GBoxedCopyFunc"
63               doc="This function is provided by the user and should produce a copy of the passed
64 in boxed structure.">
65       <return-value transfer-ownership="none">
66         <type name="any" c:type="gpointer"/>
67       </return-value>
68       <parameters>
69         <parameter name="boxed" transfer-ownership="none">
70           <type name="any" c:type="gpointer"/>
71         </parameter>
72       </parameters>
73     </callback>
74     <callback name="BoxedFreeFunc"
75               c:type="GBoxedFreeFunc"
76               doc="This function is provided by the user and should free the boxed
77 structure passed.">
78       <return-value transfer-ownership="none">
79         <type name="none" c:type="void"/>
80       </return-value>
81       <parameters>
82         <parameter name="boxed" transfer-ownership="none">
83           <type name="any" c:type="gpointer"/>
84         </parameter>
85       </parameters>
86     </callback>
87     <glib:boxed c:type="GByteArray"
88                 glib:name="ByteArray"
89                 glib:type-name="GByteArray"
90                 glib:get-type="g_byte_array_get_type">
91     </glib:boxed>
92     <record name="CClosure"
93             c:type="GCClosure"
94             doc="A #GCClosure is a specialization of #GClosure for C function callbacks.">
95       <field name="closure" writable="1">
96         <type name="Closure" c:type="GClosure"/>
97       </field>
98       <field name="callback" writable="1">
99         <type name="any" c:type="gpointer"/>
100       </field>
101     </record>
102     <callback name="Callback"
103               c:type="GCallback"
104               doc="The type used for callback functions in structure definitions and function
105 signatures. This doesn&apos;t mean that all callback functions must take no
106 parameters and return void. The required signature of a callback function
107 is determined by the context in which is used (e.g. the signal to which it
108 is connected). Use G_CALLBACK() to cast the callback function to a #GCallback.">
109       <return-value transfer-ownership="none">
110         <type name="none" c:type="void"/>
111       </return-value>
112     </callback>
113     <callback name="ClassFinalizeFunc"
114               c:type="GClassFinalizeFunc"
115               doc="A callback function used by the type system to finalize a class.
116 This function is rarely needed, as dynamically allocated class resources
117 should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
118 Also, specification of a GClassFinalizeFunc() in the #GTypeInfo
119 structure of a static type is invalid, because classes of static types
120 will never be finalized (they are artificially kept alive when their
121 reference count drops to zero).">
122       <return-value transfer-ownership="none">
123         <type name="none" c:type="void"/>
124       </return-value>
125       <parameters>
126         <parameter name="g_class" transfer-ownership="none">
127           <type name="any" c:type="gpointer"/>
128         </parameter>
129         <parameter name="class_data" transfer-ownership="none">
130           <type name="any" c:type="gpointer"/>
131         </parameter>
132       </parameters>
133     </callback>
134     <callback name="ClassInitFunc"
135               c:type="GClassInitFunc"
136               doc="A callback function used by the type system to initialize the class
137 of a specific type. This function should initialize all static class
138 members.
139 The initialization process of a class involves:
140 &lt;itemizedlist&gt;
141 &lt;listitem&gt;&lt;para&gt;
142 1 - Copying common members from the parent class over to the
143 derived class structure.
144 &lt;/para&gt;&lt;/listitem&gt;
145 &lt;listitem&gt;&lt;para&gt;
146 2 -  Zero initialization of the remaining members not copied
147 over from the parent class.
148 &lt;/para&gt;&lt;/listitem&gt;
149 &lt;listitem&gt;&lt;para&gt;
150 3 - Invocation of the GBaseInitFunc() initializers of all parent
151 types and the class&apos; type.
152 &lt;/para&gt;&lt;/listitem&gt;
153 &lt;listitem&gt;&lt;para&gt;
154 4 - Invocation of the class&apos; GClassInitFunc() initializer.
155 &lt;/para&gt;&lt;/listitem&gt;
156 &lt;/itemizedlist&gt;
157 Since derived classes are partially initialized through a memory copy
158 of the parent class, the general rule is that GBaseInitFunc() and
159 GBaseFinalizeFunc() should take care of necessary reinitialization
160 and release of those class members that were introduced by the type
161 that specified these GBaseInitFunc()/GBaseFinalizeFunc().
162 GClassInitFunc() should only care about initializing static
163 class members, while dynamic class members (such as allocated strings
164 or reference counted resources) are better handled by a GBaseInitFunc()
165 for this type, so proper initialization of the dynamic class members
166 is performed for class initialization of derived types as well.
167 An example may help to correspond the intend of the different class
168 initializers:
169 |[
170 typedef struct {
171 GObjectClass parent_class;
172 gint         static_integer;
173 gchar       *dynamic_string;
174 } TypeAClass;
175 static void
176 type_a_base_class_init (TypeAClass *class)
177 {
178 class-&gt;dynamic_string = g_strdup (&quot;some string&quot;);
179 }
180 static void
181 type_a_base_class_finalize (TypeAClass *class)
182 {
183 g_free (class-&gt;dynamic_string);
184 }
185 static void
186 type_a_class_init (TypeAClass *class)
187 {
188 class-&gt;static_integer = 42;
189 }
190 typedef struct {
191 TypeAClass   parent_class;
192 gfloat       static_float;
193 GString     *dynamic_gstring;
194 } TypeBClass;
195 static void
196 type_b_base_class_init (TypeBClass *class)
197 {
198 class-&gt;dynamic_gstring = g_string_new (&quot;some other string&quot;);
199 }
200 static void
201 type_b_base_class_finalize (TypeBClass *class)
202 {
203 g_string_free (class-&gt;dynamic_gstring);
204 }
205 static void
206 type_b_class_init (TypeBClass *class)
207 {
208 class-&gt;static_float = 3.14159265358979323846;
209 }
210 ]|
211 Initialization of TypeBClass will first cause initialization of
212 TypeAClass (derived classes reference their parent classes, see
213 g_type_class_ref() on this).
214 Initialization of TypeAClass roughly involves zero-initializing its fields,
215 then calling its GBaseInitFunc() type_a_base_class_init() to allocate
216 its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
217 type_a_class_init() to initialize its static members (static_integer).
218 The first step in the initialization process of TypeBClass is then
219 a plain memory copy of the contents of TypeAClass into TypeBClass and
220 zero-initialization of the remaining fields in TypeBClass.
221 The dynamic members of TypeAClass within TypeBClass now need
222 reinitialization which is performed by calling type_a_base_class_init()
223 with an argument of TypeBClass.
224 After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init()
225 is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
226 and finally the GClassInitFunc() of TypeBClass, type_b_class_init(),
227 is called to complete the initialization process with the static members
228 (static_float).
229 Corresponding finalization counter parts to the GBaseInitFunc() functions
230 have to be provided to release allocated resources at class finalization
231 time.">
232       <return-value transfer-ownership="none">
233         <type name="none" c:type="void"/>
234       </return-value>
235       <parameters>
236         <parameter name="g_class" transfer-ownership="none">
237           <type name="any" c:type="gpointer"/>
238         </parameter>
239         <parameter name="class_data" transfer-ownership="none">
240           <type name="any" c:type="gpointer"/>
241         </parameter>
242       </parameters>
243     </callback>
244     <record name="Closure"
245             c:type="GClosure"
246             doc="g_closure_invoke()
247 g_closure_invalidate()
248 A #GClosure represents a callback supplied by the programmer."
249             glib:type-name="GClosure"
250             glib:get-type="g_closure_get_type">
251       <field name="ref_count" writable="1" bits="15">
252         <type name="uint" c:type="guint"/>
253       </field>
254       <field name="meta_marshal" writable="1" bits="1">
255         <type name="uint" c:type="guint"/>
256       </field>
257       <field name="n_guards" writable="1" bits="1">
258         <type name="uint" c:type="guint"/>
259       </field>
260       <field name="n_fnotifiers" writable="1" bits="2">
261         <type name="uint" c:type="guint"/>
262       </field>
263       <field name="n_inotifiers" writable="1" bits="8">
264         <type name="uint" c:type="guint"/>
265       </field>
266       <field name="in_inotify" writable="1" bits="1">
267         <type name="uint" c:type="guint"/>
268       </field>
269       <field name="floating" writable="1" bits="1">
270         <type name="uint" c:type="guint"/>
271       </field>
272       <field name="derivative_flag" writable="1" bits="1">
273         <type name="uint" c:type="guint"/>
274       </field>
275       <field name="in_marshal" writable="1" bits="1">
276         <type name="uint" c:type="guint"/>
277       </field>
278       <field name="is_invalid" writable="1" bits="1">
279         <type name="uint" c:type="guint"/>
280       </field>
281       <field name="marshal">
282         <type name="any" c:type="pointer"/>
283       </field>
284       <field name="data" writable="1">
285         <type name="any" c:type="gpointer"/>
286       </field>
287       <field name="notifiers" writable="1">
288         <type name="ClosureNotifyData" c:type="GClosureNotifyData*"/>
289       </field>
290       <constructor name="new_simple" c:identifier="g_closure_new_simple">
291         <return-value transfer-ownership="full">
292           <type name="Closure" c:type="GClosure*"/>
293         </return-value>
294         <parameters>
295           <parameter name="sizeof_closure" transfer-ownership="none">
296             <type name="uint" c:type="guint"/>
297           </parameter>
298           <parameter name="data" transfer-ownership="none">
299             <type name="any" c:type="gpointer"/>
300           </parameter>
301         </parameters>
302       </constructor>
303       <constructor name="new_object" c:identifier="g_closure_new_object">
304         <return-value transfer-ownership="full">
305           <type name="Closure" c:type="GClosure*"/>
306         </return-value>
307         <parameters>
308           <parameter name="sizeof_closure" transfer-ownership="none">
309             <type name="uint" c:type="guint"/>
310           </parameter>
311           <parameter name="object" transfer-ownership="none">
312             <type name="Object" c:type="GObject*"/>
313           </parameter>
314         </parameters>
315       </constructor>
316       <method name="ref" c:identifier="g_closure_ref">
317         <return-value transfer-ownership="full">
318           <type name="Closure" c:type="GClosure*"/>
319         </return-value>
320       </method>
321       <method name="sink" c:identifier="g_closure_sink">
322         <return-value transfer-ownership="none">
323           <type name="none" c:type="void"/>
324         </return-value>
325       </method>
326       <method name="unref" c:identifier="g_closure_unref">
327         <return-value transfer-ownership="none">
328           <type name="none" c:type="void"/>
329         </return-value>
330       </method>
331       <method name="add_finalize_notifier"
332               c:identifier="g_closure_add_finalize_notifier">
333         <return-value transfer-ownership="none">
334           <type name="none" c:type="void"/>
335         </return-value>
336         <parameters>
337           <parameter name="notify_data" transfer-ownership="none">
338             <type name="any" c:type="gpointer"/>
339           </parameter>
340           <parameter name="notify_func" transfer-ownership="none" scope="call">
341             <type name="ClosureNotify" c:type="GClosureNotify"/>
342           </parameter>
343         </parameters>
344       </method>
345       <method name="remove_finalize_notifier"
346               c:identifier="g_closure_remove_finalize_notifier">
347         <return-value transfer-ownership="none">
348           <type name="none" c:type="void"/>
349         </return-value>
350         <parameters>
351           <parameter name="notify_data" transfer-ownership="none">
352             <type name="any" c:type="gpointer"/>
353           </parameter>
354           <parameter name="notify_func" transfer-ownership="none" scope="call">
355             <type name="ClosureNotify" c:type="GClosureNotify"/>
356           </parameter>
357         </parameters>
358       </method>
359       <method name="add_invalidate_notifier"
360               c:identifier="g_closure_add_invalidate_notifier">
361         <return-value transfer-ownership="none">
362           <type name="none" c:type="void"/>
363         </return-value>
364         <parameters>
365           <parameter name="notify_data" transfer-ownership="none">
366             <type name="any" c:type="gpointer"/>
367           </parameter>
368           <parameter name="notify_func" transfer-ownership="none" scope="call">
369             <type name="ClosureNotify" c:type="GClosureNotify"/>
370           </parameter>
371         </parameters>
372       </method>
373       <method name="remove_invalidate_notifier"
374               c:identifier="g_closure_remove_invalidate_notifier">
375         <return-value transfer-ownership="none">
376           <type name="none" c:type="void"/>
377         </return-value>
378         <parameters>
379           <parameter name="notify_data" transfer-ownership="none">
380             <type name="any" c:type="gpointer"/>
381           </parameter>
382           <parameter name="notify_func" transfer-ownership="none" scope="call">
383             <type name="ClosureNotify" c:type="GClosureNotify"/>
384           </parameter>
385         </parameters>
386       </method>
387       <method name="add_marshal_guards"
388               c:identifier="g_closure_add_marshal_guards">
389         <return-value transfer-ownership="none">
390           <type name="none" c:type="void"/>
391         </return-value>
392         <parameters>
393           <parameter name="pre_marshal_data" transfer-ownership="none">
394             <type name="any" c:type="gpointer"/>
395           </parameter>
396           <parameter name="pre_marshal_notify"
397                      transfer-ownership="none"
398                      scope="call"
399                      closure="3">
400             <type name="ClosureNotify" c:type="GClosureNotify"/>
401           </parameter>
402           <parameter name="post_marshal_data" transfer-ownership="none">
403             <type name="any" c:type="gpointer"/>
404           </parameter>
405           <parameter name="post_marshal_notify"
406                      transfer-ownership="none"
407                      scope="call">
408             <type name="ClosureNotify" c:type="GClosureNotify"/>
409           </parameter>
410         </parameters>
411       </method>
412       <method name="set_marshal" c:identifier="g_closure_set_marshal">
413         <return-value transfer-ownership="none">
414           <type name="none" c:type="void"/>
415         </return-value>
416         <parameters>
417           <parameter name="marshal" transfer-ownership="none" scope="call">
418             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
419           </parameter>
420         </parameters>
421       </method>
422       <method name="set_meta_marshal"
423               c:identifier="g_closure_set_meta_marshal">
424         <return-value transfer-ownership="none">
425           <type name="none" c:type="void"/>
426         </return-value>
427         <parameters>
428           <parameter name="marshal_data" transfer-ownership="none">
429             <type name="any" c:type="gpointer"/>
430           </parameter>
431           <parameter name="meta_marshal"
432                      transfer-ownership="none"
433                      scope="call">
434             <type name="ClosureMarshal" c:type="GClosureMarshal"/>
435           </parameter>
436         </parameters>
437       </method>
438       <method name="invalidate" c:identifier="g_closure_invalidate">
439         <return-value transfer-ownership="none">
440           <type name="none" c:type="void"/>
441         </return-value>
442       </method>
443       <method name="invoke" c:identifier="g_closure_invoke">
444         <return-value transfer-ownership="none">
445           <type name="none" c:type="void"/>
446         </return-value>
447         <parameters>
448           <parameter name="return_value" transfer-ownership="none">
449             <type name="Value" c:type="GValue*"/>
450           </parameter>
451           <parameter name="n_param_values" transfer-ownership="none">
452             <type name="uint" c:type="guint"/>
453           </parameter>
454           <parameter name="param_values" transfer-ownership="none">
455             <type name="Value" c:type="GValue*"/>
456           </parameter>
457           <parameter name="invocation_hint" transfer-ownership="none">
458             <type name="any" c:type="gpointer"/>
459           </parameter>
460         </parameters>
461       </method>
462     </record>
463     <callback name="ClosureMarshal"
464               c:type="GClosureMarshal"
465               doc="callback of @closure doesn&apos;t return a value.
466 which to invoke the callback of @closure
467 to g_closure_invoke()
468 see g_closure_set_marshal() and g_closure_set_meta_marshal()
469 The type used for marshaller functions.">
470       <return-value transfer-ownership="none">
471         <type name="none" c:type="void"/>
472       </return-value>
473       <parameters>
474         <parameter name="closure" transfer-ownership="none">
475           <type name="Closure" c:type="GClosure*"/>
476         </parameter>
477         <parameter name="return_value" transfer-ownership="none">
478           <type name="Value" c:type="GValue*"/>
479         </parameter>
480         <parameter name="n_param_values" transfer-ownership="none">
481           <type name="uint" c:type="guint"/>
482         </parameter>
483         <parameter name="param_values" transfer-ownership="none">
484           <type name="Value" c:type="GValue*"/>
485         </parameter>
486         <parameter name="invocation_hint" transfer-ownership="none">
487           <type name="any" c:type="gpointer"/>
488         </parameter>
489         <parameter name="marshal_data" transfer-ownership="none">
490           <type name="any" c:type="gpointer"/>
491         </parameter>
492       </parameters>
493     </callback>
494     <callback name="ClosureNotify"
495               c:type="GClosureNotify"
496               doc="The type used for the various notification callbacks which can be registered
497 on closures.">
498       <return-value transfer-ownership="none">
499         <type name="none" c:type="void"/>
500       </return-value>
501       <parameters>
502         <parameter name="data" transfer-ownership="none">
503           <type name="any" c:type="gpointer"/>
504         </parameter>
505         <parameter name="closure" transfer-ownership="none">
506           <type name="Closure" c:type="GClosure*"/>
507         </parameter>
508       </parameters>
509     </callback>
510     <record name="ClosureNotifyData" c:type="GClosureNotifyData">
511       <field name="data" writable="1">
512         <type name="any" c:type="gpointer"/>
513       </field>
514       <field name="notify" writable="1">
515         <type name="ClosureNotify" c:type="GClosureNotify"/>
516       </field>
517     </record>
518     <bitfield name="ConnectFlags"
519               doc="default handler of the signal.
520 calling the handler.
521 The connection flags are used to specify the behaviour of a signal&apos;s
522 connection."
523               c:type="GConnectFlags">
524       <member name="after" value="1" c:identifier="G_CONNECT_AFTER"/>
525       <member name="swapped" value="2" c:identifier="G_CONNECT_SWAPPED"/>
526     </bitfield>
527     <glib:boxed c:type="GDate"
528                 glib:name="Date"
529                 glib:type-name="GDate"
530                 glib:get-type="g_date_get_type">
531     </glib:boxed>
532     <record name="EnumClass"
533             c:type="GEnumClass"
534             doc="individual values.
535 The class of an enumeration type holds information about its
536 possible values.">
537       <field name="g_type_class" writable="1">
538         <type name="TypeClass" c:type="GTypeClass"/>
539       </field>
540       <field name="minimum" writable="1">
541         <type name="int" c:type="gint"/>
542       </field>
543       <field name="maximum" writable="1">
544         <type name="int" c:type="gint"/>
545       </field>
546       <field name="n_values" writable="1">
547         <type name="uint" c:type="guint"/>
548       </field>
549       <field name="values" writable="1">
550         <type name="EnumValue" c:type="GEnumValue*"/>
551       </field>
552     </record>
553     <record name="EnumValue"
554             c:type="GEnumValue"
555             doc="A structure which contains a single enum value, its name, and its
556 nickname.">
557       <field name="value" writable="1">
558         <type name="int" c:type="gint"/>
559       </field>
560       <field name="value_name" writable="1">
561         <type name="utf8" c:type="gchar*"/>
562       </field>
563       <field name="value_nick" writable="1">
564         <type name="utf8" c:type="gchar*"/>
565       </field>
566     </record>
567     <record name="FlagsClass"
568             c:type="GFlagsClass"
569             doc="individual values.
570 The class of a flags type holds information about its
571 possible values.">
572       <field name="g_type_class" writable="1">
573         <type name="TypeClass" c:type="GTypeClass"/>
574       </field>
575       <field name="mask" writable="1">
576         <type name="uint" c:type="guint"/>
577       </field>
578       <field name="n_values" writable="1">
579         <type name="uint" c:type="guint"/>
580       </field>
581       <field name="values" writable="1">
582         <type name="FlagsValue" c:type="GFlagsValue*"/>
583       </field>
584     </record>
585     <record name="FlagsValue"
586             c:type="GFlagsValue"
587             doc="A structure which contains a single flags value, its name, and its
588 nickname.">
589       <field name="value" writable="1">
590         <type name="uint" c:type="guint"/>
591       </field>
592       <field name="value_name" writable="1">
593         <type name="utf8" c:type="gchar*"/>
594       </field>
595       <field name="value_nick" writable="1">
596         <type name="utf8" c:type="gchar*"/>
597       </field>
598     </record>
599     <glib:boxed c:type="GHashTable"
600                 glib:name="HashTable"
601                 glib:type-name="GHashTable"
602                 glib:get-type="g_hash_table_get_type">
603     </glib:boxed>
604     <glib:boxed c:type="GIOChannel"
605                 glib:name="IOChannel"
606                 glib:type-name="GIOChannel"
607                 glib:get-type="g_io_channel_get_type">
608     </glib:boxed>
609     <bitfield name="IOCondition"
610               glib:type-name="GIOCondition"
611               glib:get-type="g_io_condition_get_type"
612               c:type="GIOCondition">
613       <member name="in" value="1" c:identifier="G_IO_IN" glib:nick="in"/>
614       <member name="out" value="4" c:identifier="G_IO_OUT" glib:nick="out"/>
615       <member name="pri" value="2" c:identifier="G_IO_PRI" glib:nick="pri"/>
616       <member name="err" value="8" c:identifier="G_IO_ERR" glib:nick="err"/>
617       <member name="hup" value="16" c:identifier="G_IO_HUP" glib:nick="hup"/>
618       <member name="nval"
619               value="32"
620               c:identifier="G_IO_NVAL"
621               glib:nick="nval"/>
622     </bitfield>
623     <class name="InitiallyUnowned"
624            c:type="GInitiallyUnowned"
625            doc="All the fields in the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; structure
626 are private to the #GInitiallyUnowned implementation and should never be
627 accessed directly."
628            parent="Object"
629            abstract="1"
630            glib:type-name="GInitiallyUnowned"
631            glib:get-type="g_initially_unowned_get_type"
632            glib:type-struct="InitiallyUnownedClass">
633       <field name="g_type_instance" writable="1">
634         <type name="TypeInstance" c:type="GTypeInstance"/>
635       </field>
636       <field name="ref_count" writable="1">
637         <type name="uint" c:type="guint"/>
638       </field>
639       <field name="qdata" writable="1">
640         <type name="GLib.Data" c:type="GData*"/>
641       </field>
642     </class>
643     <record name="InitiallyUnownedClass"
644             c:type="GInitiallyUnownedClass"
645             glib:is-gtype-struct-for="InitiallyUnowned"
646             doc="The class structure for the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; type.">
647       <field name="g_type_class">
648         <type name="TypeClass" c:type="GTypeClass"/>
649       </field>
650       <field name="construct_properties">
651         <type name="GLib.SList" c:type="GSList*"/>
652       </field>
653       <field name="constructor">
654         <callback name="constructor" c:type="constructor">
655           <return-value transfer-ownership="full">
656             <type name="Object" c:type="GObject*"/>
657           </return-value>
658           <parameters>
659             <parameter name="type" transfer-ownership="none">
660               <type name="GType" c:type="GType"/>
661             </parameter>
662             <parameter name="n_construct_properties" transfer-ownership="none">
663               <type name="uint" c:type="guint"/>
664             </parameter>
665             <parameter name="construct_properties" transfer-ownership="none">
666               <type name="ObjectConstructParam"
667                     c:type="GObjectConstructParam*"/>
668             </parameter>
669           </parameters>
670         </callback>
671       </field>
672       <field name="set_property">
673         <callback name="set_property" c:type="set_property">
674           <return-value transfer-ownership="none">
675             <type name="none" c:type="void"/>
676           </return-value>
677           <parameters>
678             <parameter name="object" transfer-ownership="none">
679               <type name="Object" c:type="GObject*"/>
680             </parameter>
681             <parameter name="property_id" transfer-ownership="none">
682               <type name="uint" c:type="guint"/>
683             </parameter>
684             <parameter name="value" transfer-ownership="none">
685               <type name="Value" c:type="GValue*"/>
686             </parameter>
687             <parameter name="pspec" transfer-ownership="none">
688               <type name="ParamSpec" c:type="GParamSpec*"/>
689             </parameter>
690           </parameters>
691         </callback>
692       </field>
693       <field name="get_property">
694         <callback name="get_property" c:type="get_property">
695           <return-value transfer-ownership="none">
696             <type name="none" c:type="void"/>
697           </return-value>
698           <parameters>
699             <parameter name="object" transfer-ownership="none">
700               <type name="Object" c:type="GObject*"/>
701             </parameter>
702             <parameter name="property_id" transfer-ownership="none">
703               <type name="uint" c:type="guint"/>
704             </parameter>
705             <parameter name="value" transfer-ownership="none">
706               <type name="Value" c:type="GValue*"/>
707             </parameter>
708             <parameter name="pspec" transfer-ownership="none">
709               <type name="ParamSpec" c:type="GParamSpec*"/>
710             </parameter>
711           </parameters>
712         </callback>
713       </field>
714       <field name="dispose">
715         <callback name="dispose" c:type="dispose">
716           <return-value transfer-ownership="none">
717             <type name="none" c:type="void"/>
718           </return-value>
719           <parameters>
720             <parameter name="object" transfer-ownership="none">
721               <type name="Object" c:type="GObject*"/>
722             </parameter>
723           </parameters>
724         </callback>
725       </field>
726       <field name="finalize">
727         <callback name="finalize" c:type="finalize">
728           <return-value transfer-ownership="none">
729             <type name="none" c:type="void"/>
730           </return-value>
731           <parameters>
732             <parameter name="object" transfer-ownership="none">
733               <type name="Object" c:type="GObject*"/>
734             </parameter>
735           </parameters>
736         </callback>
737       </field>
738       <field name="dispatch_properties_changed">
739         <callback name="dispatch_properties_changed"
740                   c:type="dispatch_properties_changed">
741           <return-value transfer-ownership="none">
742             <type name="none" c:type="void"/>
743           </return-value>
744           <parameters>
745             <parameter name="object" transfer-ownership="none">
746               <type name="Object" c:type="GObject*"/>
747             </parameter>
748             <parameter name="n_pspecs" transfer-ownership="none">
749               <type name="uint" c:type="guint"/>
750             </parameter>
751             <parameter name="pspecs" transfer-ownership="none">
752               <type name="ParamSpec" c:type="GParamSpec**"/>
753             </parameter>
754           </parameters>
755         </callback>
756       </field>
757       <field name="notify">
758         <callback name="notify" c:type="notify">
759           <return-value transfer-ownership="none">
760             <type name="none" c:type="void"/>
761           </return-value>
762           <parameters>
763             <parameter name="object" transfer-ownership="none">
764               <type name="Object" c:type="GObject*"/>
765             </parameter>
766             <parameter name="pspec" transfer-ownership="none">
767               <type name="ParamSpec" c:type="GParamSpec*"/>
768             </parameter>
769           </parameters>
770         </callback>
771       </field>
772       <field name="constructed">
773         <callback name="constructed" c:type="constructed">
774           <return-value transfer-ownership="none">
775             <type name="none" c:type="void"/>
776           </return-value>
777           <parameters>
778             <parameter name="object" transfer-ownership="none">
779               <type name="Object" c:type="GObject*"/>
780             </parameter>
781           </parameters>
782         </callback>
783       </field>
784       <field name="flags">
785         <type name="size_t" c:type="gsize"/>
786       </field>
787       <field name="pdummy">
788         <array zero-terminated="0" c:type="gpointer" fixed-size="6">
789           <type name="any"/>
790         </array>
791       </field>
792     </record>
793     <callback name="InstanceInitFunc"
794               c:type="GInstanceInitFunc"
795               doc="A callback function used by the type system to initialize a new
796 instance of a type. This function initializes all instance members and
797 allocates any resources required by it.
798 Initialization of a derived instance involves calling all its parent
799 types instance initializers, so the class member of the instance
800 is altered during its initialization to always point to the class that
801 belongs to the type the current initializer was introduced for.">
802       <return-value transfer-ownership="none">
803         <type name="none" c:type="void"/>
804       </return-value>
805       <parameters>
806         <parameter name="instance" transfer-ownership="none">
807           <type name="TypeInstance" c:type="GTypeInstance*"/>
808         </parameter>
809         <parameter name="g_class" transfer-ownership="none">
810           <type name="any" c:type="gpointer"/>
811         </parameter>
812       </parameters>
813     </callback>
814     <callback name="InterfaceFinalizeFunc"
815               c:type="GInterfaceFinalizeFunc"
816               doc="A callback function used by the type system to finalize an interface.
817 This function should destroy any internal data and release any resources
818 allocated by the corresponding GInterfaceInitFunc() function.">
819       <return-value transfer-ownership="none">
820         <type name="none" c:type="void"/>
821       </return-value>
822       <parameters>
823         <parameter name="g_iface" transfer-ownership="none">
824           <type name="any" c:type="gpointer"/>
825         </parameter>
826         <parameter name="iface_data" transfer-ownership="none">
827           <type name="any" c:type="gpointer"/>
828         </parameter>
829       </parameters>
830     </callback>
831     <record name="InterfaceInfo"
832             c:type="GInterfaceInfo"
833             doc="A structure that provides information to the type system which is
834 used specifically for managing interface types.">
835       <field name="interface_init" writable="1">
836         <type name="InterfaceInitFunc" c:type="GInterfaceInitFunc"/>
837       </field>
838       <field name="interface_finalize" writable="1">
839         <type name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc"/>
840       </field>
841       <field name="interface_data" writable="1">
842         <type name="any" c:type="gpointer"/>
843       </field>
844     </record>
845     <callback name="InterfaceInitFunc"
846               c:type="GInterfaceInitFunc"
847               doc="A callback function used by the type system to initialize a new
848 interface.  This function should initialize all internal data and
849 allocate any resources required by the interface.">
850       <return-value transfer-ownership="none">
851         <type name="none" c:type="void"/>
852       </return-value>
853       <parameters>
854         <parameter name="g_iface" transfer-ownership="none">
855           <type name="any" c:type="gpointer"/>
856         </parameter>
857         <parameter name="iface_data" transfer-ownership="none">
858           <type name="any" c:type="gpointer"/>
859         </parameter>
860       </parameters>
861     </callback>
862     <class name="Object"
863            c:type="GObject"
864            doc="All the fields in the &lt;structname&gt;GObject&lt;/structname&gt; structure are private
865 to the #GObject implementation and should never be accessed directly."
866            abstract="1"
867            glib:type-name="GObject"
868            glib:get-type="intern"
869            glib:type-struct="ObjectClass">
870       <virtual-method name="set_property">
871         <return-value transfer-ownership="none">
872           <type name="none" c:type="void"/>
873         </return-value>
874         <parameters>
875           <parameter name="property_id" transfer-ownership="none">
876             <type name="uint" c:type="guint"/>
877           </parameter>
878           <parameter name="value" transfer-ownership="none">
879             <type name="Value" c:type="GValue*"/>
880           </parameter>
881           <parameter name="pspec" transfer-ownership="none">
882             <type name="ParamSpec" c:type="GParamSpec*"/>
883           </parameter>
884         </parameters>
885       </virtual-method>
886       <virtual-method name="get_property">
887         <return-value transfer-ownership="none">
888           <type name="none" c:type="void"/>
889         </return-value>
890         <parameters>
891           <parameter name="property_id" transfer-ownership="none">
892             <type name="uint" c:type="guint"/>
893           </parameter>
894           <parameter name="value" transfer-ownership="none">
895             <type name="Value" c:type="GValue*"/>
896           </parameter>
897           <parameter name="pspec" transfer-ownership="none">
898             <type name="ParamSpec" c:type="GParamSpec*"/>
899           </parameter>
900         </parameters>
901       </virtual-method>
902       <virtual-method name="dispose">
903         <return-value transfer-ownership="none">
904           <type name="none" c:type="void"/>
905         </return-value>
906       </virtual-method>
907       <virtual-method name="finalize">
908         <return-value transfer-ownership="none">
909           <type name="none" c:type="void"/>
910         </return-value>
911       </virtual-method>
912       <virtual-method name="dispatch_properties_changed">
913         <return-value transfer-ownership="none">
914           <type name="none" c:type="void"/>
915         </return-value>
916         <parameters>
917           <parameter name="n_pspecs" transfer-ownership="none">
918             <type name="uint" c:type="guint"/>
919           </parameter>
920           <parameter name="pspecs" transfer-ownership="none">
921             <type name="ParamSpec" c:type="GParamSpec**"/>
922           </parameter>
923         </parameters>
924       </virtual-method>
925       <virtual-method name="notify">
926         <return-value transfer-ownership="none">
927           <type name="none" c:type="void"/>
928         </return-value>
929         <parameters>
930           <parameter name="pspec" transfer-ownership="none">
931             <type name="ParamSpec" c:type="GParamSpec*"/>
932           </parameter>
933         </parameters>
934       </virtual-method>
935       <virtual-method name="constructed">
936         <return-value transfer-ownership="none">
937           <type name="none" c:type="void"/>
938         </return-value>
939       </virtual-method>
940       <method name="set_property" c:identifier="g_object_set_property">
941         <return-value transfer-ownership="none">
942           <type name="none" c:type="void"/>
943         </return-value>
944         <parameters>
945           <parameter name="property_name" transfer-ownership="none">
946             <type name="utf8" c:type="gchar*"/>
947           </parameter>
948           <parameter name="value" transfer-ownership="none">
949             <type name="Value" c:type="GValue*"/>
950           </parameter>
951         </parameters>
952       </method>
953       <method name="get_property" c:identifier="g_object_get_property">
954         <return-value transfer-ownership="none">
955           <type name="none" c:type="void"/>
956         </return-value>
957         <parameters>
958           <parameter name="property_name" transfer-ownership="none">
959             <type name="utf8" c:type="gchar*"/>
960           </parameter>
961           <parameter name="value" transfer-ownership="none">
962             <type name="Value" c:type="GValue*"/>
963           </parameter>
964         </parameters>
965       </method>
966       <method name="freeze_notify" c:identifier="g_object_freeze_notify">
967         <return-value transfer-ownership="none">
968           <type name="none" c:type="void"/>
969         </return-value>
970       </method>
971       <method name="notify" c:identifier="g_object_notify">
972         <return-value transfer-ownership="none">
973           <type name="none" c:type="void"/>
974         </return-value>
975         <parameters>
976           <parameter name="property_name" transfer-ownership="none">
977             <type name="utf8" c:type="gchar*"/>
978           </parameter>
979         </parameters>
980       </method>
981       <method name="thaw_notify" c:identifier="g_object_thaw_notify">
982         <return-value transfer-ownership="none">
983           <type name="none" c:type="void"/>
984         </return-value>
985       </method>
986       <method name="weak_ref" c:identifier="g_object_weak_ref">
987         <return-value transfer-ownership="none">
988           <type name="none" c:type="void"/>
989         </return-value>
990         <parameters>
991           <parameter name="notify"
992                      transfer-ownership="none"
993                      scope="call"
994                      closure="2">
995             <type name="WeakNotify" c:type="GWeakNotify"/>
996           </parameter>
997           <parameter name="data" transfer-ownership="none">
998             <type name="any" c:type="gpointer"/>
999           </parameter>
1000         </parameters>
1001       </method>
1002       <method name="weak_unref" c:identifier="g_object_weak_unref">
1003         <return-value transfer-ownership="none">
1004           <type name="none" c:type="void"/>
1005         </return-value>
1006         <parameters>
1007           <parameter name="notify"
1008                      transfer-ownership="none"
1009                      scope="call"
1010                      closure="2">
1011             <type name="WeakNotify" c:type="GWeakNotify"/>
1012           </parameter>
1013           <parameter name="data" transfer-ownership="none">
1014             <type name="any" c:type="gpointer"/>
1015           </parameter>
1016         </parameters>
1017       </method>
1018       <method name="add_weak_pointer" c:identifier="g_object_add_weak_pointer">
1019         <return-value transfer-ownership="none">
1020           <type name="none" c:type="void"/>
1021         </return-value>
1022         <parameters>
1023           <parameter name="weak_pointer_location"
1024                      direction="inout"
1025                      transfer-ownership="none">
1026             <type name="any" c:type="gpointer*"/>
1027           </parameter>
1028         </parameters>
1029       </method>
1030       <method name="remove_weak_pointer"
1031               c:identifier="g_object_remove_weak_pointer">
1032         <return-value transfer-ownership="none">
1033           <type name="none" c:type="void"/>
1034         </return-value>
1035         <parameters>
1036           <parameter name="weak_pointer_location"
1037                      direction="inout"
1038                      transfer-ownership="none">
1039             <type name="any" c:type="gpointer*"/>
1040           </parameter>
1041         </parameters>
1042       </method>
1043       <method name="add_toggle_ref" c:identifier="g_object_add_toggle_ref">
1044         <return-value transfer-ownership="none">
1045           <type name="none" c:type="void"/>
1046         </return-value>
1047         <parameters>
1048           <parameter name="notify"
1049                      transfer-ownership="none"
1050                      scope="call"
1051                      closure="2">
1052             <type name="ToggleNotify" c:type="GToggleNotify"/>
1053           </parameter>
1054           <parameter name="data" transfer-ownership="none">
1055             <type name="any" c:type="gpointer"/>
1056           </parameter>
1057         </parameters>
1058       </method>
1059       <method name="remove_toggle_ref"
1060               c:identifier="g_object_remove_toggle_ref">
1061         <return-value transfer-ownership="none">
1062           <type name="none" c:type="void"/>
1063         </return-value>
1064         <parameters>
1065           <parameter name="notify"
1066                      transfer-ownership="none"
1067                      scope="call"
1068                      closure="2">
1069             <type name="ToggleNotify" c:type="GToggleNotify"/>
1070           </parameter>
1071           <parameter name="data" transfer-ownership="none">
1072             <type name="any" c:type="gpointer"/>
1073           </parameter>
1074         </parameters>
1075       </method>
1076       <method name="get_qdata" c:identifier="g_object_get_qdata">
1077         <return-value transfer-ownership="none">
1078           <type name="any" c:type="gpointer"/>
1079         </return-value>
1080         <parameters>
1081           <parameter name="quark" transfer-ownership="none">
1082             <type name="GLib.Quark" c:type="GQuark"/>
1083           </parameter>
1084         </parameters>
1085       </method>
1086       <method name="set_qdata" c:identifier="g_object_set_qdata">
1087         <return-value transfer-ownership="none">
1088           <type name="none" c:type="void"/>
1089         </return-value>
1090         <parameters>
1091           <parameter name="quark" transfer-ownership="none">
1092             <type name="GLib.Quark" c:type="GQuark"/>
1093           </parameter>
1094           <parameter name="data" transfer-ownership="none">
1095             <type name="any" c:type="gpointer"/>
1096           </parameter>
1097         </parameters>
1098       </method>
1099       <method name="set_qdata_full" c:identifier="g_object_set_qdata_full">
1100         <return-value transfer-ownership="none">
1101           <type name="none" c:type="void"/>
1102         </return-value>
1103         <parameters>
1104           <parameter name="quark" transfer-ownership="none">
1105             <type name="GLib.Quark" c:type="GQuark"/>
1106           </parameter>
1107           <parameter name="data" transfer-ownership="none">
1108             <type name="any" c:type="gpointer"/>
1109           </parameter>
1110           <parameter name="destroy" transfer-ownership="none" scope="call">
1111             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1112           </parameter>
1113         </parameters>
1114       </method>
1115       <method name="steal_qdata" c:identifier="g_object_steal_qdata">
1116         <return-value transfer-ownership="none">
1117           <type name="any" c:type="gpointer"/>
1118         </return-value>
1119         <parameters>
1120           <parameter name="quark" transfer-ownership="none">
1121             <type name="GLib.Quark" c:type="GQuark"/>
1122           </parameter>
1123         </parameters>
1124       </method>
1125       <method name="get_data" c:identifier="g_object_get_data">
1126         <return-value transfer-ownership="none">
1127           <type name="any" c:type="gpointer"/>
1128         </return-value>
1129         <parameters>
1130           <parameter name="key" transfer-ownership="none">
1131             <type name="utf8" c:type="gchar*"/>
1132           </parameter>
1133         </parameters>
1134       </method>
1135       <method name="set_data" c:identifier="g_object_set_data">
1136         <return-value transfer-ownership="none">
1137           <type name="none" c:type="void"/>
1138         </return-value>
1139         <parameters>
1140           <parameter name="key" transfer-ownership="none">
1141             <type name="utf8" c:type="gchar*"/>
1142           </parameter>
1143           <parameter name="data" transfer-ownership="none">
1144             <type name="any" c:type="gpointer"/>
1145           </parameter>
1146         </parameters>
1147       </method>
1148       <method name="set_data_full" c:identifier="g_object_set_data_full">
1149         <return-value transfer-ownership="none">
1150           <type name="none" c:type="void"/>
1151         </return-value>
1152         <parameters>
1153           <parameter name="key" transfer-ownership="none">
1154             <type name="utf8" c:type="gchar*"/>
1155           </parameter>
1156           <parameter name="data" transfer-ownership="none">
1157             <type name="any" c:type="gpointer"/>
1158           </parameter>
1159           <parameter name="destroy" transfer-ownership="none" scope="call">
1160             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1161           </parameter>
1162         </parameters>
1163       </method>
1164       <method name="steal_data" c:identifier="g_object_steal_data">
1165         <return-value transfer-ownership="none">
1166           <type name="any" c:type="gpointer"/>
1167         </return-value>
1168         <parameters>
1169           <parameter name="key" transfer-ownership="none">
1170             <type name="utf8" c:type="gchar*"/>
1171           </parameter>
1172         </parameters>
1173       </method>
1174       <method name="watch_closure" c:identifier="g_object_watch_closure">
1175         <return-value transfer-ownership="none">
1176           <type name="none" c:type="void"/>
1177         </return-value>
1178         <parameters>
1179           <parameter name="closure" transfer-ownership="none">
1180             <type name="Closure" c:type="GClosure*"/>
1181           </parameter>
1182         </parameters>
1183       </method>
1184       <method name="force_floating" c:identifier="g_object_force_floating">
1185         <return-value transfer-ownership="none">
1186           <type name="none" c:type="void"/>
1187         </return-value>
1188       </method>
1189       <method name="run_dispose" c:identifier="g_object_run_dispose">
1190         <return-value transfer-ownership="none">
1191           <type name="none" c:type="void"/>
1192         </return-value>
1193       </method>
1194       <field name="g_type_instance" writable="1">
1195         <type name="TypeInstance" c:type="GTypeInstance"/>
1196       </field>
1197       <field name="ref_count" writable="1">
1198         <type name="uint" c:type="guint"/>
1199       </field>
1200       <field name="qdata" writable="1">
1201         <type name="GLib.Data" c:type="GData*"/>
1202       </field>
1203     </class>
1204     <record name="ObjectClass"
1205             c:type="GObjectClass"
1206             glib:is-gtype-struct-for="Object"
1207             doc="complete the object initialization after all the construction properties are
1208 set. The first thing a @constructor implementation must do is chain up to the
1209 needed, e.g. to handle construct properties, or to implement singletons.
1210 overridden for every type with properties. Implementations of @set_property
1211 don&apos;t need to emit property change notification explicitly, this is handled
1212 by the type system.
1213 overridden for every type with properties.
1214 objects, but keep the instance otherwise intact, so that client method
1215 invocations still work. It may be run multiple times (due to reference
1216 loops). Before returning, @dispose should chain up to the @dispose method
1217 of the parent class.
1218 the instance begun in @dispose and chain up to the @finalize method of the
1219 parent class.
1220 of properties. Overriding @dispatch_properties_changed should be rarely
1221 needed.
1222 final step of the object creation process.  At the point of the call, all
1223 construction properties have been set on the object.  The purpose of this
1224 call is to allow for object initialisation steps that can only be performed
1225 after construction properties have been set.  @constructed implementors
1226 should chain up to the @constructed call of their parent class to allow it
1227 to complete its initialisation.
1228 The class structure for the &lt;structname&gt;GObject&lt;/structname&gt; type.
1229 &lt;example&gt;
1230 &lt;title&gt;Implementing singletons using a constructor&lt;/title&gt;
1231 &lt;programlisting&gt;
1232 static MySingleton *the_singleton = NULL;
1233 static GObject*
1234 my_singleton_constructor (GType                  type,
1235 guint                  n_construct_params,
1236 GObjectConstructParam *construct_params)
1237 {
1238 GObject *object;
1239 if (!the_singleton)
1240 {
1241 object = G_OBJECT_CLASS (parent_class)-&gt;constructor (type,
1242 n_construct_params,
1243 construct_params);
1244 the_singleton = MY_SINGLETON (object);
1245 }
1246 else
1247 object = g_object_ref (G_OBJECT (the_singleton));
1248 return object;
1249 }
1250 &lt;/programlisting&gt;&lt;/example&gt;">
1251       <field name="g_type_class">
1252         <type name="TypeClass" c:type="GTypeClass"/>
1253       </field>
1254       <field name="construct_properties">
1255         <type name="GLib.SList" c:type="GSList*"/>
1256       </field>
1257       <field name="constructor">
1258         <callback name="constructor" c:type="constructor">
1259           <return-value transfer-ownership="full">
1260             <type name="Object" c:type="GObject*"/>
1261           </return-value>
1262           <parameters>
1263             <parameter name="type" transfer-ownership="none">
1264               <type name="GType" c:type="GType"/>
1265             </parameter>
1266             <parameter name="n_construct_properties" transfer-ownership="none">
1267               <type name="uint" c:type="guint"/>
1268             </parameter>
1269             <parameter name="construct_properties" transfer-ownership="none">
1270               <type name="ObjectConstructParam"
1271                     c:type="GObjectConstructParam*"/>
1272             </parameter>
1273           </parameters>
1274         </callback>
1275       </field>
1276       <field name="set_property">
1277         <callback name="set_property" c:type="set_property">
1278           <return-value transfer-ownership="none">
1279             <type name="none" c:type="void"/>
1280           </return-value>
1281           <parameters>
1282             <parameter name="object" transfer-ownership="none">
1283               <type name="Object" c:type="GObject*"/>
1284             </parameter>
1285             <parameter name="property_id" transfer-ownership="none">
1286               <type name="uint" c:type="guint"/>
1287             </parameter>
1288             <parameter name="value" transfer-ownership="none">
1289               <type name="Value" c:type="GValue*"/>
1290             </parameter>
1291             <parameter name="pspec" transfer-ownership="none">
1292               <type name="ParamSpec" c:type="GParamSpec*"/>
1293             </parameter>
1294           </parameters>
1295         </callback>
1296       </field>
1297       <field name="get_property">
1298         <callback name="get_property" c:type="get_property">
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               <type name="Object" c:type="GObject*"/>
1305             </parameter>
1306             <parameter name="property_id" transfer-ownership="none">
1307               <type name="uint" c:type="guint"/>
1308             </parameter>
1309             <parameter name="value" transfer-ownership="none">
1310               <type name="Value" c:type="GValue*"/>
1311             </parameter>
1312             <parameter name="pspec" transfer-ownership="none">
1313               <type name="ParamSpec" c:type="GParamSpec*"/>
1314             </parameter>
1315           </parameters>
1316         </callback>
1317       </field>
1318       <field name="dispose">
1319         <callback name="dispose" c:type="dispose">
1320           <return-value transfer-ownership="none">
1321             <type name="none" c:type="void"/>
1322           </return-value>
1323           <parameters>
1324             <parameter name="object" transfer-ownership="none">
1325               <type name="Object" c:type="GObject*"/>
1326             </parameter>
1327           </parameters>
1328         </callback>
1329       </field>
1330       <field name="finalize">
1331         <callback name="finalize" c:type="finalize">
1332           <return-value transfer-ownership="none">
1333             <type name="none" c:type="void"/>
1334           </return-value>
1335           <parameters>
1336             <parameter name="object" transfer-ownership="none">
1337               <type name="Object" c:type="GObject*"/>
1338             </parameter>
1339           </parameters>
1340         </callback>
1341       </field>
1342       <field name="dispatch_properties_changed">
1343         <callback name="dispatch_properties_changed"
1344                   c:type="dispatch_properties_changed">
1345           <return-value transfer-ownership="none">
1346             <type name="none" c:type="void"/>
1347           </return-value>
1348           <parameters>
1349             <parameter name="object" transfer-ownership="none">
1350               <type name="Object" c:type="GObject*"/>
1351             </parameter>
1352             <parameter name="n_pspecs" transfer-ownership="none">
1353               <type name="uint" c:type="guint"/>
1354             </parameter>
1355             <parameter name="pspecs" transfer-ownership="none">
1356               <type name="ParamSpec" c:type="GParamSpec**"/>
1357             </parameter>
1358           </parameters>
1359         </callback>
1360       </field>
1361       <field name="notify">
1362         <callback name="notify" c:type="notify">
1363           <return-value transfer-ownership="none">
1364             <type name="none" c:type="void"/>
1365           </return-value>
1366           <parameters>
1367             <parameter name="object" transfer-ownership="none">
1368               <type name="Object" c:type="GObject*"/>
1369             </parameter>
1370             <parameter name="pspec" transfer-ownership="none">
1371               <type name="ParamSpec" c:type="GParamSpec*"/>
1372             </parameter>
1373           </parameters>
1374         </callback>
1375       </field>
1376       <field name="constructed">
1377         <callback name="constructed" c:type="constructed">
1378           <return-value transfer-ownership="none">
1379             <type name="none" c:type="void"/>
1380           </return-value>
1381           <parameters>
1382             <parameter name="object" transfer-ownership="none">
1383               <type name="Object" c:type="GObject*"/>
1384             </parameter>
1385           </parameters>
1386         </callback>
1387       </field>
1388       <field name="flags">
1389         <type name="size_t" c:type="gsize"/>
1390       </field>
1391       <field name="pdummy">
1392         <array zero-terminated="0" c:type="gpointer" fixed-size="6">
1393           <type name="any"/>
1394         </array>
1395       </field>
1396       <method name="install_property"
1397               c:identifier="g_object_class_install_property">
1398         <return-value transfer-ownership="none">
1399           <type name="none" c:type="void"/>
1400         </return-value>
1401         <parameters>
1402           <parameter name="property_id" transfer-ownership="none">
1403             <type name="uint" c:type="guint"/>
1404           </parameter>
1405           <parameter name="pspec" transfer-ownership="none">
1406             <type name="ParamSpec" c:type="GParamSpec*"/>
1407           </parameter>
1408         </parameters>
1409       </method>
1410       <method name="find_property" c:identifier="g_object_class_find_property">
1411         <return-value transfer-ownership="full">
1412           <type name="ParamSpec" c:type="GParamSpec*"/>
1413         </return-value>
1414         <parameters>
1415           <parameter name="property_name" transfer-ownership="none">
1416             <type name="utf8" c:type="gchar*"/>
1417           </parameter>
1418         </parameters>
1419       </method>
1420       <method name="list_properties"
1421               c:identifier="g_object_class_list_properties">
1422         <return-value transfer-ownership="full">
1423           <array length="1" c:type="GParamSpec**">
1424             <type name="ParamSpec"/>
1425           </array>
1426         </return-value>
1427         <parameters>
1428           <parameter name="n_properties"
1429                      direction="out"
1430                      transfer-ownership="full">
1431             <type name="uint" c:type="guint*"/>
1432           </parameter>
1433         </parameters>
1434       </method>
1435       <method name="override_property"
1436               c:identifier="g_object_class_override_property">
1437         <return-value transfer-ownership="none">
1438           <type name="none" c:type="void"/>
1439         </return-value>
1440         <parameters>
1441           <parameter name="property_id" transfer-ownership="none">
1442             <type name="uint" c:type="guint"/>
1443           </parameter>
1444           <parameter name="name" transfer-ownership="none">
1445             <type name="utf8" c:type="gchar*"/>
1446           </parameter>
1447         </parameters>
1448       </method>
1449     </record>
1450     <record name="ObjectConstructParam"
1451             c:type="GObjectConstructParam"
1452             doc="The &lt;structname&gt;GObjectConstructParam&lt;/structname&gt; struct is an auxiliary
1453 structure used to hand #GParamSpec/#GValue pairs to the @constructor of
1454 a #GObjectClass.">
1455       <field name="pspec" writable="1">
1456         <type name="ParamSpec" c:type="GParamSpec*"/>
1457       </field>
1458       <field name="value" writable="1">
1459         <type name="Value" c:type="GValue*"/>
1460       </field>
1461     </record>
1462     <callback name="ObjectFinalizeFunc"
1463               c:type="GObjectFinalizeFunc"
1464               doc="The type of the @finalize function of #GObjectClass.">
1465       <return-value transfer-ownership="none">
1466         <type name="none" c:type="void"/>
1467       </return-value>
1468       <parameters>
1469         <parameter name="object" transfer-ownership="none">
1470           <type name="Object" c:type="GObject*"/>
1471         </parameter>
1472       </parameters>
1473     </callback>
1474     <callback name="ObjectGetPropertyFunc"
1475               c:type="GObjectGetPropertyFunc"
1476               doc="g_object_class_install_property().
1477 The type of the @get_property function of #GObjectClass.">
1478       <return-value transfer-ownership="none">
1479         <type name="none" c:type="void"/>
1480       </return-value>
1481       <parameters>
1482         <parameter name="object" transfer-ownership="none">
1483           <type name="Object" c:type="GObject*"/>
1484         </parameter>
1485         <parameter name="property_id" transfer-ownership="none">
1486           <type name="uint" c:type="guint"/>
1487         </parameter>
1488         <parameter name="value" transfer-ownership="none">
1489           <type name="Value" c:type="GValue*"/>
1490         </parameter>
1491         <parameter name="pspec" transfer-ownership="none">
1492           <type name="ParamSpec" c:type="GParamSpec*"/>
1493         </parameter>
1494       </parameters>
1495     </callback>
1496     <callback name="ObjectSetPropertyFunc"
1497               c:type="GObjectSetPropertyFunc"
1498               doc="g_object_class_install_property().
1499 The type of the @set_property function of #GObjectClass.">
1500       <return-value transfer-ownership="none">
1501         <type name="none" c:type="void"/>
1502       </return-value>
1503       <parameters>
1504         <parameter name="object" transfer-ownership="none">
1505           <type name="Object" c:type="GObject*"/>
1506         </parameter>
1507         <parameter name="property_id" transfer-ownership="none">
1508           <type name="uint" c:type="guint"/>
1509         </parameter>
1510         <parameter name="value" transfer-ownership="none">
1511           <type name="Value" c:type="GValue*"/>
1512         </parameter>
1513         <parameter name="pspec" transfer-ownership="none">
1514           <type name="ParamSpec" c:type="GParamSpec*"/>
1515         </parameter>
1516       </parameters>
1517     </callback>
1518     <constant name="PARAM_MASK" value="255">
1519       <type name="int"/>
1520     </constant>
1521     <constant name="PARAM_READWRITE" value="0">
1522       <type name="int"/>
1523     </constant>
1524     <constant name="PARAM_STATIC_STRINGS" value="0">
1525       <type name="int"/>
1526     </constant>
1527     <constant name="PARAM_USER_SHIFT" value="8">
1528       <type name="int"/>
1529     </constant>
1530     <bitfield name="ParamFlags"
1531               doc="strict validation is not required
1532 parameter is guaranteed to remain valid and
1533 unmodified for the lifetime of the parameter.
1534 Since 2.8
1535 parameter is guaranteed to remain valid and
1536 unmmodified for the lifetime of the parameter.
1537 Since 2.8
1538 parameter is guaranteed to remain valid and
1539 unmodified for the lifetime of the parameter.
1540 Since 2.8
1541 Through the #GParamFlags flag values, certain aspects of parameters
1542 can be configured."
1543               c:type="GParamFlags">
1544       <member name="readable" value="1" c:identifier="G_PARAM_READABLE"/>
1545       <member name="writable" value="2" c:identifier="G_PARAM_WRITABLE"/>
1546       <member name="construct" value="4" c:identifier="G_PARAM_CONSTRUCT"/>
1547       <member name="construct_only"
1548               value="8"
1549               c:identifier="G_PARAM_CONSTRUCT_ONLY"/>
1550       <member name="lax_validation"
1551               value="16"
1552               c:identifier="G_PARAM_LAX_VALIDATION"/>
1553       <member name="static_name"
1554               value="32"
1555               c:identifier="G_PARAM_STATIC_NAME"/>
1556       <member name="private" value="32" c:identifier="G_PARAM_PRIVATE"/>
1557       <member name="static_nick"
1558               value="64"
1559               c:identifier="G_PARAM_STATIC_NICK"/>
1560       <member name="static_blurb"
1561               value="128"
1562               c:identifier="G_PARAM_STATIC_BLURB"/>
1563     </bitfield>
1564     <record name="ParamSpec"
1565             c:type="GParamSpec"
1566             doc="All other fields of the &lt;structname&gt;GParamSpec&lt;/structname&gt; struct are private and
1567 should not be used directly.">
1568       <field name="g_type_instance" writable="1">
1569         <type name="TypeInstance" c:type="GTypeInstance"/>
1570       </field>
1571       <field name="name" writable="1">
1572         <type name="utf8" c:type="gchar*"/>
1573       </field>
1574       <field name="flags" writable="1">
1575         <type name="ParamFlags" c:type="GParamFlags"/>
1576       </field>
1577       <field name="value_type" writable="1">
1578         <type name="GType" c:type="GType"/>
1579       </field>
1580       <field name="owner_type" writable="1">
1581         <type name="GType" c:type="GType"/>
1582       </field>
1583       <field name="_nick" writable="1">
1584         <type name="utf8" c:type="gchar*"/>
1585       </field>
1586       <field name="_blurb" writable="1">
1587         <type name="utf8" c:type="gchar*"/>
1588       </field>
1589       <field name="qdata" writable="1">
1590         <type name="GLib.Data" c:type="GData*"/>
1591       </field>
1592       <field name="ref_count" writable="1">
1593         <type name="uint" c:type="guint"/>
1594       </field>
1595       <field name="param_id" writable="1">
1596         <type name="uint" c:type="guint"/>
1597       </field>
1598       <method name="ref" c:identifier="g_param_spec_ref">
1599         <return-value transfer-ownership="full">
1600           <type name="ParamSpec" c:type="GParamSpec*"/>
1601         </return-value>
1602       </method>
1603       <method name="unref" c:identifier="g_param_spec_unref">
1604         <return-value transfer-ownership="none">
1605           <type name="none" c:type="void"/>
1606         </return-value>
1607       </method>
1608       <method name="sink" c:identifier="g_param_spec_sink">
1609         <return-value transfer-ownership="none">
1610           <type name="none" c:type="void"/>
1611         </return-value>
1612       </method>
1613       <method name="ref_sink" c:identifier="g_param_spec_ref_sink">
1614         <return-value transfer-ownership="full">
1615           <type name="ParamSpec" c:type="GParamSpec*"/>
1616         </return-value>
1617       </method>
1618       <method name="get_qdata" c:identifier="g_param_spec_get_qdata">
1619         <return-value transfer-ownership="none">
1620           <type name="any" c:type="gpointer"/>
1621         </return-value>
1622         <parameters>
1623           <parameter name="quark" transfer-ownership="none">
1624             <type name="GLib.Quark" c:type="GQuark"/>
1625           </parameter>
1626         </parameters>
1627       </method>
1628       <method name="set_qdata" c:identifier="g_param_spec_set_qdata">
1629         <return-value transfer-ownership="none">
1630           <type name="none" c:type="void"/>
1631         </return-value>
1632         <parameters>
1633           <parameter name="quark" transfer-ownership="none">
1634             <type name="GLib.Quark" c:type="GQuark"/>
1635           </parameter>
1636           <parameter name="data" transfer-ownership="none">
1637             <type name="any" c:type="gpointer"/>
1638           </parameter>
1639         </parameters>
1640       </method>
1641       <method name="set_qdata_full" c:identifier="g_param_spec_set_qdata_full">
1642         <return-value transfer-ownership="none">
1643           <type name="none" c:type="void"/>
1644         </return-value>
1645         <parameters>
1646           <parameter name="quark" transfer-ownership="none">
1647             <type name="GLib.Quark" c:type="GQuark"/>
1648           </parameter>
1649           <parameter name="data" transfer-ownership="none">
1650             <type name="any" c:type="gpointer"/>
1651           </parameter>
1652           <parameter name="destroy" transfer-ownership="none" scope="call">
1653             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1654           </parameter>
1655         </parameters>
1656       </method>
1657       <method name="steal_qdata" c:identifier="g_param_spec_steal_qdata">
1658         <return-value transfer-ownership="none">
1659           <type name="any" c:type="gpointer"/>
1660         </return-value>
1661         <parameters>
1662           <parameter name="quark" transfer-ownership="none">
1663             <type name="GLib.Quark" c:type="GQuark"/>
1664           </parameter>
1665         </parameters>
1666       </method>
1667       <method name="get_redirect_target"
1668               c:identifier="g_param_spec_get_redirect_target">
1669         <return-value transfer-ownership="full">
1670           <type name="ParamSpec" c:type="GParamSpec*"/>
1671         </return-value>
1672       </method>
1673       <method name="get_name" c:identifier="g_param_spec_get_name">
1674         <return-value transfer-ownership="none">
1675           <type name="utf8" c:type="gchar*"/>
1676         </return-value>
1677       </method>
1678       <method name="get_nick" c:identifier="g_param_spec_get_nick">
1679         <return-value transfer-ownership="none">
1680           <type name="utf8" c:type="gchar*"/>
1681         </return-value>
1682       </method>
1683       <method name="get_blurb" c:identifier="g_param_spec_get_blurb">
1684         <return-value transfer-ownership="none">
1685           <type name="utf8" c:type="gchar*"/>
1686         </return-value>
1687       </method>
1688     </record>
1689     <record name="ParamSpecBoolean"
1690             c:type="GParamSpecBoolean"
1691             doc="A #GParamSpec derived structure that contains the meta data for boolean properties.">
1692       <field name="parent_instance" writable="1">
1693         <type name="ParamSpec" c:type="GParamSpec"/>
1694       </field>
1695       <field name="default_value" writable="1">
1696         <type name="boolean" c:type="gboolean"/>
1697       </field>
1698     </record>
1699     <record name="ParamSpecBoxed"
1700             c:type="GParamSpecBoxed"
1701             doc="A #GParamSpec derived structure that contains the meta data for boxed properties.">
1702       <field name="parent_instance" writable="1">
1703         <type name="ParamSpec" c:type="GParamSpec"/>
1704       </field>
1705     </record>
1706     <record name="ParamSpecChar"
1707             c:type="GParamSpecChar"
1708             doc="A #GParamSpec derived structure that contains the meta data for character properties.">
1709       <field name="parent_instance" writable="1">
1710         <type name="ParamSpec" c:type="GParamSpec"/>
1711       </field>
1712       <field name="minimum" writable="1">
1713         <type name="int8" c:type="gint8"/>
1714       </field>
1715       <field name="maximum" writable="1">
1716         <type name="int8" c:type="gint8"/>
1717       </field>
1718       <field name="default_value" writable="1">
1719         <type name="int8" c:type="gint8"/>
1720       </field>
1721       <method name="" c:identifier="g_param_spec_char">
1722         <return-value transfer-ownership="full">
1723           <type name="ParamSpec" c:type="GParamSpec*"/>
1724         </return-value>
1725         <parameters>
1726           <parameter name="nick" transfer-ownership="none">
1727             <type name="utf8" c:type="gchar*"/>
1728           </parameter>
1729           <parameter name="blurb" transfer-ownership="none">
1730             <type name="utf8" c:type="gchar*"/>
1731           </parameter>
1732           <parameter name="minimum" transfer-ownership="none">
1733             <type name="int8" c:type="gint8"/>
1734           </parameter>
1735           <parameter name="maximum" transfer-ownership="none">
1736             <type name="int8" c:type="gint8"/>
1737           </parameter>
1738           <parameter name="default_value" transfer-ownership="none">
1739             <type name="int8" c:type="gint8"/>
1740           </parameter>
1741           <parameter name="flags" transfer-ownership="none">
1742             <type name="ParamFlags" c:type="GParamFlags"/>
1743           </parameter>
1744         </parameters>
1745       </method>
1746     </record>
1747     <record name="ParamSpecClass"
1748             c:type="GParamSpecClass"
1749             doc="up to the finalize method of the parent class.
1750 (recommended, the default is g_value_reset()), see
1751 g_param_value_set_default().
1752 specifications set out by this type (optional), see
1753 g_param_value_set_validate().
1754 (recommended, the default is memcmp()), see g_param_values_cmp().
1755 The class structure for the &lt;structname&gt;GParamSpec&lt;/structname&gt; type.
1756 Normally, &lt;structname&gt;GParamSpec&lt;/structname&gt; classes are filled by
1757 g_param_type_register_static().">
1758       <field name="g_type_class" writable="1">
1759         <type name="TypeClass" c:type="GTypeClass"/>
1760       </field>
1761       <field name="value_type" writable="1">
1762         <type name="GType" c:type="GType"/>
1763       </field>
1764       <field name="finalize">
1765         <type name="any" c:type="pointer"/>
1766       </field>
1767       <field name="value_set_default">
1768         <type name="any" c:type="pointer"/>
1769       </field>
1770       <field name="value_validate">
1771         <type name="any" c:type="pointer"/>
1772       </field>
1773       <field name="values_cmp">
1774         <type name="any" c:type="pointer"/>
1775       </field>
1776       <field name="dummy" writable="1">
1777         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
1778           <type name="any"/>
1779         </array>
1780       </field>
1781     </record>
1782     <record name="ParamSpecDouble"
1783             c:type="GParamSpecDouble"
1784             doc="by g_param_values_cmp(); the default value is 1e-90.
1785 A #GParamSpec derived structure that contains the meta data for double properties.">
1786       <field name="parent_instance" writable="1">
1787         <type name="ParamSpec" c:type="GParamSpec"/>
1788       </field>
1789       <field name="minimum" writable="1">
1790         <type name="double" c:type="gdouble"/>
1791       </field>
1792       <field name="maximum" writable="1">
1793         <type name="double" c:type="gdouble"/>
1794       </field>
1795       <field name="default_value" writable="1">
1796         <type name="double" c:type="gdouble"/>
1797       </field>
1798       <field name="epsilon" writable="1">
1799         <type name="double" c:type="gdouble"/>
1800       </field>
1801     </record>
1802     <record name="ParamSpecEnum"
1803             c:type="GParamSpecEnum"
1804             doc="A #GParamSpec derived structure that contains the meta data for enum
1805 properties.">
1806       <field name="parent_instance" writable="1">
1807         <type name="ParamSpec" c:type="GParamSpec"/>
1808       </field>
1809       <field name="enum_class" writable="1">
1810         <type name="EnumClass" c:type="GEnumClass*"/>
1811       </field>
1812       <field name="default_value" writable="1">
1813         <type name="int" c:type="gint"/>
1814       </field>
1815     </record>
1816     <record name="ParamSpecFlags"
1817             c:type="GParamSpecFlags"
1818             doc="A #GParamSpec derived structure that contains the meta data for flags
1819 properties.">
1820       <field name="parent_instance" writable="1">
1821         <type name="ParamSpec" c:type="GParamSpec"/>
1822       </field>
1823       <field name="flags_class" writable="1">
1824         <type name="FlagsClass" c:type="GFlagsClass*"/>
1825       </field>
1826       <field name="default_value" writable="1">
1827         <type name="uint" c:type="guint"/>
1828       </field>
1829     </record>
1830     <record name="ParamSpecFloat"
1831             c:type="GParamSpecFloat"
1832             doc="by g_param_values_cmp(); the default value is 1e-30.
1833 A #GParamSpec derived structure that contains the meta data for float properties.">
1834       <field name="parent_instance" writable="1">
1835         <type name="ParamSpec" c:type="GParamSpec"/>
1836       </field>
1837       <field name="minimum" writable="1">
1838         <type name="float" c:type="gfloat"/>
1839       </field>
1840       <field name="maximum" writable="1">
1841         <type name="float" c:type="gfloat"/>
1842       </field>
1843       <field name="default_value" writable="1">
1844         <type name="float" c:type="gfloat"/>
1845       </field>
1846       <field name="epsilon" writable="1">
1847         <type name="float" c:type="gfloat"/>
1848       </field>
1849     </record>
1850     <record name="ParamSpecGType"
1851             c:type="GParamSpecGType"
1852             doc="A #GParamSpec derived structure that contains the meta data for #GType properties."
1853             version="2.10">
1854       <field name="parent_instance" writable="1">
1855         <type name="ParamSpec" c:type="GParamSpec"/>
1856       </field>
1857       <field name="is_a_type" writable="1">
1858         <type name="GType" c:type="GType"/>
1859       </field>
1860     </record>
1861     <record name="ParamSpecInt"
1862             c:type="GParamSpecInt"
1863             doc="A #GParamSpec derived structure that contains the meta data for integer properties.">
1864       <field name="parent_instance" writable="1">
1865         <type name="ParamSpec" c:type="GParamSpec"/>
1866       </field>
1867       <field name="minimum" writable="1">
1868         <type name="int" c:type="gint"/>
1869       </field>
1870       <field name="maximum" writable="1">
1871         <type name="int" c:type="gint"/>
1872       </field>
1873       <field name="default_value" writable="1">
1874         <type name="int" c:type="gint"/>
1875       </field>
1876     </record>
1877     <record name="ParamSpecInt64"
1878             c:type="GParamSpecInt64"
1879             doc="A #GParamSpec derived structure that contains the meta data for 64bit integer properties.">
1880       <field name="parent_instance" writable="1">
1881         <type name="ParamSpec" c:type="GParamSpec"/>
1882       </field>
1883       <field name="minimum" writable="1">
1884         <type name="int64" c:type="gint64"/>
1885       </field>
1886       <field name="maximum" writable="1">
1887         <type name="int64" c:type="gint64"/>
1888       </field>
1889       <field name="default_value" writable="1">
1890         <type name="int64" c:type="gint64"/>
1891       </field>
1892     </record>
1893     <record name="ParamSpecLong"
1894             c:type="GParamSpecLong"
1895             doc="A #GParamSpec derived structure that contains the meta data for long integer properties.">
1896       <field name="parent_instance" writable="1">
1897         <type name="ParamSpec" c:type="GParamSpec"/>
1898       </field>
1899       <field name="minimum" writable="1">
1900         <type name="long" c:type="glong"/>
1901       </field>
1902       <field name="maximum" writable="1">
1903         <type name="long" c:type="glong"/>
1904       </field>
1905       <field name="default_value" writable="1">
1906         <type name="long" c:type="glong"/>
1907       </field>
1908     </record>
1909     <record name="ParamSpecObject"
1910             c:type="GParamSpecObject"
1911             doc="A #GParamSpec derived structure that contains the meta data for object properties.">
1912       <field name="parent_instance" writable="1">
1913         <type name="ParamSpec" c:type="GParamSpec"/>
1914       </field>
1915     </record>
1916     <record name="ParamSpecOverride"
1917             c:type="GParamSpecOverride"
1918             doc="This is a type of #GParamSpec type that simply redirects operations to
1919 another paramspec.  All operations other than getting or
1920 setting the value are redirected, including accessing the nick and
1921 blurb, validating a value, and so forth. See
1922 g_param_spec_get_redirect_target() for retrieving the overidden
1923 property. #GParamSpecOverride is used in implementing
1924 g_object_class_override_property(), and will not be directly useful
1925 unless you are implementing a new base type similar to GObject."
1926             version="2.4">
1927       <field name="parent_instance" writable="1">
1928         <type name="ParamSpec" c:type="GParamSpec"/>
1929       </field>
1930       <field name="overridden" writable="1">
1931         <type name="ParamSpec" c:type="GParamSpec*"/>
1932       </field>
1933     </record>
1934     <record name="ParamSpecParam"
1935             c:type="GParamSpecParam"
1936             doc="A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
1937 properties.">
1938       <field name="parent_instance" writable="1">
1939         <type name="ParamSpec" c:type="GParamSpec"/>
1940       </field>
1941     </record>
1942     <record name="ParamSpecPointer"
1943             c:type="GParamSpecPointer"
1944             doc="A #GParamSpec derived structure that contains the meta data for pointer properties.">
1945       <field name="parent_instance" writable="1">
1946         <type name="ParamSpec" c:type="GParamSpec"/>
1947       </field>
1948     </record>
1949     <record name="ParamSpecPool" c:type="GParamSpecPool">
1950       <constructor name="new" c:identifier="g_param_spec_pool_new">
1951         <return-value transfer-ownership="full">
1952           <type name="ParamSpecPool" c:type="GParamSpecPool*"/>
1953         </return-value>
1954         <parameters>
1955           <parameter name="type_prefixing" transfer-ownership="none">
1956             <type name="boolean" c:type="gboolean"/>
1957           </parameter>
1958         </parameters>
1959       </constructor>
1960       <method name="insert" c:identifier="g_param_spec_pool_insert">
1961         <return-value transfer-ownership="none">
1962           <type name="none" c:type="void"/>
1963         </return-value>
1964         <parameters>
1965           <parameter name="pspec" transfer-ownership="none">
1966             <type name="ParamSpec" c:type="GParamSpec*"/>
1967           </parameter>
1968           <parameter name="owner_type" transfer-ownership="none">
1969             <type name="GType" c:type="GType"/>
1970           </parameter>
1971         </parameters>
1972       </method>
1973       <method name="remove" c:identifier="g_param_spec_pool_remove">
1974         <return-value transfer-ownership="none">
1975           <type name="none" c:type="void"/>
1976         </return-value>
1977         <parameters>
1978           <parameter name="pspec" transfer-ownership="none">
1979             <type name="ParamSpec" c:type="GParamSpec*"/>
1980           </parameter>
1981         </parameters>
1982       </method>
1983       <method name="lookup" c:identifier="g_param_spec_pool_lookup">
1984         <return-value transfer-ownership="full">
1985           <type name="ParamSpec" c:type="GParamSpec*"/>
1986         </return-value>
1987         <parameters>
1988           <parameter name="param_name" transfer-ownership="none">
1989             <type name="utf8" c:type="gchar*"/>
1990           </parameter>
1991           <parameter name="owner_type" transfer-ownership="none">
1992             <type name="GType" c:type="GType"/>
1993           </parameter>
1994           <parameter name="walk_ancestors" transfer-ownership="none">
1995             <type name="boolean" c:type="gboolean"/>
1996           </parameter>
1997         </parameters>
1998       </method>
1999       <method name="list_owned" c:identifier="g_param_spec_pool_list_owned">
2000         <return-value transfer-ownership="full">
2001           <type name="GLib.List" c:type="GList*"/>
2002         </return-value>
2003         <parameters>
2004           <parameter name="owner_type" transfer-ownership="none">
2005             <type name="GType" c:type="GType"/>
2006           </parameter>
2007         </parameters>
2008       </method>
2009       <method name="list" c:identifier="g_param_spec_pool_list">
2010         <return-value transfer-ownership="full">
2011           <type name="ParamSpec" c:type="GParamSpec**"/>
2012         </return-value>
2013         <parameters>
2014           <parameter name="owner_type" transfer-ownership="none">
2015             <type name="GType" c:type="GType"/>
2016           </parameter>
2017           <parameter name="n_pspecs_p"
2018                      direction="out"
2019                      transfer-ownership="full">
2020             <type name="uint" c:type="guint*"/>
2021           </parameter>
2022         </parameters>
2023       </method>
2024     </record>
2025     <record name="ParamSpecString"
2026             c:type="GParamSpecString"
2027             doc="A #GParamSpec derived structure that contains the meta data for string
2028 properties.">
2029       <field name="parent_instance" writable="1">
2030         <type name="ParamSpec" c:type="GParamSpec"/>
2031       </field>
2032       <field name="default_value" writable="1">
2033         <type name="utf8" c:type="gchar*"/>
2034       </field>
2035       <field name="cset_first" writable="1">
2036         <type name="utf8" c:type="gchar*"/>
2037       </field>
2038       <field name="cset_nth" writable="1">
2039         <type name="utf8" c:type="gchar*"/>
2040       </field>
2041       <field name="substitutor" writable="1">
2042         <type name="int8" c:type="gchar"/>
2043       </field>
2044       <field name="null_fold_if_empty" writable="1" bits="1">
2045         <type name="uint" c:type="guint"/>
2046       </field>
2047       <field name="ensure_non_null" writable="1" bits="1">
2048         <type name="uint" c:type="guint"/>
2049       </field>
2050     </record>
2051     <record name="ParamSpecTypeInfo"
2052             c:type="GParamSpecTypeInfo"
2053             doc="(recommended, the default is g_value_reset()), see
2054 g_param_value_set_default().
2055 specifications set out by @pspec (optional), see
2056 g_param_value_set_validate().
2057 (recommended, the default is memcmp()), see g_param_values_cmp().
2058 This structure is used to provide the type system with the information
2059 required to initialize and destruct (finalize) a parameter&apos;s class and
2060 instances thereof.
2061 The initialized structure is passed to the g_param_type_register_static()
2062 The type system will perform a deep copy of this structure, so its memory
2063 does not need to be persistent across invocation of
2064 g_param_type_register_static().">
2065       <field name="instance_size" writable="1">
2066         <type name="uint16" c:type="guint16"/>
2067       </field>
2068       <field name="n_preallocs" writable="1">
2069         <type name="uint16" c:type="guint16"/>
2070       </field>
2071       <field name="instance_init">
2072         <type name="any" c:type="pointer"/>
2073       </field>
2074       <field name="value_type" writable="1">
2075         <type name="GType" c:type="GType"/>
2076       </field>
2077       <field name="finalize">
2078         <type name="any" c:type="pointer"/>
2079       </field>
2080       <field name="value_set_default">
2081         <type name="any" c:type="pointer"/>
2082       </field>
2083       <field name="value_validate">
2084         <type name="any" c:type="pointer"/>
2085       </field>
2086       <field name="values_cmp">
2087         <type name="any" c:type="pointer"/>
2088       </field>
2089     </record>
2090     <record name="ParamSpecUChar"
2091             c:type="GParamSpecUChar"
2092             doc="A #GParamSpec derived structure that contains the meta data for unsigned character properties.">
2093       <field name="parent_instance" writable="1">
2094         <type name="ParamSpec" c:type="GParamSpec"/>
2095       </field>
2096       <field name="minimum" writable="1">
2097         <type name="uint8" c:type="guint8"/>
2098       </field>
2099       <field name="maximum" writable="1">
2100         <type name="uint8" c:type="guint8"/>
2101       </field>
2102       <field name="default_value" writable="1">
2103         <type name="uint8" c:type="guint8"/>
2104       </field>
2105       <method name="" c:identifier="g_param_spec_uchar">
2106         <return-value transfer-ownership="full">
2107           <type name="ParamSpec" c:type="GParamSpec*"/>
2108         </return-value>
2109         <parameters>
2110           <parameter name="nick" transfer-ownership="none">
2111             <type name="utf8" c:type="gchar*"/>
2112           </parameter>
2113           <parameter name="blurb" transfer-ownership="none">
2114             <type name="utf8" c:type="gchar*"/>
2115           </parameter>
2116           <parameter name="minimum" transfer-ownership="none">
2117             <type name="uint8" c:type="guint8"/>
2118           </parameter>
2119           <parameter name="maximum" transfer-ownership="none">
2120             <type name="uint8" c:type="guint8"/>
2121           </parameter>
2122           <parameter name="default_value" transfer-ownership="none">
2123             <type name="uint8" c:type="guint8"/>
2124           </parameter>
2125           <parameter name="flags" transfer-ownership="none">
2126             <type name="ParamFlags" c:type="GParamFlags"/>
2127           </parameter>
2128         </parameters>
2129       </method>
2130     </record>
2131     <record name="ParamSpecUInt"
2132             c:type="GParamSpecUInt"
2133             doc="A #GParamSpec derived structure that contains the meta data for unsigned integer properties.">
2134       <field name="parent_instance" writable="1">
2135         <type name="ParamSpec" c:type="GParamSpec"/>
2136       </field>
2137       <field name="minimum" writable="1">
2138         <type name="uint" c:type="guint"/>
2139       </field>
2140       <field name="maximum" writable="1">
2141         <type name="uint" c:type="guint"/>
2142       </field>
2143       <field name="default_value" writable="1">
2144         <type name="uint" c:type="guint"/>
2145       </field>
2146     </record>
2147     <record name="ParamSpecUInt64"
2148             c:type="GParamSpecUInt64"
2149             doc="A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.">
2150       <field name="parent_instance" writable="1">
2151         <type name="ParamSpec" c:type="GParamSpec"/>
2152       </field>
2153       <field name="minimum" writable="1">
2154         <type name="uint64" c:type="guint64"/>
2155       </field>
2156       <field name="maximum" writable="1">
2157         <type name="uint64" c:type="guint64"/>
2158       </field>
2159       <field name="default_value" writable="1">
2160         <type name="uint64" c:type="guint64"/>
2161       </field>
2162     </record>
2163     <record name="ParamSpecULong"
2164             c:type="GParamSpecULong"
2165             doc="A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.">
2166       <field name="parent_instance" writable="1">
2167         <type name="ParamSpec" c:type="GParamSpec"/>
2168       </field>
2169       <field name="minimum" writable="1">
2170         <type name="ulong" c:type="gulong"/>
2171       </field>
2172       <field name="maximum" writable="1">
2173         <type name="ulong" c:type="gulong"/>
2174       </field>
2175       <field name="default_value" writable="1">
2176         <type name="ulong" c:type="gulong"/>
2177       </field>
2178     </record>
2179     <record name="ParamSpecUnichar"
2180             c:type="GParamSpecUnichar"
2181             doc="A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.">
2182       <field name="parent_instance" writable="1">
2183         <type name="ParamSpec" c:type="GParamSpec"/>
2184       </field>
2185       <field name="default_value" writable="1">
2186         <type name="GLib.unichar" c:type="gunichar"/>
2187       </field>
2188       <method name="" c:identifier="g_param_spec_unichar">
2189         <return-value transfer-ownership="full">
2190           <type name="ParamSpec" c:type="GParamSpec*"/>
2191         </return-value>
2192         <parameters>
2193           <parameter name="nick" transfer-ownership="none">
2194             <type name="utf8" c:type="gchar*"/>
2195           </parameter>
2196           <parameter name="blurb" transfer-ownership="none">
2197             <type name="utf8" c:type="gchar*"/>
2198           </parameter>
2199           <parameter name="default_value" transfer-ownership="none">
2200             <type name="GLib.unichar" c:type="gunichar"/>
2201           </parameter>
2202           <parameter name="flags" transfer-ownership="none">
2203             <type name="ParamFlags" c:type="GParamFlags"/>
2204           </parameter>
2205         </parameters>
2206       </method>
2207     </record>
2208     <record name="ParamSpecValueArray"
2209             c:type="GParamSpecValueArray"
2210             doc="A #GParamSpec derived structure that contains the meta data for #GValueArray properties.">
2211       <field name="parent_instance" writable="1">
2212         <type name="ParamSpec" c:type="GParamSpec"/>
2213       </field>
2214       <field name="element_spec" writable="1">
2215         <type name="ParamSpec" c:type="GParamSpec*"/>
2216       </field>
2217       <field name="fixed_n_elements" writable="1">
2218         <type name="uint" c:type="guint"/>
2219       </field>
2220     </record>
2221     <record name="Parameter"
2222             c:type="GParameter"
2223             doc="The &lt;structname&gt;GParameter&lt;/structname&gt; struct is an auxiliary structure used
2224 to hand parameter name/value pairs to g_object_newv().">
2225       <field name="name" writable="1">
2226         <type name="utf8" c:type="gchar*"/>
2227       </field>
2228       <field name="value" writable="1">
2229         <type name="Value" c:type="GValue"/>
2230       </field>
2231     </record>
2232     <glib:boxed c:type="GPtrArray"
2233                 glib:name="PtrArray"
2234                 glib:type-name="GPtrArray"
2235                 glib:get-type="g_ptr_array_get_type">
2236     </glib:boxed>
2237     <glib:boxed c:type="GRegex"
2238                 glib:name="Regex"
2239                 glib:type-name="GRegex"
2240                 glib:get-type="g_regex_get_type">
2241     </glib:boxed>
2242     <constant name="SIGNAL_FLAGS_MASK" value="127">
2243       <type name="int"/>
2244     </constant>
2245     <constant name="SIGNAL_MATCH_MASK" value="63">
2246       <type name="int"/>
2247     </constant>
2248     <callback name="SignalAccumulator"
2249               c:type="GSignalAccumulator"
2250               doc="is the return value of the current signal emission.
2251 The signal accumulator is a special callback function that can be used
2252 to collect return values of the various callbacks that are called
2253 during a signal emission. The signal accumulator is specified at signal
2254 creation time, if it is left %NULL, no accumulation of callback return
2255 values is performed. The return value of signal emissions is then the
2256 value returned by the last callback.
2257 should be aborted. Returning %FALSE means to abort the
2258 current emission and %TRUE is returned for continuation.">
2259       <return-value transfer-ownership="none">
2260         <type name="boolean" c:type="gboolean"/>
2261       </return-value>
2262       <parameters>
2263         <parameter name="ihint" transfer-ownership="none">
2264           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
2265         </parameter>
2266         <parameter name="return_accu" transfer-ownership="none">
2267           <type name="Value" c:type="GValue*"/>
2268         </parameter>
2269         <parameter name="handler_return" transfer-ownership="none">
2270           <type name="Value" c:type="GValue*"/>
2271         </parameter>
2272         <parameter name="data" transfer-ownership="none">
2273           <type name="any" c:type="gpointer"/>
2274         </parameter>
2275       </parameters>
2276     </callback>
2277     <callback name="SignalEmissionHook"
2278               c:type="GSignalEmissionHook"
2279               doc="the instance on which the signal was emitted.
2280 parameters of the emission.
2281 A simple function pointer to get invoked when the signal is emitted. This
2282 allows you to tie a hook to the signal type, so that it will trap all
2283 emissions of that signal, from any object.
2284 You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag.
2285 hook is disconnected (and destroyed).">
2286       <return-value transfer-ownership="none">
2287         <type name="boolean" c:type="gboolean"/>
2288       </return-value>
2289       <parameters>
2290         <parameter name="ihint" transfer-ownership="none">
2291           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
2292         </parameter>
2293         <parameter name="n_param_values" transfer-ownership="none">
2294           <type name="uint" c:type="guint"/>
2295         </parameter>
2296         <parameter name="param_values" transfer-ownership="none">
2297           <type name="Value" c:type="GValue*"/>
2298         </parameter>
2299         <parameter name="data" transfer-ownership="none">
2300           <type name="any" c:type="gpointer"/>
2301         </parameter>
2302       </parameters>
2303     </callback>
2304     <bitfield name="SignalFlags"
2305               doc="emission for this very object will not be emitted recursively,
2306 but instead cause the first emission to be restarted.
2307 upon handler connections and emissions.
2308 objects from user code via g_signal_emit() and friends, without
2309 the need of being embedded into extra code that performs pre or
2310 post emission adjustments on the object. They can also be thought
2311 of as object methods which can be called generically by
2312 third-party code.
2313 The signal flags are used to specify a signal&apos;s behaviour, the overall
2314 signal description outlines how especially the RUN flags control the
2315 stages of a signal emission."
2316               c:type="GSignalFlags">
2317       <member name="run_first" value="1" c:identifier="G_SIGNAL_RUN_FIRST"/>
2318       <member name="run_last" value="2" c:identifier="G_SIGNAL_RUN_LAST"/>
2319       <member name="run_cleanup"
2320               value="4"
2321               c:identifier="G_SIGNAL_RUN_CLEANUP"/>
2322       <member name="no_recurse" value="8" c:identifier="G_SIGNAL_NO_RECURSE"/>
2323       <member name="detailed" value="16" c:identifier="G_SIGNAL_DETAILED"/>
2324       <member name="action" value="32" c:identifier="G_SIGNAL_ACTION"/>
2325       <member name="no_hooks" value="64" c:identifier="G_SIGNAL_NO_HOOKS"/>
2326     </bitfield>
2327     <record name="SignalInvocationHint"
2328             c:type="GSignalInvocationHint"
2329             doc="field will contain one of %G_SIGNAL_RUN_FIRST,
2330 %G_SIGNAL_RUN_LAST or %G_SIGNAL_RUN_CLEANUP.
2331 The #GSignalInvocationHint structure is used to pass on additional information
2332 to callbacks during a signal emission.">
2333       <field name="signal_id" writable="1">
2334         <type name="uint" c:type="guint"/>
2335       </field>
2336       <field name="detail" writable="1">
2337         <type name="GLib.Quark" c:type="GQuark"/>
2338       </field>
2339       <field name="run_type" writable="1">
2340         <type name="SignalFlags" c:type="GSignalFlags"/>
2341       </field>
2342     </record>
2343     <bitfield name="SignalMatchType"
2344               doc="The match types specify what g_signal_handlers_block_matched(),
2345 g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
2346 match signals by."
2347               c:type="GSignalMatchType">
2348       <member name="id" value="1" c:identifier="G_SIGNAL_MATCH_ID"/>
2349       <member name="detail" value="2" c:identifier="G_SIGNAL_MATCH_DETAIL"/>
2350       <member name="closure" value="4" c:identifier="G_SIGNAL_MATCH_CLOSURE"/>
2351       <member name="func" value="8" c:identifier="G_SIGNAL_MATCH_FUNC"/>
2352       <member name="data" value="16" c:identifier="G_SIGNAL_MATCH_DATA"/>
2353       <member name="unblocked"
2354               value="32"
2355               c:identifier="G_SIGNAL_MATCH_UNBLOCKED"/>
2356     </bitfield>
2357     <record name="SignalQuery"
2358             c:type="GSignalQuery"
2359             doc="signal to be queried was unknown.
2360 effective callback signature is:
2361 &lt;programlisting&gt;
2362 [#param_types param_names,]
2363 #gpointer     data2);
2364 &lt;/programlisting&gt;
2365 A structure holding in-depth information for a specific signal. It is
2366 filled in by the g_signal_query() function.">
2367       <field name="signal_id" writable="1">
2368         <type name="uint" c:type="guint"/>
2369       </field>
2370       <field name="signal_name" writable="1">
2371         <type name="utf8" c:type="gchar*"/>
2372       </field>
2373       <field name="itype" writable="1">
2374         <type name="GType" c:type="GType"/>
2375       </field>
2376       <field name="signal_flags" writable="1">
2377         <type name="SignalFlags" c:type="GSignalFlags"/>
2378       </field>
2379       <field name="return_type" writable="1">
2380         <type name="GType" c:type="GType"/>
2381       </field>
2382       <field name="n_params" writable="1">
2383         <type name="uint" c:type="guint"/>
2384       </field>
2385       <field name="param_types" writable="1">
2386         <type name="any" c:type="GType*"/>
2387       </field>
2388     </record>
2389     <glib:boxed c:type="GString"
2390                 glib:name="String"
2391                 glib:type-name="GString"
2392                 glib:get-type="g_gstring_get_type">
2393     </glib:boxed>
2394     <glib:boxed c:type="GStrv"
2395                 glib:name="Strv"
2396                 glib:type-name="GStrv"
2397                 glib:get-type="g_strv_get_type">
2398     </glib:boxed>
2399     <constant name="TYPE_FUNDAMENTAL_MAX" value="255">
2400       <type name="int"/>
2401     </constant>
2402     <constant name="TYPE_FUNDAMENTAL_SHIFT" value="2">
2403       <type name="int"/>
2404     </constant>
2405     <constant name="TYPE_RESERVED_BSE_FIRST" value="32">
2406       <type name="int"/>
2407     </constant>
2408     <constant name="TYPE_RESERVED_BSE_LAST" value="48">
2409       <type name="int"/>
2410     </constant>
2411     <constant name="TYPE_RESERVED_GLIB_FIRST" value="21">
2412       <type name="int"/>
2413     </constant>
2414     <constant name="TYPE_RESERVED_GLIB_LAST" value="31">
2415       <type name="int"/>
2416     </constant>
2417     <constant name="TYPE_RESERVED_USER_FIRST" value="49">
2418       <type name="int"/>
2419     </constant>
2420     <callback name="ToggleNotify"
2421               c:type="GToggleNotify"
2422               doc="last reference to the object. %FALSE if the toggle
2423 reference was the last reference and there are now other
2424 references.
2425 A callback function used for notification when the state
2426 of a toggle reference changes. See g_object_add_toggle_ref().">
2427       <return-value transfer-ownership="none">
2428         <type name="none" c:type="void"/>
2429       </return-value>
2430       <parameters>
2431         <parameter name="data" transfer-ownership="none">
2432           <type name="any" c:type="gpointer"/>
2433         </parameter>
2434         <parameter name="object" transfer-ownership="none" doc="was called.">
2435           <type name="Object" c:type="GObject*"/>
2436         </parameter>
2437         <parameter name="is_last_ref" transfer-ownership="none">
2438           <type name="boolean" c:type="gboolean"/>
2439         </parameter>
2440       </parameters>
2441     </callback>
2442     <union name="TypeCValue" c:type="GTypeCValue">
2443       <field name="v_int" writable="1">
2444         <type name="int" c:type="gint"/>
2445       </field>
2446       <field name="v_long" writable="1">
2447         <type name="long" c:type="glong"/>
2448       </field>
2449       <field name="v_int64" writable="1">
2450         <type name="int64" c:type="gint64"/>
2451       </field>
2452       <field name="v_double" writable="1">
2453         <type name="double" c:type="gdouble"/>
2454       </field>
2455       <field name="v_pointer" writable="1">
2456         <type name="any" c:type="gpointer"/>
2457       </field>
2458     </union>
2459     <record name="TypeClass"
2460             c:type="GTypeClass"
2461             doc="An opaque structure used as the base of all classes.">
2462       <field name="g_type" writable="1">
2463         <type name="GType" c:type="GType"/>
2464       </field>
2465       <method name="get_private" c:identifier="g_type_class_get_private">
2466         <return-value transfer-ownership="none">
2467           <type name="any" c:type="gpointer"/>
2468         </return-value>
2469         <parameters>
2470           <parameter name="private_type" transfer-ownership="none">
2471             <type name="GType" c:type="GType"/>
2472           </parameter>
2473         </parameters>
2474       </method>
2475     </record>
2476     <callback name="TypeClassCacheFunc"
2477               c:type="GTypeClassCacheFunc"
2478               doc="A callback function which is called when the reference count of a class
2479 drops to zero. It may use g_type_class_ref() to prevent the class from
2480 being freed. You should not call g_type_class_unref() from a
2481 #GTypeClassCacheFunc function to prevent infinite recursion, use
2482 g_type_class_unref_uncached() instead.
2483 The functions have to check the class id passed in to figure
2484 whether they actually want to cache the class of this type, since all
2485 classes are routed through the same #GTypeClassCacheFunc chain.
2486 called, %FALSE to continue.">
2487       <return-value transfer-ownership="none">
2488         <type name="boolean" c:type="gboolean"/>
2489       </return-value>
2490       <parameters>
2491         <parameter name="cache_data" transfer-ownership="none" doc="call">
2492           <type name="any" c:type="gpointer"/>
2493         </parameter>
2494         <parameter name="g_class" transfer-ownership="none">
2495           <type name="TypeClass" c:type="GTypeClass*"/>
2496         </parameter>
2497       </parameters>
2498     </callback>
2499     <bitfield name="TypeDebugFlags"
2500               doc="The &lt;type&gt;GTypeDebugFlags&lt;/type&gt; enumeration values can be passed to
2501 g_type_init_with_debug_flags() to trigger debugging messages during runtime.
2502 Note that the messages can also be triggered by setting the
2503 &lt;envar&gt;GOBJECT_DEBUG&lt;/envar&gt; environment variable to a &apos;:&apos;-separated list of
2504 &quot;objects&quot; and &quot;signals&quot;."
2505               c:type="GTypeDebugFlags">
2506       <member name="none" value="0" c:identifier="G_TYPE_DEBUG_NONE"/>
2507       <member name="objects" value="1" c:identifier="G_TYPE_DEBUG_OBJECTS"/>
2508       <member name="signals" value="2" c:identifier="G_TYPE_DEBUG_SIGNALS"/>
2509       <member name="mask" value="3" c:identifier="G_TYPE_DEBUG_MASK"/>
2510     </bitfield>
2511     <bitfield name="TypeFlags"
2512               doc="created for an abstract type.
2513 that introduces a value table, but can&apos;t be used for
2514 g_value_init().
2515 Bit masks used to check or determine characteristics of a type."
2516               c:type="GTypeFlags">
2517       <member name="abstract" value="16" c:identifier="G_TYPE_FLAG_ABSTRACT"/>
2518       <member name="value_abstract"
2519               value="32"
2520               c:identifier="G_TYPE_FLAG_VALUE_ABSTRACT"/>
2521     </bitfield>
2522     <bitfield name="TypeFundamentalFlags"
2523               doc="Bit masks used to check or determine specific characteristics of a
2524 fundamental type."
2525               c:type="GTypeFundamentalFlags">
2526       <member name="classed" value="1" c:identifier="G_TYPE_FLAG_CLASSED"/>
2527       <member name="instantiatable"
2528               value="2"
2529               c:identifier="G_TYPE_FLAG_INSTANTIATABLE"/>
2530       <member name="derivable" value="4" c:identifier="G_TYPE_FLAG_DERIVABLE"/>
2531       <member name="deep_derivable"
2532               value="8"
2533               c:identifier="G_TYPE_FLAG_DEEP_DERIVABLE"/>
2534     </bitfield>
2535     <record name="TypeFundamentalInfo"
2536             c:type="GTypeFundamentalInfo"
2537             doc="A structure that provides information to the type system which is
2538 used specifically for managing fundamental types.">
2539       <field name="type_flags" writable="1">
2540         <type name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags"/>
2541       </field>
2542     </record>
2543     <record name="TypeInfo"
2544             c:type="GTypeInfo"
2545             doc="classed and instantiatable types. Location of the default vtable
2546 inititalization function for interface types. (optional) This function
2547 is used both to fill in virtual functions in the class or default vtable,
2548 and to do type-specific setup such as registering signals and object
2549 properties.
2550 classed and instantiatable types. Location fo the default vtable
2551 finalization function for interface types. (optional)
2552 useful for fundamental types).
2553 This structure is used to provide the type system with the information
2554 required to initialize and destruct (finalize) a type&apos;s class and
2555 its instances.
2556 The initialized structure is passed to the g_type_register_static() function
2557 (or is copied into the provided #GTypeInfo structure in the
2558 g_type_plugin_complete_type_info()). The type system will perform a deep
2559 copy of this structure, so its memory does not need to be persistent
2560 across invocation of g_type_register_static().">
2561       <field name="class_size" writable="1">
2562         <type name="uint16" c:type="guint16"/>
2563       </field>
2564       <field name="base_init" writable="1">
2565         <type name="BaseInitFunc" c:type="GBaseInitFunc"/>
2566       </field>
2567       <field name="base_finalize" writable="1">
2568         <type name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
2569       </field>
2570       <field name="class_init" writable="1">
2571         <type name="ClassInitFunc" c:type="GClassInitFunc"/>
2572       </field>
2573       <field name="class_finalize" writable="1">
2574         <type name="ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
2575       </field>
2576       <field name="class_data" writable="1">
2577         <type name="any" c:type="gconstpointer"/>
2578       </field>
2579       <field name="instance_size" writable="1">
2580         <type name="uint16" c:type="guint16"/>
2581       </field>
2582       <field name="n_preallocs" writable="1">
2583         <type name="uint16" c:type="guint16"/>
2584       </field>
2585       <field name="instance_init" writable="1">
2586         <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
2587       </field>
2588       <field name="value_table" writable="1">
2589         <type name="TypeValueTable" c:type="GTypeValueTable*"/>
2590       </field>
2591     </record>
2592     <record name="TypeInstance"
2593             c:type="GTypeInstance"
2594             doc="An opaque structure used as the base of all type instances.">
2595       <field name="g_class" writable="1">
2596         <type name="TypeClass" c:type="GTypeClass*"/>
2597       </field>
2598       <method name="get_private" c:identifier="g_type_instance_get_private">
2599         <return-value transfer-ownership="none">
2600           <type name="any" c:type="gpointer"/>
2601         </return-value>
2602         <parameters>
2603           <parameter name="private_type" transfer-ownership="none">
2604             <type name="GType" c:type="GType"/>
2605           </parameter>
2606         </parameters>
2607       </method>
2608     </record>
2609     <record name="TypeInterface"
2610             c:type="GTypeInterface"
2611             doc="An opaque structure used as the base of all interface types.">
2612       <field name="g_type" writable="1">
2613         <type name="GType" c:type="GType"/>
2614       </field>
2615       <field name="g_instance_type" writable="1">
2616         <type name="GType" c:type="GType"/>
2617       </field>
2618     </record>
2619     <callback name="TypeInterfaceCheckFunc"
2620               c:type="GTypeInterfaceCheckFunc"
2621               doc="A callback called after an interface vtable is initialized.
2622 See g_type_add_interface_check()."
2623               version="2.4">
2624       <return-value transfer-ownership="none">
2625         <type name="none" c:type="void"/>
2626       </return-value>
2627       <parameters>
2628         <parameter name="check_data" transfer-ownership="none">
2629           <type name="any" c:type="gpointer"/>
2630         </parameter>
2631         <parameter name="g_iface" transfer-ownership="none">
2632           <type name="any" c:type="gpointer"/>
2633         </parameter>
2634       </parameters>
2635     </callback>
2636     <class name="TypeModule"
2637            c:type="GTypeModule"
2638            doc="The members of the &lt;structname&gt;GTypeModule&lt;/structname&gt; structure should not
2639 be accessed directly, except for the @name field."
2640            parent="Object"
2641            abstract="1"
2642            glib:type-name="GTypeModule"
2643            glib:get-type="g_type_module_get_type"
2644            glib:type-struct="TypeModuleClass">
2645       <implements name="TypePlugin"/>
2646       <virtual-method name="load">
2647         <return-value transfer-ownership="none">
2648           <type name="boolean" c:type="gboolean"/>
2649         </return-value>
2650       </virtual-method>
2651       <virtual-method name="unload">
2652         <return-value transfer-ownership="none">
2653           <type name="none" c:type="void"/>
2654         </return-value>
2655       </virtual-method>
2656       <method name="use" c:identifier="g_type_module_use">
2657         <return-value transfer-ownership="none">
2658           <type name="boolean" c:type="gboolean"/>
2659         </return-value>
2660       </method>
2661       <method name="unuse" c:identifier="g_type_module_unuse">
2662         <return-value transfer-ownership="none">
2663           <type name="none" c:type="void"/>
2664         </return-value>
2665       </method>
2666       <method name="set_name" c:identifier="g_type_module_set_name">
2667         <return-value transfer-ownership="none">
2668           <type name="none" c:type="void"/>
2669         </return-value>
2670         <parameters>
2671           <parameter name="name" transfer-ownership="none">
2672             <type name="utf8" c:type="gchar*"/>
2673           </parameter>
2674         </parameters>
2675       </method>
2676       <method name="register_type" c:identifier="g_type_module_register_type">
2677         <return-value transfer-ownership="none">
2678           <type name="GType" c:type="GType"/>
2679         </return-value>
2680         <parameters>
2681           <parameter name="parent_type" transfer-ownership="none">
2682             <type name="GType" c:type="GType"/>
2683           </parameter>
2684           <parameter name="type_name" transfer-ownership="none">
2685             <type name="utf8" c:type="gchar*"/>
2686           </parameter>
2687           <parameter name="type_info" transfer-ownership="none">
2688             <type name="TypeInfo" c:type="GTypeInfo*"/>
2689           </parameter>
2690           <parameter name="flags" transfer-ownership="none">
2691             <type name="TypeFlags" c:type="GTypeFlags"/>
2692           </parameter>
2693         </parameters>
2694       </method>
2695       <method name="add_interface" c:identifier="g_type_module_add_interface">
2696         <return-value transfer-ownership="none">
2697           <type name="none" c:type="void"/>
2698         </return-value>
2699         <parameters>
2700           <parameter name="instance_type" transfer-ownership="none">
2701             <type name="GType" c:type="GType"/>
2702           </parameter>
2703           <parameter name="interface_type" transfer-ownership="none">
2704             <type name="GType" c:type="GType"/>
2705           </parameter>
2706           <parameter name="interface_info" transfer-ownership="none">
2707             <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
2708           </parameter>
2709         </parameters>
2710       </method>
2711       <method name="register_enum" c:identifier="g_type_module_register_enum">
2712         <return-value transfer-ownership="none">
2713           <type name="GType" c:type="GType"/>
2714         </return-value>
2715         <parameters>
2716           <parameter name="name" transfer-ownership="none">
2717             <type name="utf8" c:type="gchar*"/>
2718           </parameter>
2719           <parameter name="const_static_values" transfer-ownership="none">
2720             <type name="EnumValue" c:type="GEnumValue*"/>
2721           </parameter>
2722         </parameters>
2723       </method>
2724       <method name="register_flags"
2725               c:identifier="g_type_module_register_flags">
2726         <return-value transfer-ownership="none">
2727           <type name="GType" c:type="GType"/>
2728         </return-value>
2729         <parameters>
2730           <parameter name="name" transfer-ownership="none">
2731             <type name="utf8" c:type="gchar*"/>
2732           </parameter>
2733           <parameter name="const_static_values" transfer-ownership="none">
2734             <type name="FlagsValue" c:type="GFlagsValue*"/>
2735           </parameter>
2736         </parameters>
2737       </method>
2738       <field name="parent_instance">
2739         <type name="Object" c:type="GObject"/>
2740       </field>
2741       <field name="use_count">
2742         <type name="uint" c:type="guint"/>
2743       </field>
2744       <field name="type_infos">
2745         <type name="GLib.SList" c:type="GSList*"/>
2746       </field>
2747       <field name="interface_infos">
2748         <type name="GLib.SList" c:type="GSList*"/>
2749       </field>
2750       <field name="name">
2751         <type name="utf8" c:type="gchar*"/>
2752       </field>
2753     </class>
2754     <record name="TypeModuleClass"
2755             c:type="GTypeModuleClass"
2756             glib:is-gtype-struct-for="TypeModule"
2757             doc="g_type_module_register_type().
2758 In order to implement dynamic loading of types based on #GTypeModule,
2759 the @load and @unload functions in #GTypeModuleClass must be implemented.">
2760       <field name="parent_class">
2761         <type name="ObjectClass" c:type="GObjectClass"/>
2762       </field>
2763       <field name="load">
2764         <callback name="load" c:type="load">
2765           <return-value transfer-ownership="none">
2766             <type name="boolean" c:type="gboolean"/>
2767           </return-value>
2768           <parameters>
2769             <parameter name="module" transfer-ownership="none">
2770               <type name="TypeModule" c:type="GTypeModule*"/>
2771             </parameter>
2772           </parameters>
2773         </callback>
2774       </field>
2775       <field name="unload">
2776         <callback name="unload" c:type="unload">
2777           <return-value transfer-ownership="none">
2778             <type name="none" c:type="void"/>
2779           </return-value>
2780           <parameters>
2781             <parameter name="module" transfer-ownership="none">
2782               <type name="TypeModule" c:type="GTypeModule*"/>
2783             </parameter>
2784           </parameters>
2785         </callback>
2786       </field>
2787       <field name="reserved1">
2788         <callback name="reserved1" c:type="reserved1">
2789           <return-value transfer-ownership="none">
2790             <type name="none" c:type="void"/>
2791           </return-value>
2792         </callback>
2793       </field>
2794       <field name="reserved2">
2795         <callback name="reserved2" c:type="reserved2">
2796           <return-value transfer-ownership="none">
2797             <type name="none" c:type="void"/>
2798           </return-value>
2799         </callback>
2800       </field>
2801       <field name="reserved3">
2802         <callback name="reserved3" c:type="reserved3">
2803           <return-value transfer-ownership="none">
2804             <type name="none" c:type="void"/>
2805           </return-value>
2806         </callback>
2807       </field>
2808       <field name="reserved4">
2809         <callback name="reserved4" c:type="reserved4">
2810           <return-value transfer-ownership="none">
2811             <type name="none" c:type="void"/>
2812           </return-value>
2813         </callback>
2814       </field>
2815     </record>
2816     <interface name="TypePlugin"
2817                c:type="GTypePlugin"
2818                doc="The &lt;structname&gt;GTypePlugin&lt;/structname&gt; typedef is used as a placeholder
2819 for objects that implement the &lt;structname&gt;GTypePlugin&lt;/structname&gt;
2820 interface."
2821                glib:type-name="GTypePlugin"
2822                glib:get-type="g_type_plugin_get_type"
2823                glib:type-struct="TypePluginClass">
2824       <method name="use" c:identifier="g_type_plugin_use">
2825         <return-value transfer-ownership="none">
2826           <type name="none" c:type="void"/>
2827         </return-value>
2828       </method>
2829       <method name="unuse" c:identifier="g_type_plugin_unuse">
2830         <return-value transfer-ownership="none">
2831           <type name="none" c:type="void"/>
2832         </return-value>
2833       </method>
2834       <method name="complete_type_info"
2835               c:identifier="g_type_plugin_complete_type_info">
2836         <return-value transfer-ownership="none">
2837           <type name="none" c:type="void"/>
2838         </return-value>
2839         <parameters>
2840           <parameter name="g_type" transfer-ownership="none">
2841             <type name="GType" c:type="GType"/>
2842           </parameter>
2843           <parameter name="info" transfer-ownership="none">
2844             <type name="TypeInfo" c:type="GTypeInfo*"/>
2845           </parameter>
2846           <parameter name="value_table" transfer-ownership="none">
2847             <type name="TypeValueTable" c:type="GTypeValueTable*"/>
2848           </parameter>
2849         </parameters>
2850       </method>
2851       <method name="complete_interface_info"
2852               c:identifier="g_type_plugin_complete_interface_info">
2853         <return-value transfer-ownership="none">
2854           <type name="none" c:type="void"/>
2855         </return-value>
2856         <parameters>
2857           <parameter name="instance_type" transfer-ownership="none">
2858             <type name="GType" c:type="GType"/>
2859           </parameter>
2860           <parameter name="interface_type" transfer-ownership="none">
2861             <type name="GType" c:type="GType"/>
2862           </parameter>
2863           <parameter name="info" transfer-ownership="none">
2864             <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
2865           </parameter>
2866         </parameters>
2867       </method>
2868     </interface>
2869     <record name="TypePluginClass"
2870             c:type="GTypePluginClass"
2871             glib:is-gtype-struct-for="TypePlugin"
2872             doc="#GTypeValueTable structs for the type. The structs are initialized
2873 with &lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
2874 this function.
2875 for the interface. The structs is initialized with
2876 &lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
2877 this function.
2878 The #GTypePlugin interface is used by the type system in order to handle
2879 the lifecycle of dynamically loaded types.">
2880       <field name="base_iface">
2881         <type name="TypeInterface" c:type="GTypeInterface"/>
2882       </field>
2883       <field name="use_plugin">
2884         <type name="TypePluginUse" c:type="GTypePluginUse"/>
2885       </field>
2886       <field name="unuse_plugin">
2887         <type name="TypePluginUnuse" c:type="GTypePluginUnuse"/>
2888       </field>
2889       <field name="complete_type_info">
2890         <type name="TypePluginCompleteTypeInfo"
2891               c:type="GTypePluginCompleteTypeInfo"/>
2892       </field>
2893       <field name="complete_interface_info">
2894         <type name="TypePluginCompleteInterfaceInfo"
2895               c:type="GTypePluginCompleteInterfaceInfo"/>
2896       </field>
2897     </record>
2898     <callback name="TypePluginCompleteInterfaceInfo"
2899               c:type="GTypePluginCompleteInterfaceInfo"
2900               doc="is added
2901 The type of the @complete_interface_info function of #GTypePluginClass.">
2902       <return-value transfer-ownership="none">
2903         <type name="none" c:type="void"/>
2904       </return-value>
2905       <parameters>
2906         <parameter name="plugin" transfer-ownership="none">
2907           <type name="TypePlugin" c:type="GTypePlugin*"/>
2908         </parameter>
2909         <parameter name="instance_type" transfer-ownership="none">
2910           <type name="GType" c:type="GType"/>
2911         </parameter>
2912         <parameter name="interface_type" transfer-ownership="none">
2913           <type name="GType" c:type="GType"/>
2914         </parameter>
2915         <parameter name="info" transfer-ownership="none">
2916           <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
2917         </parameter>
2918       </parameters>
2919     </callback>
2920     <callback name="TypePluginCompleteTypeInfo"
2921               c:type="GTypePluginCompleteTypeInfo"
2922               doc="The type of the @complete_type_info function of #GTypePluginClass.">
2923       <return-value transfer-ownership="none">
2924         <type name="none" c:type="void"/>
2925       </return-value>
2926       <parameters>
2927         <parameter name="plugin" transfer-ownership="none">
2928           <type name="TypePlugin" c:type="GTypePlugin*"/>
2929         </parameter>
2930         <parameter name="g_type" transfer-ownership="none">
2931           <type name="GType" c:type="GType"/>
2932         </parameter>
2933         <parameter name="info" transfer-ownership="none">
2934           <type name="TypeInfo" c:type="GTypeInfo*"/>
2935         </parameter>
2936         <parameter name="value_table" transfer-ownership="none">
2937           <type name="TypeValueTable" c:type="GTypeValueTable*"/>
2938         </parameter>
2939       </parameters>
2940     </callback>
2941     <callback name="TypePluginUnuse"
2942               c:type="GTypePluginUnuse"
2943               doc="The type of the @unuse_plugin function of #GTypePluginClass.">
2944       <return-value transfer-ownership="none">
2945         <type name="none" c:type="void"/>
2946       </return-value>
2947       <parameters>
2948         <parameter name="plugin" transfer-ownership="none">
2949           <type name="TypePlugin" c:type="GTypePlugin*"/>
2950         </parameter>
2951       </parameters>
2952     </callback>
2953     <callback name="TypePluginUse"
2954               c:type="GTypePluginUse"
2955               doc="The type of the @use_plugin function of #GTypePluginClass, which gets called
2956 to increase the use count of @plugin.">
2957       <return-value transfer-ownership="none">
2958         <type name="none" c:type="void"/>
2959       </return-value>
2960       <parameters>
2961         <parameter name="plugin" transfer-ownership="none">
2962           <type name="TypePlugin" c:type="GTypePlugin*"/>
2963         </parameter>
2964       </parameters>
2965     </callback>
2966     <record name="TypeQuery"
2967             c:type="GTypeQuery"
2968             doc="A structure holding information for a specific type. It is
2969 filled in by the g_type_query() function.">
2970       <field name="type" writable="1">
2971         <type name="GType" c:type="GType"/>
2972       </field>
2973       <field name="type_name" writable="1">
2974         <type name="utf8" c:type="gchar*"/>
2975       </field>
2976       <field name="class_size" writable="1">
2977         <type name="uint" c:type="guint"/>
2978       </field>
2979       <field name="instance_size" writable="1">
2980         <type name="uint" c:type="guint"/>
2981       </field>
2982     </record>
2983     <record name="TypeValueTable"
2984             c:type="GTypeValueTable"
2985             doc="directly into the value-&gt;data array. The data array of
2986 the #GValue passed into this function was zero-filled
2987 with &lt;function&gt;memset()&lt;/function&gt;, so no care has to
2988 be taken to free any
2989 old contents. E.g. for the implementation of a string
2990 value that may never be %NULL, the implementation might
2991 look like:
2992 |[
2993 value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
2994 ]|
2995 data array of the passed in @value. No resources may
2996 remain allocated through the #GValue contents after
2997 this function returns. E.g. for our above string type:
2998 |[
2999 // only free strings without a specific flag for static storage
3000 if (!(value-&gt;data[1].v_uint &amp; G_VALUE_NOCOPY_CONTENTS))
3001 g_free (value-&gt;data[0].v_pointer);
3002 ]|
3003 and @src_value is a properly setup #GValue of same or
3004 derived type.
3005 The purpose of this function is to copy the contents of
3006 remain valid. String type example:
3007 |[
3008 dest_value-&gt;data[0].v_pointer = g_strdup (src_value-&gt;data[0].v_pointer);
3009 ]|
3010 or strings, return this pointer, so the caller can peek at
3011 the current contents. To extend on our above string example:
3012 |[
3013 return value-&gt;data[0].v_pointer;
3014 ]|
3015 this value bit-by-bit. Each character in the format represents
3016 an argument to be collected, and the characters themselves indicate
3017 the type of the argument. Currently supported arguments are:
3018 &lt;variablelist&gt;
3019 &lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
3020 &apos;i&apos; - Integers. passed as collect_values[].v_int.
3021 &lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
3022 &lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
3023 &apos;l&apos; - Longs. passed as collect_values[].v_long.
3024 &lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
3025 &lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
3026 &apos;d&apos; - Doubles. passed as collect_values[].v_double.
3027 &lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
3028 &lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
3029 &apos;p&apos; - Pointers. passed as collect_values[].v_pointer.
3030 &lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
3031 &lt;/variablelist&gt;
3032 It should be noted that for variable argument list construction,
3033 ANSI C promotes every type smaller than an integer to an int, and
3034 floats to doubles. So for collection of short int or char, &apos;i&apos;
3035 needs to be used, and for collection of floats &apos;d&apos;.
3036 values collected from a variable argument list into contents
3037 suitable for storage in a GValue. This function should setup
3038 does not allow %NULL pointers, it needs to either spew an error,
3039 or do an implicit conversion by storing an empty string.
3040 The @value passed in to this function has a zero-filled data
3041 array, so just like for value_init() it is guaranteed to not
3042 contain any old contents that might need freeing.
3043 and @collect_values is an array of unions #GTypeCValue with
3044 length @n_collect_values, containing the collected values
3045 according to @collect_format.
3046 It may contain the flag %G_VALUE_NOCOPY_CONTENTS indicating,
3047 that the collected value contents may be considered &quot;static&quot;
3048 for the duration of the @value lifetime.
3049 Thus an extra copy of the contents stored in @collect_values is
3050 not required for assignment to @value.
3051 For our above string example, we continue with:
3052 |[
3053 if (!collect_values[0].v_pointer)
3054 value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
3055 else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
3056 {
3057 value-&gt;data[0].v_pointer = collect_values[0].v_pointer;
3058 // keep a flag for the value_free() implementation to not free this string
3059 value-&gt;data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
3060 }
3061 else
3062 value-&gt;data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
3063 return NULL;
3064 ]|
3065 It should be noted, that it is generally a bad idea to follow the
3066 #G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
3067 reentrancy requirements and reference count assertions performed
3068 by the #GSignal code, reference counts should always be incremented
3069 for reference counted contents stored in the value-&gt;data array.
3070 To deviate from our string example for a moment, and taking a look
3071 at an exemplary implementation for collect_value() of #GObject:
3072 |[
3073 if (collect_values[0].v_pointer)
3074 {
3075 GObject *object = G_OBJECT (collect_values[0].v_pointer);
3076 // never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
3077 value-&gt;data[0].v_pointer = g_object_ref (object);
3078 return NULL;
3079 }
3080 else
3081 return g_strdup_printf (&quot;Object passed as invalid NULL pointer&quot;);
3082 }
3083 ]|
3084 The reference count for valid objects is always incremented,
3085 regardless of @collect_flags. For invalid objects, the example
3086 returns a newly allocated string without altering @value.
3087 Upon success, collect_value() needs to return %NULL. If, however,
3088 an error condition occurred, collect_value() may spew an
3089 error by returning a newly allocated non-%NULL string, giving
3090 a suitable description of the error condition.
3091 The calling code makes no assumptions about the @value
3092 contents being valid upon error returns, @value
3093 is simply thrown away without further freeing. As such, it is
3094 a good idea to not allocate #GValue contents, prior to returning
3095 an error, however, collect_values() is not obliged to return
3096 a correctly setup @value for error returns, simply because
3097 any non-%NULL return is considered a fatal condition so further
3098 program behaviour is undefined.
3099 analogous to @collect_format. Usually, @lcopy_format string consists
3100 only of &apos;p&apos;s to provide lcopy_value() with pointers to storage locations.
3101 arguments passed through a variable argument list which got
3102 collected into @collect_values according to @lcopy_format.
3103 and @collect_flags may contain %G_VALUE_NOCOPY_CONTENTS.
3104 In contrast to collect_value(), lcopy_value() is obliged to
3105 always properly support %G_VALUE_NOCOPY_CONTENTS.
3106 Similar to collect_value() the function may prematurely abort
3107 by returning a newly allocated string describing an error condition.
3108 To complete the string example:
3109 |[
3110 gchar **string_p = collect_values[0].v_pointer;
3111 if (!string_p)
3112 return g_strdup_printf (&quot;string location passed as NULL&quot;);
3113 if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
3114 *string_p = value-&gt;data[0].v_pointer;
3115 else
3116 *string_p = g_strdup (value-&gt;data[0].v_pointer);
3117 ]|
3118 And an illustrative version of lcopy_value() for
3119 reference-counted types:
3120 |[
3121 GObject **object_p = collect_values[0].v_pointer;
3122 if (!object_p)
3123 return g_strdup_printf (&quot;object location passed as NULL&quot;);
3124 if (!value-&gt;data[0].v_pointer)
3125 *object_p = NULL;
3126 else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS) // always honour
3127 *object_p = value-&gt;data[0].v_pointer;
3128 else
3129 *object_p = g_object_ref (value-&gt;data[0].v_pointer);
3130 return NULL;
3131 ]|
3132 The #GTypeValueTable provides the functions required by the #GValue implementation,
3133 to serve as a container for values of a type.">
3134       <field name="value_init">
3135         <type name="any" c:type="pointer"/>
3136       </field>
3137       <field name="value_free">
3138         <type name="any" c:type="pointer"/>
3139       </field>
3140       <field name="value_copy">
3141         <type name="any" c:type="pointer"/>
3142       </field>
3143       <field name="value_peek_pointer">
3144         <type name="any" c:type="pointer"/>
3145       </field>
3146       <field name="collect_format" writable="1">
3147         <type name="utf8" c:type="gchar*"/>
3148       </field>
3149       <field name="collect_value">
3150         <type name="any" c:type="pointer"/>
3151       </field>
3152       <field name="lcopy_format" writable="1">
3153         <type name="utf8" c:type="gchar*"/>
3154       </field>
3155       <field name="lcopy_value">
3156         <type name="any" c:type="pointer"/>
3157       </field>
3158     </record>
3159     <constant name="VALUE_COLLECT_FORMAT_MAX_LENGTH" value="8">
3160       <type name="int"/>
3161     </constant>
3162     <constant name="VALUE_NOCOPY_CONTENTS" value="134217728">
3163       <type name="int"/>
3164     </constant>
3165     <record name="Value"
3166             c:type="GValue"
3167             doc="An opaque structure used to hold different types of values.
3168 to functions within a #GTypeValueTable structure, or implementations of
3169 the g_value_*() API. That is, code portions which implement new fundamental
3170 types.
3171 #GValue users can not make any assumptions about how data is stored
3172 within the 2 element @data union, and the @g_type member should
3173 only be accessed through the G_VALUE_TYPE() macro."
3174             glib:type-name="GValue"
3175             glib:get-type="g_value_get_type">
3176       <field name="g_type" writable="1">
3177         <type name="GType" c:type="GType"/>
3178       </field>
3179       <field name="data" writable="1">
3180         <array zero-terminated="0" c:type="any" fixed-size="2">
3181           <type name="any"/>
3182         </array>
3183       </field>
3184       <method name="set_boxed" c:identifier="g_value_set_boxed">
3185         <return-value transfer-ownership="none">
3186           <type name="none" c:type="void"/>
3187         </return-value>
3188         <parameters>
3189           <parameter name="v_boxed" transfer-ownership="none">
3190             <type name="any" c:type="gconstpointer"/>
3191           </parameter>
3192         </parameters>
3193       </method>
3194       <method name="set_static_boxed" c:identifier="g_value_set_static_boxed">
3195         <return-value transfer-ownership="none">
3196           <type name="none" c:type="void"/>
3197         </return-value>
3198         <parameters>
3199           <parameter name="v_boxed" transfer-ownership="none">
3200             <type name="any" c:type="gconstpointer"/>
3201           </parameter>
3202         </parameters>
3203       </method>
3204       <method name="get_boxed" c:identifier="g_value_get_boxed">
3205         <return-value transfer-ownership="none">
3206           <type name="any" c:type="gpointer"/>
3207         </return-value>
3208       </method>
3209       <method name="dup_boxed" c:identifier="g_value_dup_boxed">
3210         <return-value transfer-ownership="none">
3211           <type name="any" c:type="gpointer"/>
3212         </return-value>
3213       </method>
3214       <method name="take_boxed" c:identifier="g_value_take_boxed">
3215         <return-value transfer-ownership="none">
3216           <type name="none" c:type="void"/>
3217         </return-value>
3218         <parameters>
3219           <parameter name="v_boxed" transfer-ownership="none">
3220             <type name="any" c:type="gconstpointer"/>
3221           </parameter>
3222         </parameters>
3223       </method>
3224       <method name="set_boxed_take_ownership"
3225               c:identifier="g_value_set_boxed_take_ownership">
3226         <return-value transfer-ownership="none">
3227           <type name="none" c:type="void"/>
3228         </return-value>
3229         <parameters>
3230           <parameter name="v_boxed" transfer-ownership="none">
3231             <type name="any" c:type="gconstpointer"/>
3232           </parameter>
3233         </parameters>
3234       </method>
3235       <method name="set_enum" c:identifier="g_value_set_enum">
3236         <return-value transfer-ownership="none">
3237           <type name="none" c:type="void"/>
3238         </return-value>
3239         <parameters>
3240           <parameter name="v_enum" transfer-ownership="none">
3241             <type name="int" c:type="gint"/>
3242           </parameter>
3243         </parameters>
3244       </method>
3245       <method name="get_enum" c:identifier="g_value_get_enum">
3246         <return-value transfer-ownership="none">
3247           <type name="int" c:type="gint"/>
3248         </return-value>
3249       </method>
3250       <method name="set_flags" c:identifier="g_value_set_flags">
3251         <return-value transfer-ownership="none">
3252           <type name="none" c:type="void"/>
3253         </return-value>
3254         <parameters>
3255           <parameter name="v_flags" transfer-ownership="none">
3256             <type name="uint" c:type="guint"/>
3257           </parameter>
3258         </parameters>
3259       </method>
3260       <method name="get_flags" c:identifier="g_value_get_flags">
3261         <return-value transfer-ownership="none">
3262           <type name="uint" c:type="guint"/>
3263         </return-value>
3264       </method>
3265       <method name="init" c:identifier="g_value_init">
3266         <return-value transfer-ownership="full">
3267           <type name="Value" c:type="GValue*"/>
3268         </return-value>
3269         <parameters>
3270           <parameter name="g_type" transfer-ownership="none">
3271             <type name="GType" c:type="GType"/>
3272           </parameter>
3273         </parameters>
3274       </method>
3275       <method name="copy" c:identifier="g_value_copy">
3276         <return-value transfer-ownership="none">
3277           <type name="none" c:type="void"/>
3278         </return-value>
3279         <parameters>
3280           <parameter name="dest_value" transfer-ownership="none">
3281             <type name="Value" c:type="GValue*"/>
3282           </parameter>
3283         </parameters>
3284       </method>
3285       <method name="reset" c:identifier="g_value_reset">
3286         <return-value transfer-ownership="full">
3287           <type name="Value" c:type="GValue*"/>
3288         </return-value>
3289       </method>
3290       <method name="unset" c:identifier="g_value_unset">
3291         <return-value transfer-ownership="none">
3292           <type name="none" c:type="void"/>
3293         </return-value>
3294       </method>
3295       <method name="set_instance" c:identifier="g_value_set_instance">
3296         <return-value transfer-ownership="none">
3297           <type name="none" c:type="void"/>
3298         </return-value>
3299         <parameters>
3300           <parameter name="instance" transfer-ownership="none">
3301             <type name="any" c:type="gpointer"/>
3302           </parameter>
3303         </parameters>
3304       </method>
3305       <method name="fits_pointer" c:identifier="g_value_fits_pointer">
3306         <return-value transfer-ownership="none">
3307           <type name="boolean" c:type="gboolean"/>
3308         </return-value>
3309       </method>
3310       <method name="peek_pointer" c:identifier="g_value_peek_pointer">
3311         <return-value transfer-ownership="none">
3312           <type name="any" c:type="gpointer"/>
3313         </return-value>
3314       </method>
3315       <method name="transform" c:identifier="g_value_transform">
3316         <return-value transfer-ownership="none">
3317           <type name="boolean" c:type="gboolean"/>
3318         </return-value>
3319         <parameters>
3320           <parameter name="dest_value" transfer-ownership="none">
3321             <type name="Value" c:type="GValue*"/>
3322           </parameter>
3323         </parameters>
3324       </method>
3325       <method name="set_param" c:identifier="g_value_set_param">
3326         <return-value transfer-ownership="none">
3327           <type name="none" c:type="void"/>
3328         </return-value>
3329         <parameters>
3330           <parameter name="param" transfer-ownership="none">
3331             <type name="ParamSpec" c:type="GParamSpec*"/>
3332           </parameter>
3333         </parameters>
3334       </method>
3335       <method name="get_param" c:identifier="g_value_get_param">
3336         <return-value transfer-ownership="full">
3337           <type name="ParamSpec" c:type="GParamSpec*"/>
3338         </return-value>
3339       </method>
3340       <method name="dup_param" c:identifier="g_value_dup_param">
3341         <return-value transfer-ownership="full">
3342           <type name="ParamSpec" c:type="GParamSpec*"/>
3343         </return-value>
3344       </method>
3345       <method name="take_param" c:identifier="g_value_take_param">
3346         <return-value transfer-ownership="none">
3347           <type name="none" c:type="void"/>
3348         </return-value>
3349         <parameters>
3350           <parameter name="param" transfer-ownership="none">
3351             <type name="ParamSpec" c:type="GParamSpec*"/>
3352           </parameter>
3353         </parameters>
3354       </method>
3355       <method name="set_param_take_ownership"
3356               c:identifier="g_value_set_param_take_ownership">
3357         <return-value transfer-ownership="none">
3358           <type name="none" c:type="void"/>
3359         </return-value>
3360         <parameters>
3361           <parameter name="param" transfer-ownership="none">
3362             <type name="ParamSpec" c:type="GParamSpec*"/>
3363           </parameter>
3364         </parameters>
3365       </method>
3366       <method name="set_object" c:identifier="g_value_set_object">
3367         <return-value transfer-ownership="none">
3368           <type name="none" c:type="void"/>
3369         </return-value>
3370         <parameters>
3371           <parameter name="v_object" transfer-ownership="none">
3372             <type name="any" c:type="gpointer"/>
3373           </parameter>
3374         </parameters>
3375       </method>
3376       <method name="get_object" c:identifier="g_value_get_object">
3377         <return-value transfer-ownership="none">
3378           <type name="any" c:type="gpointer"/>
3379         </return-value>
3380       </method>
3381       <method name="dup_object" c:identifier="g_value_dup_object">
3382         <return-value transfer-ownership="none">
3383           <type name="any" c:type="gpointer"/>
3384         </return-value>
3385       </method>
3386       <method name="take_object" c:identifier="g_value_take_object">
3387         <return-value transfer-ownership="none">
3388           <type name="none" c:type="void"/>
3389         </return-value>
3390         <parameters>
3391           <parameter name="v_object" transfer-ownership="none">
3392             <type name="any" c:type="gpointer"/>
3393           </parameter>
3394         </parameters>
3395       </method>
3396       <method name="set_object_take_ownership"
3397               c:identifier="g_value_set_object_take_ownership">
3398         <return-value transfer-ownership="none">
3399           <type name="none" c:type="void"/>
3400         </return-value>
3401         <parameters>
3402           <parameter name="v_object" transfer-ownership="none">
3403             <type name="any" c:type="gpointer"/>
3404           </parameter>
3405         </parameters>
3406       </method>
3407       <method name="set_char" c:identifier="g_value_set_char">
3408         <return-value transfer-ownership="none">
3409           <type name="none" c:type="void"/>
3410         </return-value>
3411         <parameters>
3412           <parameter name="v_char" transfer-ownership="none">
3413             <type name="int8" c:type="gchar"/>
3414           </parameter>
3415         </parameters>
3416       </method>
3417       <method name="get_char" c:identifier="g_value_get_char">
3418         <return-value transfer-ownership="none">
3419           <type name="int8" c:type="gchar"/>
3420         </return-value>
3421       </method>
3422       <method name="set_uchar" c:identifier="g_value_set_uchar">
3423         <return-value transfer-ownership="none">
3424           <type name="none" c:type="void"/>
3425         </return-value>
3426         <parameters>
3427           <parameter name="v_uchar" transfer-ownership="none">
3428             <type name="uint8" c:type="guchar"/>
3429           </parameter>
3430         </parameters>
3431       </method>
3432       <method name="get_uchar" c:identifier="g_value_get_uchar">
3433         <return-value transfer-ownership="none">
3434           <type name="uint8" c:type="guchar"/>
3435         </return-value>
3436       </method>
3437       <method name="set_boolean" c:identifier="g_value_set_boolean">
3438         <return-value transfer-ownership="none">
3439           <type name="none" c:type="void"/>
3440         </return-value>
3441         <parameters>
3442           <parameter name="v_boolean" transfer-ownership="none">
3443             <type name="boolean" c:type="gboolean"/>
3444           </parameter>
3445         </parameters>
3446       </method>
3447       <method name="get_boolean" c:identifier="g_value_get_boolean">
3448         <return-value transfer-ownership="none">
3449           <type name="boolean" c:type="gboolean"/>
3450         </return-value>
3451       </method>
3452       <method name="set_int" c:identifier="g_value_set_int">
3453         <return-value transfer-ownership="none">
3454           <type name="none" c:type="void"/>
3455         </return-value>
3456         <parameters>
3457           <parameter name="v_int" transfer-ownership="none">
3458             <type name="int" c:type="gint"/>
3459           </parameter>
3460         </parameters>
3461       </method>
3462       <method name="get_int" c:identifier="g_value_get_int">
3463         <return-value transfer-ownership="none">
3464           <type name="int" c:type="gint"/>
3465         </return-value>
3466       </method>
3467       <method name="set_uint" c:identifier="g_value_set_uint">
3468         <return-value transfer-ownership="none">
3469           <type name="none" c:type="void"/>
3470         </return-value>
3471         <parameters>
3472           <parameter name="v_uint" transfer-ownership="none">
3473             <type name="uint" c:type="guint"/>
3474           </parameter>
3475         </parameters>
3476       </method>
3477       <method name="get_uint" c:identifier="g_value_get_uint">
3478         <return-value transfer-ownership="none">
3479           <type name="uint" c:type="guint"/>
3480         </return-value>
3481       </method>
3482       <method name="set_long" c:identifier="g_value_set_long">
3483         <return-value transfer-ownership="none">
3484           <type name="none" c:type="void"/>
3485         </return-value>
3486         <parameters>
3487           <parameter name="v_long" transfer-ownership="none">
3488             <type name="long" c:type="glong"/>
3489           </parameter>
3490         </parameters>
3491       </method>
3492       <method name="get_long" c:identifier="g_value_get_long">
3493         <return-value transfer-ownership="none">
3494           <type name="long" c:type="glong"/>
3495         </return-value>
3496       </method>
3497       <method name="set_ulong" c:identifier="g_value_set_ulong">
3498         <return-value transfer-ownership="none">
3499           <type name="none" c:type="void"/>
3500         </return-value>
3501         <parameters>
3502           <parameter name="v_ulong" transfer-ownership="none">
3503             <type name="ulong" c:type="gulong"/>
3504           </parameter>
3505         </parameters>
3506       </method>
3507       <method name="get_ulong" c:identifier="g_value_get_ulong">
3508         <return-value transfer-ownership="none">
3509           <type name="ulong" c:type="gulong"/>
3510         </return-value>
3511       </method>
3512       <method name="set_int64" c:identifier="g_value_set_int64">
3513         <return-value transfer-ownership="none">
3514           <type name="none" c:type="void"/>
3515         </return-value>
3516         <parameters>
3517           <parameter name="v_int64" transfer-ownership="none">
3518             <type name="int64" c:type="gint64"/>
3519           </parameter>
3520         </parameters>
3521       </method>
3522       <method name="get_int64" c:identifier="g_value_get_int64">
3523         <return-value transfer-ownership="none">
3524           <type name="int64" c:type="gint64"/>
3525         </return-value>
3526       </method>
3527       <method name="set_uint64" c:identifier="g_value_set_uint64">
3528         <return-value transfer-ownership="none">
3529           <type name="none" c:type="void"/>
3530         </return-value>
3531         <parameters>
3532           <parameter name="v_uint64" transfer-ownership="none">
3533             <type name="uint64" c:type="guint64"/>
3534           </parameter>
3535         </parameters>
3536       </method>
3537       <method name="get_uint64" c:identifier="g_value_get_uint64">
3538         <return-value transfer-ownership="none">
3539           <type name="uint64" c:type="guint64"/>
3540         </return-value>
3541       </method>
3542       <method name="set_float" c:identifier="g_value_set_float">
3543         <return-value transfer-ownership="none">
3544           <type name="none" c:type="void"/>
3545         </return-value>
3546         <parameters>
3547           <parameter name="v_float" transfer-ownership="none">
3548             <type name="float" c:type="gfloat"/>
3549           </parameter>
3550         </parameters>
3551       </method>
3552       <method name="get_float" c:identifier="g_value_get_float">
3553         <return-value transfer-ownership="none">
3554           <type name="float" c:type="gfloat"/>
3555         </return-value>
3556       </method>
3557       <method name="set_double" c:identifier="g_value_set_double">
3558         <return-value transfer-ownership="none">
3559           <type name="none" c:type="void"/>
3560         </return-value>
3561         <parameters>
3562           <parameter name="v_double" transfer-ownership="none">
3563             <type name="double" c:type="gdouble"/>
3564           </parameter>
3565         </parameters>
3566       </method>
3567       <method name="get_double" c:identifier="g_value_get_double">
3568         <return-value transfer-ownership="none">
3569           <type name="double" c:type="gdouble"/>
3570         </return-value>
3571       </method>
3572       <method name="set_string" c:identifier="g_value_set_string">
3573         <return-value transfer-ownership="none">
3574           <type name="none" c:type="void"/>
3575         </return-value>
3576         <parameters>
3577           <parameter name="v_string" transfer-ownership="none">
3578             <type name="utf8" c:type="gchar*"/>
3579           </parameter>
3580         </parameters>
3581       </method>
3582       <method name="set_static_string"
3583               c:identifier="g_value_set_static_string">
3584         <return-value transfer-ownership="none">
3585           <type name="none" c:type="void"/>
3586         </return-value>
3587         <parameters>
3588           <parameter name="v_string" transfer-ownership="none">
3589             <type name="utf8" c:type="gchar*"/>
3590           </parameter>
3591         </parameters>
3592       </method>
3593       <method name="get_string" c:identifier="g_value_get_string">
3594         <return-value transfer-ownership="none">
3595           <type name="utf8" c:type="gchar*"/>
3596         </return-value>
3597       </method>
3598       <method name="dup_string" c:identifier="g_value_dup_string">
3599         <return-value transfer-ownership="full">
3600           <type name="utf8" c:type="gchar*"/>
3601         </return-value>
3602       </method>
3603       <method name="set_pointer" c:identifier="g_value_set_pointer">
3604         <return-value transfer-ownership="none">
3605           <type name="none" c:type="void"/>
3606         </return-value>
3607         <parameters>
3608           <parameter name="v_pointer" transfer-ownership="none">
3609             <type name="any" c:type="gpointer"/>
3610           </parameter>
3611         </parameters>
3612       </method>
3613       <method name="get_pointer" c:identifier="g_value_get_pointer">
3614         <return-value transfer-ownership="none">
3615           <type name="any" c:type="gpointer"/>
3616         </return-value>
3617       </method>
3618       <method name="set_gtype" c:identifier="g_value_set_gtype">
3619         <return-value transfer-ownership="none">
3620           <type name="none" c:type="void"/>
3621         </return-value>
3622         <parameters>
3623           <parameter name="v_gtype" transfer-ownership="none">
3624             <type name="GType" c:type="GType"/>
3625           </parameter>
3626         </parameters>
3627       </method>
3628       <method name="get_gtype" c:identifier="g_value_get_gtype">
3629         <return-value transfer-ownership="none">
3630           <type name="GType" c:type="GType"/>
3631         </return-value>
3632       </method>
3633       <method name="take_string" c:identifier="g_value_take_string">
3634         <return-value transfer-ownership="none">
3635           <type name="none" c:type="void"/>
3636         </return-value>
3637         <parameters>
3638           <parameter name="v_string" transfer-ownership="full">
3639             <type name="utf8" c:type="gchar*"/>
3640           </parameter>
3641         </parameters>
3642       </method>
3643       <method name="set_string_take_ownership"
3644               c:identifier="g_value_set_string_take_ownership">
3645         <return-value transfer-ownership="none">
3646           <type name="none" c:type="void"/>
3647         </return-value>
3648         <parameters>
3649           <parameter name="v_string" transfer-ownership="full">
3650             <type name="utf8" c:type="gchar*"/>
3651           </parameter>
3652         </parameters>
3653       </method>
3654     </record>
3655     <record name="ValueArray"
3656             c:type="GValueArray"
3657             doc="A #GValueArray contains an array of #GValue elements."
3658             glib:type-name="GValueArray"
3659             glib:get-type="g_value_array_get_type">
3660       <field name="n_values" writable="1">
3661         <type name="uint" c:type="guint"/>
3662       </field>
3663       <field name="values" writable="1">
3664         <type name="Value" c:type="GValue*"/>
3665       </field>
3666       <field name="n_prealloced" writable="1">
3667         <type name="uint" c:type="guint"/>
3668       </field>
3669       <constructor name="new" c:identifier="g_value_array_new">
3670         <return-value transfer-ownership="full">
3671           <type name="ValueArray" c:type="GValueArray*"/>
3672         </return-value>
3673         <parameters>
3674           <parameter name="n_prealloced" transfer-ownership="none">
3675             <type name="uint" c:type="guint"/>
3676           </parameter>
3677         </parameters>
3678       </constructor>
3679       <method name="get_nth" c:identifier="g_value_array_get_nth">
3680         <return-value transfer-ownership="full">
3681           <type name="Value" c:type="GValue*"/>
3682         </return-value>
3683         <parameters>
3684           <parameter name="index_" transfer-ownership="none">
3685             <type name="uint" c:type="guint"/>
3686           </parameter>
3687         </parameters>
3688       </method>
3689       <method name="free" c:identifier="g_value_array_free">
3690         <return-value transfer-ownership="none">
3691           <type name="none" c:type="void"/>
3692         </return-value>
3693       </method>
3694       <method name="copy" c:identifier="g_value_array_copy">
3695         <return-value transfer-ownership="full">
3696           <type name="ValueArray" c:type="GValueArray*"/>
3697         </return-value>
3698       </method>
3699       <method name="prepend" c:identifier="g_value_array_prepend">
3700         <return-value transfer-ownership="full">
3701           <type name="ValueArray" c:type="GValueArray*"/>
3702         </return-value>
3703         <parameters>
3704           <parameter name="value" transfer-ownership="none">
3705             <type name="Value" c:type="GValue*"/>
3706           </parameter>
3707         </parameters>
3708       </method>
3709       <method name="append" c:identifier="g_value_array_append">
3710         <return-value transfer-ownership="full">
3711           <type name="ValueArray" c:type="GValueArray*"/>
3712         </return-value>
3713         <parameters>
3714           <parameter name="value" transfer-ownership="none">
3715             <type name="Value" c:type="GValue*"/>
3716           </parameter>
3717         </parameters>
3718       </method>
3719       <method name="insert" c:identifier="g_value_array_insert">
3720         <return-value transfer-ownership="full">
3721           <type name="ValueArray" c:type="GValueArray*"/>
3722         </return-value>
3723         <parameters>
3724           <parameter name="index_" transfer-ownership="none">
3725             <type name="uint" c:type="guint"/>
3726           </parameter>
3727           <parameter name="value" transfer-ownership="none">
3728             <type name="Value" c:type="GValue*"/>
3729           </parameter>
3730         </parameters>
3731       </method>
3732       <method name="remove" c:identifier="g_value_array_remove">
3733         <return-value transfer-ownership="full">
3734           <type name="ValueArray" c:type="GValueArray*"/>
3735         </return-value>
3736         <parameters>
3737           <parameter name="index_" transfer-ownership="none">
3738             <type name="uint" c:type="guint"/>
3739           </parameter>
3740         </parameters>
3741       </method>
3742       <method name="sort" c:identifier="g_value_array_sort">
3743         <return-value transfer-ownership="full">
3744           <type name="ValueArray" c:type="GValueArray*"/>
3745         </return-value>
3746         <parameters>
3747           <parameter name="compare_func"
3748                      transfer-ownership="none"
3749                      scope="call">
3750             <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
3751           </parameter>
3752         </parameters>
3753       </method>
3754       <method name="sort_with_data"
3755               c:identifier="g_value_array_sort_with_data">
3756         <return-value transfer-ownership="full">
3757           <type name="ValueArray" c:type="GValueArray*"/>
3758         </return-value>
3759         <parameters>
3760           <parameter name="compare_func"
3761                      transfer-ownership="none"
3762                      scope="call"
3763                      closure="2">
3764             <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
3765           </parameter>
3766           <parameter name="user_data" transfer-ownership="none">
3767             <type name="any" c:type="gpointer"/>
3768           </parameter>
3769         </parameters>
3770       </method>
3771     </record>
3772     <callback name="ValueTransform"
3773               c:type="GValueTransform"
3774               doc="The type of value transformation functions which can be registered with
3775 g_value_register_transform_func().">
3776       <return-value transfer-ownership="none">
3777         <type name="none" c:type="void"/>
3778       </return-value>
3779       <parameters>
3780         <parameter name="src_value" transfer-ownership="none">
3781           <type name="Value" c:type="GValue*"/>
3782         </parameter>
3783         <parameter name="dest_value" transfer-ownership="none">
3784           <type name="Value" c:type="GValue*"/>
3785         </parameter>
3786       </parameters>
3787     </callback>
3788     <callback name="WeakNotify"
3789               c:type="GWeakNotify"
3790               doc="A #GWeakNotify function can be added to an object as a callback that gets
3791 triggered when the object is finalized. Since the object is already being
3792 finalized when the #GWeakNotify is called, there&apos;s not much you could do
3793 with the object, apart from e.g. using its adress as hash-index or the like.">
3794       <return-value transfer-ownership="none">
3795         <type name="none" c:type="void"/>
3796       </return-value>
3797       <parameters>
3798         <parameter name="data" transfer-ownership="none">
3799           <type name="any" c:type="gpointer"/>
3800         </parameter>
3801         <parameter name="where_the_object_was" transfer-ownership="none">
3802           <type name="Object" c:type="GObject*"/>
3803         </parameter>
3804       </parameters>
3805     </callback>
3806     <function name="boxed_copy" c:identifier="g_boxed_copy">
3807       <return-value transfer-ownership="none">
3808         <type name="any" c:type="gpointer"/>
3809       </return-value>
3810       <parameters>
3811         <parameter name="boxed_type" transfer-ownership="none">
3812           <type name="GType" c:type="GType"/>
3813         </parameter>
3814         <parameter name="src_boxed" transfer-ownership="none">
3815           <type name="any" c:type="gconstpointer"/>
3816         </parameter>
3817       </parameters>
3818     </function>
3819     <function name="boxed_free" c:identifier="g_boxed_free">
3820       <return-value transfer-ownership="none">
3821         <type name="none" c:type="void"/>
3822       </return-value>
3823       <parameters>
3824         <parameter name="boxed_type" transfer-ownership="none">
3825           <type name="GType" c:type="GType"/>
3826         </parameter>
3827         <parameter name="boxed" transfer-ownership="none">
3828           <type name="any" c:type="gpointer"/>
3829         </parameter>
3830       </parameters>
3831     </function>
3832     <function name="boxed_type_init" c:identifier="g_boxed_type_init">
3833       <return-value transfer-ownership="none">
3834         <type name="none" c:type="void"/>
3835       </return-value>
3836     </function>
3837     <function name="boxed_type_register_static"
3838               c:identifier="g_boxed_type_register_static">
3839       <return-value transfer-ownership="none">
3840         <type name="GType" c:type="GType"/>
3841       </return-value>
3842       <parameters>
3843         <parameter name="name" transfer-ownership="none">
3844           <type name="utf8" c:type="gchar*"/>
3845         </parameter>
3846         <parameter name="boxed_copy" transfer-ownership="none" scope="call">
3847           <type name="BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
3848         </parameter>
3849         <parameter name="boxed_free" transfer-ownership="none" scope="call">
3850           <type name="BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
3851         </parameter>
3852       </parameters>
3853     </function>
3854     <function name="cclosure_new" c:identifier="g_cclosure_new">
3855       <return-value transfer-ownership="full">
3856         <type name="Closure" c:type="GClosure*"/>
3857       </return-value>
3858       <parameters>
3859         <parameter name="callback_func"
3860                    transfer-ownership="none"
3861                    scope="call"
3862                    closure="1">
3863           <type name="Callback" c:type="GCallback"/>
3864         </parameter>
3865         <parameter name="user_data" transfer-ownership="none">
3866           <type name="any" c:type="gpointer"/>
3867         </parameter>
3868         <parameter name="destroy_data" transfer-ownership="none" scope="call">
3869           <type name="ClosureNotify" c:type="GClosureNotify"/>
3870         </parameter>
3871       </parameters>
3872     </function>
3873     <function name="cclosure_new_object" c:identifier="g_cclosure_new_object">
3874       <return-value transfer-ownership="full">
3875         <type name="Closure" c:type="GClosure*"/>
3876       </return-value>
3877       <parameters>
3878         <parameter name="callback_func" transfer-ownership="none" scope="call">
3879           <type name="Callback" c:type="GCallback"/>
3880         </parameter>
3881         <parameter name="object" transfer-ownership="none">
3882           <type name="Object" c:type="GObject*"/>
3883         </parameter>
3884       </parameters>
3885     </function>
3886     <function name="cclosure_new_object_swap"
3887               c:identifier="g_cclosure_new_object_swap">
3888       <return-value transfer-ownership="full">
3889         <type name="Closure" c:type="GClosure*"/>
3890       </return-value>
3891       <parameters>
3892         <parameter name="callback_func" transfer-ownership="none" scope="call">
3893           <type name="Callback" c:type="GCallback"/>
3894         </parameter>
3895         <parameter name="object" transfer-ownership="none">
3896           <type name="Object" c:type="GObject*"/>
3897         </parameter>
3898       </parameters>
3899     </function>
3900     <function name="cclosure_new_swap" c:identifier="g_cclosure_new_swap">
3901       <return-value transfer-ownership="full">
3902         <type name="Closure" c:type="GClosure*"/>
3903       </return-value>
3904       <parameters>
3905         <parameter name="callback_func"
3906                    transfer-ownership="none"
3907                    scope="call"
3908                    closure="1">
3909           <type name="Callback" c:type="GCallback"/>
3910         </parameter>
3911         <parameter name="user_data" transfer-ownership="none">
3912           <type name="any" c:type="gpointer"/>
3913         </parameter>
3914         <parameter name="destroy_data" transfer-ownership="none" scope="call">
3915           <type name="ClosureNotify" c:type="GClosureNotify"/>
3916         </parameter>
3917       </parameters>
3918     </function>
3919     <function name="enum_complete_type_info"
3920               c:identifier="g_enum_complete_type_info">
3921       <return-value transfer-ownership="none">
3922         <type name="none" c:type="void"/>
3923       </return-value>
3924       <parameters>
3925         <parameter name="g_enum_type" transfer-ownership="none">
3926           <type name="GType" c:type="GType"/>
3927         </parameter>
3928         <parameter name="info" transfer-ownership="none">
3929           <type name="TypeInfo" c:type="GTypeInfo*"/>
3930         </parameter>
3931         <parameter name="const_values" transfer-ownership="none">
3932           <type name="EnumValue" c:type="GEnumValue*"/>
3933         </parameter>
3934       </parameters>
3935     </function>
3936     <function name="enum_get_value" c:identifier="g_enum_get_value">
3937       <return-value transfer-ownership="full">
3938         <type name="EnumValue" c:type="GEnumValue*"/>
3939       </return-value>
3940       <parameters>
3941         <parameter name="enum_class" transfer-ownership="none">
3942           <type name="EnumClass" c:type="GEnumClass*"/>
3943         </parameter>
3944         <parameter name="value" transfer-ownership="none">
3945           <type name="int" c:type="gint"/>
3946         </parameter>
3947       </parameters>
3948     </function>
3949     <function name="enum_get_value_by_name"
3950               c:identifier="g_enum_get_value_by_name">
3951       <return-value transfer-ownership="full">
3952         <type name="EnumValue" c:type="GEnumValue*"/>
3953       </return-value>
3954       <parameters>
3955         <parameter name="enum_class" transfer-ownership="none">
3956           <type name="EnumClass" c:type="GEnumClass*"/>
3957         </parameter>
3958         <parameter name="name" transfer-ownership="none">
3959           <type name="utf8" c:type="gchar*"/>
3960         </parameter>
3961       </parameters>
3962     </function>
3963     <function name="enum_get_value_by_nick"
3964               c:identifier="g_enum_get_value_by_nick">
3965       <return-value transfer-ownership="full">
3966         <type name="EnumValue" c:type="GEnumValue*"/>
3967       </return-value>
3968       <parameters>
3969         <parameter name="enum_class" transfer-ownership="none">
3970           <type name="EnumClass" c:type="GEnumClass*"/>
3971         </parameter>
3972         <parameter name="nick" transfer-ownership="none">
3973           <type name="utf8" c:type="gchar*"/>
3974         </parameter>
3975       </parameters>
3976     </function>
3977     <function name="enum_register_static"
3978               c:identifier="g_enum_register_static">
3979       <return-value transfer-ownership="none">
3980         <type name="GType" c:type="GType"/>
3981       </return-value>
3982       <parameters>
3983         <parameter name="name" transfer-ownership="none">
3984           <type name="utf8" c:type="gchar*"/>
3985         </parameter>
3986         <parameter name="const_static_values" transfer-ownership="none">
3987           <type name="EnumValue" c:type="GEnumValue*"/>
3988         </parameter>
3989       </parameters>
3990     </function>
3991     <function name="enum_types_init" c:identifier="g_enum_types_init">
3992       <return-value transfer-ownership="none">
3993         <type name="none" c:type="void"/>
3994       </return-value>
3995     </function>
3996     <function name="flags_complete_type_info"
3997               c:identifier="g_flags_complete_type_info">
3998       <return-value transfer-ownership="none">
3999         <type name="none" c:type="void"/>
4000       </return-value>
4001       <parameters>
4002         <parameter name="g_flags_type" transfer-ownership="none">
4003           <type name="GType" c:type="GType"/>
4004         </parameter>
4005         <parameter name="info" transfer-ownership="none">
4006           <type name="TypeInfo" c:type="GTypeInfo*"/>
4007         </parameter>
4008         <parameter name="const_values" transfer-ownership="none">
4009           <type name="FlagsValue" c:type="GFlagsValue*"/>
4010         </parameter>
4011       </parameters>
4012     </function>
4013     <function name="flags_get_first_value"
4014               c:identifier="g_flags_get_first_value">
4015       <return-value transfer-ownership="full">
4016         <type name="FlagsValue" c:type="GFlagsValue*"/>
4017       </return-value>
4018       <parameters>
4019         <parameter name="flags_class" transfer-ownership="none">
4020           <type name="FlagsClass" c:type="GFlagsClass*"/>
4021         </parameter>
4022         <parameter name="value" transfer-ownership="none">
4023           <type name="uint" c:type="guint"/>
4024         </parameter>
4025       </parameters>
4026     </function>
4027     <function name="flags_get_value_by_name"
4028               c:identifier="g_flags_get_value_by_name">
4029       <return-value transfer-ownership="full">
4030         <type name="FlagsValue" c:type="GFlagsValue*"/>
4031       </return-value>
4032       <parameters>
4033         <parameter name="flags_class" transfer-ownership="none">
4034           <type name="FlagsClass" c:type="GFlagsClass*"/>
4035         </parameter>
4036         <parameter name="name" transfer-ownership="none">
4037           <type name="utf8" c:type="gchar*"/>
4038         </parameter>
4039       </parameters>
4040     </function>
4041     <function name="flags_get_value_by_nick"
4042               c:identifier="g_flags_get_value_by_nick">
4043       <return-value transfer-ownership="full">
4044         <type name="FlagsValue" c:type="GFlagsValue*"/>
4045       </return-value>
4046       <parameters>
4047         <parameter name="flags_class" transfer-ownership="none">
4048           <type name="FlagsClass" c:type="GFlagsClass*"/>
4049         </parameter>
4050         <parameter name="nick" transfer-ownership="none">
4051           <type name="utf8" c:type="gchar*"/>
4052         </parameter>
4053       </parameters>
4054     </function>
4055     <function name="flags_register_static"
4056               c:identifier="g_flags_register_static">
4057       <return-value transfer-ownership="none">
4058         <type name="GType" c:type="GType"/>
4059       </return-value>
4060       <parameters>
4061         <parameter name="name" transfer-ownership="none">
4062           <type name="utf8" c:type="gchar*"/>
4063         </parameter>
4064         <parameter name="const_static_values" transfer-ownership="none">
4065           <type name="FlagsValue" c:type="GFlagsValue*"/>
4066         </parameter>
4067       </parameters>
4068     </function>
4069     <function name="param_spec_boolean" c:identifier="g_param_spec_boolean">
4070       <return-value transfer-ownership="full">
4071         <type name="ParamSpec" c:type="GParamSpec*"/>
4072       </return-value>
4073       <parameters>
4074         <parameter name="name" transfer-ownership="none">
4075           <type name="utf8" c:type="gchar*"/>
4076         </parameter>
4077         <parameter name="nick" transfer-ownership="none">
4078           <type name="utf8" c:type="gchar*"/>
4079         </parameter>
4080         <parameter name="blurb" transfer-ownership="none">
4081           <type name="utf8" c:type="gchar*"/>
4082         </parameter>
4083         <parameter name="default_value" transfer-ownership="none">
4084           <type name="boolean" c:type="gboolean"/>
4085         </parameter>
4086         <parameter name="flags" transfer-ownership="none">
4087           <type name="ParamFlags" c:type="GParamFlags"/>
4088         </parameter>
4089       </parameters>
4090     </function>
4091     <function name="param_spec_boxed" c:identifier="g_param_spec_boxed">
4092       <return-value transfer-ownership="full">
4093         <type name="ParamSpec" c:type="GParamSpec*"/>
4094       </return-value>
4095       <parameters>
4096         <parameter name="name" transfer-ownership="none">
4097           <type name="utf8" c:type="gchar*"/>
4098         </parameter>
4099         <parameter name="nick" transfer-ownership="none">
4100           <type name="utf8" c:type="gchar*"/>
4101         </parameter>
4102         <parameter name="blurb" transfer-ownership="none">
4103           <type name="utf8" c:type="gchar*"/>
4104         </parameter>
4105         <parameter name="boxed_type" transfer-ownership="none">
4106           <type name="GType" c:type="GType"/>
4107         </parameter>
4108         <parameter name="flags" transfer-ownership="none">
4109           <type name="ParamFlags" c:type="GParamFlags"/>
4110         </parameter>
4111       </parameters>
4112     </function>
4113     <function name="param_spec_double" c:identifier="g_param_spec_double">
4114       <return-value transfer-ownership="full">
4115         <type name="ParamSpec" c:type="GParamSpec*"/>
4116       </return-value>
4117       <parameters>
4118         <parameter name="name" transfer-ownership="none">
4119           <type name="utf8" c:type="gchar*"/>
4120         </parameter>
4121         <parameter name="nick" transfer-ownership="none">
4122           <type name="utf8" c:type="gchar*"/>
4123         </parameter>
4124         <parameter name="blurb" transfer-ownership="none">
4125           <type name="utf8" c:type="gchar*"/>
4126         </parameter>
4127         <parameter name="minimum" transfer-ownership="none">
4128           <type name="double" c:type="gdouble"/>
4129         </parameter>
4130         <parameter name="maximum" transfer-ownership="none">
4131           <type name="double" c:type="gdouble"/>
4132         </parameter>
4133         <parameter name="default_value" transfer-ownership="none">
4134           <type name="double" c:type="gdouble"/>
4135         </parameter>
4136         <parameter name="flags" transfer-ownership="none">
4137           <type name="ParamFlags" c:type="GParamFlags"/>
4138         </parameter>
4139       </parameters>
4140     </function>
4141     <function name="param_spec_enum" c:identifier="g_param_spec_enum">
4142       <return-value transfer-ownership="full">
4143         <type name="ParamSpec" c:type="GParamSpec*"/>
4144       </return-value>
4145       <parameters>
4146         <parameter name="name" transfer-ownership="none">
4147           <type name="utf8" c:type="gchar*"/>
4148         </parameter>
4149         <parameter name="nick" transfer-ownership="none">
4150           <type name="utf8" c:type="gchar*"/>
4151         </parameter>
4152         <parameter name="blurb" transfer-ownership="none">
4153           <type name="utf8" c:type="gchar*"/>
4154         </parameter>
4155         <parameter name="enum_type" transfer-ownership="none">
4156           <type name="GType" c:type="GType"/>
4157         </parameter>
4158         <parameter name="default_value" transfer-ownership="none">
4159           <type name="int" c:type="gint"/>
4160         </parameter>
4161         <parameter name="flags" transfer-ownership="none">
4162           <type name="ParamFlags" c:type="GParamFlags"/>
4163         </parameter>
4164       </parameters>
4165     </function>
4166     <function name="param_spec_flags" c:identifier="g_param_spec_flags">
4167       <return-value transfer-ownership="full">
4168         <type name="ParamSpec" c:type="GParamSpec*"/>
4169       </return-value>
4170       <parameters>
4171         <parameter name="name" transfer-ownership="none">
4172           <type name="utf8" c:type="gchar*"/>
4173         </parameter>
4174         <parameter name="nick" transfer-ownership="none">
4175           <type name="utf8" c:type="gchar*"/>
4176         </parameter>
4177         <parameter name="blurb" transfer-ownership="none">
4178           <type name="utf8" c:type="gchar*"/>
4179         </parameter>
4180         <parameter name="flags_type" transfer-ownership="none">
4181           <type name="GType" c:type="GType"/>
4182         </parameter>
4183         <parameter name="default_value" transfer-ownership="none">
4184           <type name="uint" c:type="guint"/>
4185         </parameter>
4186         <parameter name="flags" transfer-ownership="none">
4187           <type name="ParamFlags" c:type="GParamFlags"/>
4188         </parameter>
4189       </parameters>
4190     </function>
4191     <function name="param_spec_float" c:identifier="g_param_spec_float">
4192       <return-value transfer-ownership="full">
4193         <type name="ParamSpec" c:type="GParamSpec*"/>
4194       </return-value>
4195       <parameters>
4196         <parameter name="name" transfer-ownership="none">
4197           <type name="utf8" c:type="gchar*"/>
4198         </parameter>
4199         <parameter name="nick" transfer-ownership="none">
4200           <type name="utf8" c:type="gchar*"/>
4201         </parameter>
4202         <parameter name="blurb" transfer-ownership="none">
4203           <type name="utf8" c:type="gchar*"/>
4204         </parameter>
4205         <parameter name="minimum" transfer-ownership="none">
4206           <type name="float" c:type="gfloat"/>
4207         </parameter>
4208         <parameter name="maximum" transfer-ownership="none">
4209           <type name="float" c:type="gfloat"/>
4210         </parameter>
4211         <parameter name="default_value" transfer-ownership="none">
4212           <type name="float" c:type="gfloat"/>
4213         </parameter>
4214         <parameter name="flags" transfer-ownership="none">
4215           <type name="ParamFlags" c:type="GParamFlags"/>
4216         </parameter>
4217       </parameters>
4218     </function>
4219     <function name="param_spec_gtype" c:identifier="g_param_spec_gtype">
4220       <return-value transfer-ownership="full">
4221         <type name="ParamSpec" c:type="GParamSpec*"/>
4222       </return-value>
4223       <parameters>
4224         <parameter name="name" transfer-ownership="none">
4225           <type name="utf8" c:type="gchar*"/>
4226         </parameter>
4227         <parameter name="nick" transfer-ownership="none">
4228           <type name="utf8" c:type="gchar*"/>
4229         </parameter>
4230         <parameter name="blurb" transfer-ownership="none">
4231           <type name="utf8" c:type="gchar*"/>
4232         </parameter>
4233         <parameter name="is_a_type" transfer-ownership="none">
4234           <type name="GType" c:type="GType"/>
4235         </parameter>
4236         <parameter name="flags" transfer-ownership="none">
4237           <type name="ParamFlags" c:type="GParamFlags"/>
4238         </parameter>
4239       </parameters>
4240     </function>
4241     <function name="param_spec_int" c:identifier="g_param_spec_int">
4242       <return-value transfer-ownership="full">
4243         <type name="ParamSpec" c:type="GParamSpec*"/>
4244       </return-value>
4245       <parameters>
4246         <parameter name="name" transfer-ownership="none">
4247           <type name="utf8" c:type="gchar*"/>
4248         </parameter>
4249         <parameter name="nick" transfer-ownership="none">
4250           <type name="utf8" c:type="gchar*"/>
4251         </parameter>
4252         <parameter name="blurb" transfer-ownership="none">
4253           <type name="utf8" c:type="gchar*"/>
4254         </parameter>
4255         <parameter name="minimum" transfer-ownership="none">
4256           <type name="int" c:type="gint"/>
4257         </parameter>
4258         <parameter name="maximum" transfer-ownership="none">
4259           <type name="int" c:type="gint"/>
4260         </parameter>
4261         <parameter name="default_value" transfer-ownership="none">
4262           <type name="int" c:type="gint"/>
4263         </parameter>
4264         <parameter name="flags" transfer-ownership="none">
4265           <type name="ParamFlags" c:type="GParamFlags"/>
4266         </parameter>
4267       </parameters>
4268     </function>
4269     <function name="param_spec_int64" c:identifier="g_param_spec_int64">
4270       <return-value transfer-ownership="full">
4271         <type name="ParamSpec" c:type="GParamSpec*"/>
4272       </return-value>
4273       <parameters>
4274         <parameter name="name" transfer-ownership="none">
4275           <type name="utf8" c:type="gchar*"/>
4276         </parameter>
4277         <parameter name="nick" transfer-ownership="none">
4278           <type name="utf8" c:type="gchar*"/>
4279         </parameter>
4280         <parameter name="blurb" transfer-ownership="none">
4281           <type name="utf8" c:type="gchar*"/>
4282         </parameter>
4283         <parameter name="minimum" transfer-ownership="none">
4284           <type name="int64" c:type="gint64"/>
4285         </parameter>
4286         <parameter name="maximum" transfer-ownership="none">
4287           <type name="int64" c:type="gint64"/>
4288         </parameter>
4289         <parameter name="default_value" transfer-ownership="none">
4290           <type name="int64" c:type="gint64"/>
4291         </parameter>
4292         <parameter name="flags" transfer-ownership="none">
4293           <type name="ParamFlags" c:type="GParamFlags"/>
4294         </parameter>
4295       </parameters>
4296     </function>
4297     <function name="param_spec_internal" c:identifier="g_param_spec_internal">
4298       <return-value transfer-ownership="none">
4299         <type name="any" c:type="gpointer"/>
4300       </return-value>
4301       <parameters>
4302         <parameter name="param_type" transfer-ownership="none">
4303           <type name="GType" c:type="GType"/>
4304         </parameter>
4305         <parameter name="name" transfer-ownership="none">
4306           <type name="utf8" c:type="gchar*"/>
4307         </parameter>
4308         <parameter name="nick" transfer-ownership="none">
4309           <type name="utf8" c:type="gchar*"/>
4310         </parameter>
4311         <parameter name="blurb" transfer-ownership="none">
4312           <type name="utf8" c:type="gchar*"/>
4313         </parameter>
4314         <parameter name="flags" transfer-ownership="none">
4315           <type name="ParamFlags" c:type="GParamFlags"/>
4316         </parameter>
4317       </parameters>
4318     </function>
4319     <function name="param_spec_long" c:identifier="g_param_spec_long">
4320       <return-value transfer-ownership="full">
4321         <type name="ParamSpec" c:type="GParamSpec*"/>
4322       </return-value>
4323       <parameters>
4324         <parameter name="name" transfer-ownership="none">
4325           <type name="utf8" c:type="gchar*"/>
4326         </parameter>
4327         <parameter name="nick" transfer-ownership="none">
4328           <type name="utf8" c:type="gchar*"/>
4329         </parameter>
4330         <parameter name="blurb" transfer-ownership="none">
4331           <type name="utf8" c:type="gchar*"/>
4332         </parameter>
4333         <parameter name="minimum" transfer-ownership="none">
4334           <type name="long" c:type="glong"/>
4335         </parameter>
4336         <parameter name="maximum" transfer-ownership="none">
4337           <type name="long" c:type="glong"/>
4338         </parameter>
4339         <parameter name="default_value" transfer-ownership="none">
4340           <type name="long" c:type="glong"/>
4341         </parameter>
4342         <parameter name="flags" transfer-ownership="none">
4343           <type name="ParamFlags" c:type="GParamFlags"/>
4344         </parameter>
4345       </parameters>
4346     </function>
4347     <function name="param_spec_object" c:identifier="g_param_spec_object">
4348       <return-value transfer-ownership="full">
4349         <type name="ParamSpec" c:type="GParamSpec*"/>
4350       </return-value>
4351       <parameters>
4352         <parameter name="name" transfer-ownership="none">
4353           <type name="utf8" c:type="gchar*"/>
4354         </parameter>
4355         <parameter name="nick" transfer-ownership="none">
4356           <type name="utf8" c:type="gchar*"/>
4357         </parameter>
4358         <parameter name="blurb" transfer-ownership="none">
4359           <type name="utf8" c:type="gchar*"/>
4360         </parameter>
4361         <parameter name="object_type" transfer-ownership="none">
4362           <type name="GType" c:type="GType"/>
4363         </parameter>
4364         <parameter name="flags" transfer-ownership="none">
4365           <type name="ParamFlags" c:type="GParamFlags"/>
4366         </parameter>
4367       </parameters>
4368     </function>
4369     <function name="param_spec_override" c:identifier="g_param_spec_override">
4370       <return-value transfer-ownership="full">
4371         <type name="ParamSpec" c:type="GParamSpec*"/>
4372       </return-value>
4373       <parameters>
4374         <parameter name="name" transfer-ownership="none">
4375           <type name="utf8" c:type="gchar*"/>
4376         </parameter>
4377         <parameter name="overridden" transfer-ownership="none">
4378           <type name="ParamSpec" c:type="GParamSpec*"/>
4379         </parameter>
4380       </parameters>
4381     </function>
4382     <function name="param_spec_param" c:identifier="g_param_spec_param">
4383       <return-value transfer-ownership="full">
4384         <type name="ParamSpec" c:type="GParamSpec*"/>
4385       </return-value>
4386       <parameters>
4387         <parameter name="name" transfer-ownership="none">
4388           <type name="utf8" c:type="gchar*"/>
4389         </parameter>
4390         <parameter name="nick" transfer-ownership="none">
4391           <type name="utf8" c:type="gchar*"/>
4392         </parameter>
4393         <parameter name="blurb" transfer-ownership="none">
4394           <type name="utf8" c:type="gchar*"/>
4395         </parameter>
4396         <parameter name="param_type" transfer-ownership="none">
4397           <type name="GType" c:type="GType"/>
4398         </parameter>
4399         <parameter name="flags" transfer-ownership="none">
4400           <type name="ParamFlags" c:type="GParamFlags"/>
4401         </parameter>
4402       </parameters>
4403     </function>
4404     <function name="param_spec_pointer" c:identifier="g_param_spec_pointer">
4405       <return-value transfer-ownership="full">
4406         <type name="ParamSpec" c:type="GParamSpec*"/>
4407       </return-value>
4408       <parameters>
4409         <parameter name="name" transfer-ownership="none">
4410           <type name="utf8" c:type="gchar*"/>
4411         </parameter>
4412         <parameter name="nick" transfer-ownership="none">
4413           <type name="utf8" c:type="gchar*"/>
4414         </parameter>
4415         <parameter name="blurb" transfer-ownership="none">
4416           <type name="utf8" c:type="gchar*"/>
4417         </parameter>
4418         <parameter name="flags" transfer-ownership="none">
4419           <type name="ParamFlags" c:type="GParamFlags"/>
4420         </parameter>
4421       </parameters>
4422     </function>
4423     <function name="param_spec_string" c:identifier="g_param_spec_string">
4424       <return-value transfer-ownership="full">
4425         <type name="ParamSpec" c:type="GParamSpec*"/>
4426       </return-value>
4427       <parameters>
4428         <parameter name="name" transfer-ownership="none">
4429           <type name="utf8" c:type="gchar*"/>
4430         </parameter>
4431         <parameter name="nick" transfer-ownership="none">
4432           <type name="utf8" c:type="gchar*"/>
4433         </parameter>
4434         <parameter name="blurb" transfer-ownership="none">
4435           <type name="utf8" c:type="gchar*"/>
4436         </parameter>
4437         <parameter name="default_value" transfer-ownership="none">
4438           <type name="utf8" c:type="gchar*"/>
4439         </parameter>
4440         <parameter name="flags" transfer-ownership="none">
4441           <type name="ParamFlags" c:type="GParamFlags"/>
4442         </parameter>
4443       </parameters>
4444     </function>
4445     <function name="param_spec_types_init"
4446               c:identifier="g_param_spec_types_init">
4447       <return-value transfer-ownership="none">
4448         <type name="none" c:type="void"/>
4449       </return-value>
4450     </function>
4451     <function name="param_spec_uint" c:identifier="g_param_spec_uint">
4452       <return-value transfer-ownership="full">
4453         <type name="ParamSpec" c:type="GParamSpec*"/>
4454       </return-value>
4455       <parameters>
4456         <parameter name="name" transfer-ownership="none">
4457           <type name="utf8" c:type="gchar*"/>
4458         </parameter>
4459         <parameter name="nick" transfer-ownership="none">
4460           <type name="utf8" c:type="gchar*"/>
4461         </parameter>
4462         <parameter name="blurb" transfer-ownership="none">
4463           <type name="utf8" c:type="gchar*"/>
4464         </parameter>
4465         <parameter name="minimum" transfer-ownership="none">
4466           <type name="uint" c:type="guint"/>
4467         </parameter>
4468         <parameter name="maximum" transfer-ownership="none">
4469           <type name="uint" c:type="guint"/>
4470         </parameter>
4471         <parameter name="default_value" transfer-ownership="none">
4472           <type name="uint" c:type="guint"/>
4473         </parameter>
4474         <parameter name="flags" transfer-ownership="none">
4475           <type name="ParamFlags" c:type="GParamFlags"/>
4476         </parameter>
4477       </parameters>
4478     </function>
4479     <function name="param_spec_uint64" c:identifier="g_param_spec_uint64">
4480       <return-value transfer-ownership="full">
4481         <type name="ParamSpec" c:type="GParamSpec*"/>
4482       </return-value>
4483       <parameters>
4484         <parameter name="name" transfer-ownership="none">
4485           <type name="utf8" c:type="gchar*"/>
4486         </parameter>
4487         <parameter name="nick" transfer-ownership="none">
4488           <type name="utf8" c:type="gchar*"/>
4489         </parameter>
4490         <parameter name="blurb" transfer-ownership="none">
4491           <type name="utf8" c:type="gchar*"/>
4492         </parameter>
4493         <parameter name="minimum" transfer-ownership="none">
4494           <type name="uint64" c:type="guint64"/>
4495         </parameter>
4496         <parameter name="maximum" transfer-ownership="none">
4497           <type name="uint64" c:type="guint64"/>
4498         </parameter>
4499         <parameter name="default_value" transfer-ownership="none">
4500           <type name="uint64" c:type="guint64"/>
4501         </parameter>
4502         <parameter name="flags" transfer-ownership="none">
4503           <type name="ParamFlags" c:type="GParamFlags"/>
4504         </parameter>
4505       </parameters>
4506     </function>
4507     <function name="param_spec_ulong" c:identifier="g_param_spec_ulong">
4508       <return-value transfer-ownership="full">
4509         <type name="ParamSpec" c:type="GParamSpec*"/>
4510       </return-value>
4511       <parameters>
4512         <parameter name="name" transfer-ownership="none">
4513           <type name="utf8" c:type="gchar*"/>
4514         </parameter>
4515         <parameter name="nick" transfer-ownership="none">
4516           <type name="utf8" c:type="gchar*"/>
4517         </parameter>
4518         <parameter name="blurb" transfer-ownership="none">
4519           <type name="utf8" c:type="gchar*"/>
4520         </parameter>
4521         <parameter name="minimum" transfer-ownership="none">
4522           <type name="ulong" c:type="gulong"/>
4523         </parameter>
4524         <parameter name="maximum" transfer-ownership="none">
4525           <type name="ulong" c:type="gulong"/>
4526         </parameter>
4527         <parameter name="default_value" transfer-ownership="none">
4528           <type name="ulong" c:type="gulong"/>
4529         </parameter>
4530         <parameter name="flags" transfer-ownership="none">
4531           <type name="ParamFlags" c:type="GParamFlags"/>
4532         </parameter>
4533       </parameters>
4534     </function>
4535     <function name="param_spec_value_array"
4536               c:identifier="g_param_spec_value_array">
4537       <return-value transfer-ownership="full">
4538         <type name="ParamSpec" c:type="GParamSpec*"/>
4539       </return-value>
4540       <parameters>
4541         <parameter name="name" transfer-ownership="none">
4542           <type name="utf8" c:type="gchar*"/>
4543         </parameter>
4544         <parameter name="nick" transfer-ownership="none">
4545           <type name="utf8" c:type="gchar*"/>
4546         </parameter>
4547         <parameter name="blurb" transfer-ownership="none">
4548           <type name="utf8" c:type="gchar*"/>
4549         </parameter>
4550         <parameter name="element_spec" transfer-ownership="none">
4551           <type name="ParamSpec" c:type="GParamSpec*"/>
4552         </parameter>
4553         <parameter name="flags" transfer-ownership="none">
4554           <type name="ParamFlags" c:type="GParamFlags"/>
4555         </parameter>
4556       </parameters>
4557     </function>
4558     <function name="param_type_init" c:identifier="g_param_type_init">
4559       <return-value transfer-ownership="none">
4560         <type name="none" c:type="void"/>
4561       </return-value>
4562     </function>
4563     <function name="param_type_register_static"
4564               c:identifier="g_param_type_register_static">
4565       <return-value transfer-ownership="none">
4566         <type name="GType" c:type="GType"/>
4567       </return-value>
4568       <parameters>
4569         <parameter name="name" transfer-ownership="none">
4570           <type name="utf8" c:type="gchar*"/>
4571         </parameter>
4572         <parameter name="pspec_info" transfer-ownership="none">
4573           <type name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo*"/>
4574         </parameter>
4575       </parameters>
4576     </function>
4577     <function name="param_value_convert" c:identifier="g_param_value_convert">
4578       <return-value transfer-ownership="none">
4579         <type name="boolean" c:type="gboolean"/>
4580       </return-value>
4581       <parameters>
4582         <parameter name="pspec" transfer-ownership="none">
4583           <type name="ParamSpec" c:type="GParamSpec*"/>
4584         </parameter>
4585         <parameter name="src_value" transfer-ownership="none">
4586           <type name="Value" c:type="GValue*"/>
4587         </parameter>
4588         <parameter name="dest_value" transfer-ownership="none">
4589           <type name="Value" c:type="GValue*"/>
4590         </parameter>
4591         <parameter name="strict_validation" transfer-ownership="none">
4592           <type name="boolean" c:type="gboolean"/>
4593         </parameter>
4594       </parameters>
4595     </function>
4596     <function name="param_value_defaults"
4597               c:identifier="g_param_value_defaults">
4598       <return-value transfer-ownership="none">
4599         <type name="boolean" c:type="gboolean"/>
4600       </return-value>
4601       <parameters>
4602         <parameter name="pspec" transfer-ownership="none">
4603           <type name="ParamSpec" c:type="GParamSpec*"/>
4604         </parameter>
4605         <parameter name="value" transfer-ownership="none">
4606           <type name="Value" c:type="GValue*"/>
4607         </parameter>
4608       </parameters>
4609     </function>
4610     <function name="param_value_set_default"
4611               c:identifier="g_param_value_set_default">
4612       <return-value transfer-ownership="none">
4613         <type name="none" c:type="void"/>
4614       </return-value>
4615       <parameters>
4616         <parameter name="pspec" transfer-ownership="none">
4617           <type name="ParamSpec" c:type="GParamSpec*"/>
4618         </parameter>
4619         <parameter name="value" transfer-ownership="none">
4620           <type name="Value" c:type="GValue*"/>
4621         </parameter>
4622       </parameters>
4623     </function>
4624     <function name="param_value_validate"
4625               c:identifier="g_param_value_validate">
4626       <return-value transfer-ownership="none">
4627         <type name="boolean" c:type="gboolean"/>
4628       </return-value>
4629       <parameters>
4630         <parameter name="pspec" transfer-ownership="none">
4631           <type name="ParamSpec" c:type="GParamSpec*"/>
4632         </parameter>
4633         <parameter name="value" transfer-ownership="none">
4634           <type name="Value" c:type="GValue*"/>
4635         </parameter>
4636       </parameters>
4637     </function>
4638     <function name="param_values_cmp" c:identifier="g_param_values_cmp">
4639       <return-value transfer-ownership="none">
4640         <type name="int" c:type="gint"/>
4641       </return-value>
4642       <parameters>
4643         <parameter name="pspec" transfer-ownership="none">
4644           <type name="ParamSpec" c:type="GParamSpec*"/>
4645         </parameter>
4646         <parameter name="value1" transfer-ownership="none">
4647           <type name="Value" c:type="GValue*"/>
4648         </parameter>
4649         <parameter name="value2" transfer-ownership="none">
4650           <type name="Value" c:type="GValue*"/>
4651         </parameter>
4652       </parameters>
4653     </function>
4654     <function name="pointer_type_register_static"
4655               c:identifier="g_pointer_type_register_static">
4656       <return-value transfer-ownership="none">
4657         <type name="GType" c:type="GType"/>
4658       </return-value>
4659       <parameters>
4660         <parameter name="name" transfer-ownership="none">
4661           <type name="utf8" c:type="gchar*"/>
4662         </parameter>
4663       </parameters>
4664     </function>
4665     <function name="signal_accumulator_true_handled"
4666               c:identifier="g_signal_accumulator_true_handled">
4667       <return-value transfer-ownership="none">
4668         <type name="boolean" c:type="gboolean"/>
4669       </return-value>
4670       <parameters>
4671         <parameter name="ihint" transfer-ownership="none">
4672           <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
4673         </parameter>
4674         <parameter name="return_accu" transfer-ownership="none">
4675           <type name="Value" c:type="GValue*"/>
4676         </parameter>
4677         <parameter name="handler_return" transfer-ownership="none">
4678           <type name="Value" c:type="GValue*"/>
4679         </parameter>
4680         <parameter name="dummy" transfer-ownership="none">
4681           <type name="any" c:type="gpointer"/>
4682         </parameter>
4683       </parameters>
4684     </function>
4685     <function name="signal_add_emission_hook"
4686               c:identifier="g_signal_add_emission_hook">
4687       <return-value transfer-ownership="none">
4688         <type name="ulong" c:type="gulong"/>
4689       </return-value>
4690       <parameters>
4691         <parameter name="signal_id" transfer-ownership="none">
4692           <type name="uint" c:type="guint"/>
4693         </parameter>
4694         <parameter name="detail" transfer-ownership="none">
4695           <type name="GLib.Quark" c:type="GQuark"/>
4696         </parameter>
4697         <parameter name="hook_func"
4698                    transfer-ownership="none"
4699                    scope="notified"
4700                    closure="3"
4701                    destroy="4">
4702           <type name="SignalEmissionHook" c:type="GSignalEmissionHook"/>
4703         </parameter>
4704         <parameter name="hook_data" transfer-ownership="none">
4705           <type name="any" c:type="gpointer"/>
4706         </parameter>
4707         <parameter name="data_destroy" transfer-ownership="none" scope="call">
4708           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4709         </parameter>
4710       </parameters>
4711     </function>
4712     <function name="signal_chain_from_overridden"
4713               c:identifier="g_signal_chain_from_overridden">
4714       <return-value transfer-ownership="none">
4715         <type name="none" c:type="void"/>
4716       </return-value>
4717       <parameters>
4718         <parameter name="instance_and_params" transfer-ownership="none">
4719           <type name="Value" c:type="GValue*"/>
4720         </parameter>
4721         <parameter name="return_value" transfer-ownership="none">
4722           <type name="Value" c:type="GValue*"/>
4723         </parameter>
4724       </parameters>
4725     </function>
4726     <function name="signal_chain_from_overridden_handler"
4727               c:identifier="g_signal_chain_from_overridden_handler">
4728       <return-value transfer-ownership="none">
4729         <type name="none" c:type="void"/>
4730       </return-value>
4731       <parameters>
4732         <parameter name="instance" transfer-ownership="none">
4733           <type name="any" c:type="gpointer"/>
4734         </parameter>
4735         <parameter transfer-ownership="none">
4736           <varargs>
4737           </varargs>
4738         </parameter>
4739       </parameters>
4740     </function>
4741     <function name="signal_connect_closure"
4742               c:identifier="g_signal_connect_closure">
4743       <return-value transfer-ownership="none">
4744         <type name="ulong" c:type="gulong"/>
4745       </return-value>
4746       <parameters>
4747         <parameter name="instance" transfer-ownership="none">
4748           <type name="any" c:type="gpointer"/>
4749         </parameter>
4750         <parameter name="detailed_signal" transfer-ownership="none">
4751           <type name="utf8" c:type="gchar*"/>
4752         </parameter>
4753         <parameter name="closure" transfer-ownership="none">
4754           <type name="Closure" c:type="GClosure*"/>
4755         </parameter>
4756         <parameter name="after" transfer-ownership="none">
4757           <type name="boolean" c:type="gboolean"/>
4758         </parameter>
4759       </parameters>
4760     </function>
4761     <function name="signal_connect_closure_by_id"
4762               c:identifier="g_signal_connect_closure_by_id">
4763       <return-value transfer-ownership="none">
4764         <type name="ulong" c:type="gulong"/>
4765       </return-value>
4766       <parameters>
4767         <parameter name="instance" transfer-ownership="none">
4768           <type name="any" c:type="gpointer"/>
4769         </parameter>
4770         <parameter name="signal_id" transfer-ownership="none">
4771           <type name="uint" c:type="guint"/>
4772         </parameter>
4773         <parameter name="detail" transfer-ownership="none">
4774           <type name="GLib.Quark" c:type="GQuark"/>
4775         </parameter>
4776         <parameter name="closure" transfer-ownership="none">
4777           <type name="Closure" c:type="GClosure*"/>
4778         </parameter>
4779         <parameter name="after" transfer-ownership="none">
4780           <type name="boolean" c:type="gboolean"/>
4781         </parameter>
4782       </parameters>
4783     </function>
4784     <function name="signal_connect_data" c:identifier="g_signal_connect_data">
4785       <return-value transfer-ownership="none">
4786         <type name="ulong" c:type="gulong"/>
4787       </return-value>
4788       <parameters>
4789         <parameter name="instance" transfer-ownership="none">
4790           <type name="any" c:type="gpointer"/>
4791         </parameter>
4792         <parameter name="detailed_signal" transfer-ownership="none">
4793           <type name="utf8" c:type="gchar*"/>
4794         </parameter>
4795         <parameter name="c_handler"
4796                    transfer-ownership="none"
4797                    scope="call"
4798                    closure="3">
4799           <type name="Callback" c:type="GCallback"/>
4800         </parameter>
4801         <parameter name="data" transfer-ownership="none">
4802           <type name="any" c:type="gpointer"/>
4803         </parameter>
4804         <parameter name="destroy_data" transfer-ownership="none" scope="call">
4805           <type name="ClosureNotify" c:type="GClosureNotify"/>
4806         </parameter>
4807         <parameter name="connect_flags" transfer-ownership="none">
4808           <type name="ConnectFlags" c:type="GConnectFlags"/>
4809         </parameter>
4810       </parameters>
4811     </function>
4812     <function name="signal_connect_object"
4813               c:identifier="g_signal_connect_object">
4814       <return-value transfer-ownership="none">
4815         <type name="ulong" c:type="gulong"/>
4816       </return-value>
4817       <parameters>
4818         <parameter name="instance" transfer-ownership="none">
4819           <type name="any" c:type="gpointer"/>
4820         </parameter>
4821         <parameter name="detailed_signal" transfer-ownership="none">
4822           <type name="utf8" c:type="gchar*"/>
4823         </parameter>
4824         <parameter name="c_handler" transfer-ownership="none" scope="call">
4825           <type name="Callback" c:type="GCallback"/>
4826         </parameter>
4827         <parameter name="gobject" transfer-ownership="none">
4828           <type name="any" c:type="gpointer"/>
4829         </parameter>
4830         <parameter name="connect_flags" transfer-ownership="none">
4831           <type name="ConnectFlags" c:type="GConnectFlags"/>
4832         </parameter>
4833       </parameters>
4834     </function>
4835     <function name="signal_emit" c:identifier="g_signal_emit">
4836       <return-value transfer-ownership="none">
4837         <type name="none" c:type="void"/>
4838       </return-value>
4839       <parameters>
4840         <parameter name="instance" transfer-ownership="none">
4841           <type name="any" c:type="gpointer"/>
4842         </parameter>
4843         <parameter name="signal_id" transfer-ownership="none">
4844           <type name="uint" c:type="guint"/>
4845         </parameter>
4846         <parameter name="detail" transfer-ownership="none">
4847           <type name="GLib.Quark" c:type="GQuark"/>
4848         </parameter>
4849         <parameter transfer-ownership="none">
4850           <varargs>
4851           </varargs>
4852         </parameter>
4853       </parameters>
4854     </function>
4855     <function name="signal_emit_by_name" c:identifier="g_signal_emit_by_name">
4856       <return-value transfer-ownership="none">
4857         <type name="none" c:type="void"/>
4858       </return-value>
4859       <parameters>
4860         <parameter name="instance" transfer-ownership="none">
4861           <type name="any" c:type="gpointer"/>
4862         </parameter>
4863         <parameter name="detailed_signal" transfer-ownership="none">
4864           <type name="utf8" c:type="gchar*"/>
4865         </parameter>
4866         <parameter transfer-ownership="none">
4867           <varargs>
4868           </varargs>
4869         </parameter>
4870       </parameters>
4871     </function>
4872     <function name="signal_emitv" c:identifier="g_signal_emitv">
4873       <return-value transfer-ownership="none">
4874         <type name="none" c:type="void"/>
4875       </return-value>
4876       <parameters>
4877         <parameter name="instance_and_params" transfer-ownership="none">
4878           <type name="Value" c:type="GValue*"/>
4879         </parameter>
4880         <parameter name="signal_id" transfer-ownership="none">
4881           <type name="uint" c:type="guint"/>
4882         </parameter>
4883         <parameter name="detail" transfer-ownership="none">
4884           <type name="GLib.Quark" c:type="GQuark"/>
4885         </parameter>
4886         <parameter name="return_value" transfer-ownership="none">
4887           <type name="Value" c:type="GValue*"/>
4888         </parameter>
4889       </parameters>
4890     </function>
4891     <function name="signal_get_invocation_hint"
4892               c:identifier="g_signal_get_invocation_hint">
4893       <return-value transfer-ownership="full">
4894         <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
4895       </return-value>
4896       <parameters>
4897         <parameter name="instance" transfer-ownership="none">
4898           <type name="any" c:type="gpointer"/>
4899         </parameter>
4900       </parameters>
4901     </function>
4902     <function name="signal_handler_block"
4903               c:identifier="g_signal_handler_block">
4904       <return-value transfer-ownership="none">
4905         <type name="none" c:type="void"/>
4906       </return-value>
4907       <parameters>
4908         <parameter name="instance" transfer-ownership="none">
4909           <type name="any" c:type="gpointer"/>
4910         </parameter>
4911         <parameter name="handler_id" transfer-ownership="none">
4912           <type name="ulong" c:type="gulong"/>
4913         </parameter>
4914       </parameters>
4915     </function>
4916     <function name="signal_handler_disconnect"
4917               c:identifier="g_signal_handler_disconnect">
4918       <return-value transfer-ownership="none">
4919         <type name="none" c:type="void"/>
4920       </return-value>
4921       <parameters>
4922         <parameter name="instance" transfer-ownership="none">
4923           <type name="any" c:type="gpointer"/>
4924         </parameter>
4925         <parameter name="handler_id" transfer-ownership="none">
4926           <type name="ulong" c:type="gulong"/>
4927         </parameter>
4928       </parameters>
4929     </function>
4930     <function name="signal_handler_find" c:identifier="g_signal_handler_find">
4931       <return-value transfer-ownership="none">
4932         <type name="ulong" c:type="gulong"/>
4933       </return-value>
4934       <parameters>
4935         <parameter name="instance" transfer-ownership="none">
4936           <type name="any" c:type="gpointer"/>
4937         </parameter>
4938         <parameter name="mask" transfer-ownership="none">
4939           <type name="SignalMatchType" c:type="GSignalMatchType"/>
4940         </parameter>
4941         <parameter name="signal_id" transfer-ownership="none">
4942           <type name="uint" c:type="guint"/>
4943         </parameter>
4944         <parameter name="detail" transfer-ownership="none">
4945           <type name="GLib.Quark" c:type="GQuark"/>
4946         </parameter>
4947         <parameter name="closure" transfer-ownership="none">
4948           <type name="Closure" c:type="GClosure*"/>
4949         </parameter>
4950         <parameter name="func" transfer-ownership="none">
4951           <type name="any" c:type="gpointer"/>
4952         </parameter>
4953         <parameter name="data" transfer-ownership="none">
4954           <type name="any" c:type="gpointer"/>
4955         </parameter>
4956       </parameters>
4957     </function>
4958     <function name="signal_handler_is_connected"
4959               c:identifier="g_signal_handler_is_connected">
4960       <return-value transfer-ownership="none">
4961         <type name="boolean" c:type="gboolean"/>
4962       </return-value>
4963       <parameters>
4964         <parameter name="instance" transfer-ownership="none">
4965           <type name="any" c:type="gpointer"/>
4966         </parameter>
4967         <parameter name="handler_id" transfer-ownership="none">
4968           <type name="ulong" c:type="gulong"/>
4969         </parameter>
4970       </parameters>
4971     </function>
4972     <function name="signal_handler_unblock"
4973               c:identifier="g_signal_handler_unblock">
4974       <return-value transfer-ownership="none">
4975         <type name="none" c:type="void"/>
4976       </return-value>
4977       <parameters>
4978         <parameter name="instance" transfer-ownership="none">
4979           <type name="any" c:type="gpointer"/>
4980         </parameter>
4981         <parameter name="handler_id" transfer-ownership="none">
4982           <type name="ulong" c:type="gulong"/>
4983         </parameter>
4984       </parameters>
4985     </function>
4986     <function name="signal_handlers_block_matched"
4987               c:identifier="g_signal_handlers_block_matched">
4988       <return-value transfer-ownership="none">
4989         <type name="uint" c:type="guint"/>
4990       </return-value>
4991       <parameters>
4992         <parameter name="instance" transfer-ownership="none">
4993           <type name="any" c:type="gpointer"/>
4994         </parameter>
4995         <parameter name="mask" transfer-ownership="none">
4996           <type name="SignalMatchType" c:type="GSignalMatchType"/>
4997         </parameter>
4998         <parameter name="signal_id" transfer-ownership="none">
4999           <type name="uint" c:type="guint"/>
5000         </parameter>
5001         <parameter name="detail" transfer-ownership="none">
5002           <type name="GLib.Quark" c:type="GQuark"/>
5003         </parameter>
5004         <parameter name="closure" transfer-ownership="none">
5005           <type name="Closure" c:type="GClosure*"/>
5006         </parameter>
5007         <parameter name="func" transfer-ownership="none">
5008           <type name="any" c:type="gpointer"/>
5009         </parameter>
5010         <parameter name="data" transfer-ownership="none">
5011           <type name="any" c:type="gpointer"/>
5012         </parameter>
5013       </parameters>
5014     </function>
5015     <function name="signal_handlers_destroy"
5016               c:identifier="g_signal_handlers_destroy">
5017       <return-value transfer-ownership="none">
5018         <type name="none" c:type="void"/>
5019       </return-value>
5020       <parameters>
5021         <parameter name="instance" transfer-ownership="none">
5022           <type name="any" c:type="gpointer"/>
5023         </parameter>
5024       </parameters>
5025     </function>
5026     <function name="signal_handlers_disconnect_matched"
5027               c:identifier="g_signal_handlers_disconnect_matched">
5028       <return-value transfer-ownership="none">
5029         <type name="uint" c:type="guint"/>
5030       </return-value>
5031       <parameters>
5032         <parameter name="instance" transfer-ownership="none">
5033           <type name="any" c:type="gpointer"/>
5034         </parameter>
5035         <parameter name="mask" transfer-ownership="none">
5036           <type name="SignalMatchType" c:type="GSignalMatchType"/>
5037         </parameter>
5038         <parameter name="signal_id" transfer-ownership="none">
5039           <type name="uint" c:type="guint"/>
5040         </parameter>
5041         <parameter name="detail" transfer-ownership="none">
5042           <type name="GLib.Quark" c:type="GQuark"/>
5043         </parameter>
5044         <parameter name="closure" transfer-ownership="none">
5045           <type name="Closure" c:type="GClosure*"/>
5046         </parameter>
5047         <parameter name="func" transfer-ownership="none">
5048           <type name="any" c:type="gpointer"/>
5049         </parameter>
5050         <parameter name="data" transfer-ownership="none">
5051           <type name="any" c:type="gpointer"/>
5052         </parameter>
5053       </parameters>
5054     </function>
5055     <function name="signal_handlers_unblock_matched"
5056               c:identifier="g_signal_handlers_unblock_matched">
5057       <return-value transfer-ownership="none">
5058         <type name="uint" c:type="guint"/>
5059       </return-value>
5060       <parameters>
5061         <parameter name="instance" transfer-ownership="none">
5062           <type name="any" c:type="gpointer"/>
5063         </parameter>
5064         <parameter name="mask" transfer-ownership="none">
5065           <type name="SignalMatchType" c:type="GSignalMatchType"/>
5066         </parameter>
5067         <parameter name="signal_id" transfer-ownership="none">
5068           <type name="uint" c:type="guint"/>
5069         </parameter>
5070         <parameter name="detail" transfer-ownership="none">
5071           <type name="GLib.Quark" c:type="GQuark"/>
5072         </parameter>
5073         <parameter name="closure" transfer-ownership="none">
5074           <type name="Closure" c:type="GClosure*"/>
5075         </parameter>
5076         <parameter name="func" transfer-ownership="none">
5077           <type name="any" c:type="gpointer"/>
5078         </parameter>
5079         <parameter name="data" transfer-ownership="none">
5080           <type name="any" c:type="gpointer"/>
5081         </parameter>
5082       </parameters>
5083     </function>
5084     <function name="signal_has_handler_pending"
5085               c:identifier="g_signal_has_handler_pending">
5086       <return-value transfer-ownership="none">
5087         <type name="boolean" c:type="gboolean"/>
5088       </return-value>
5089       <parameters>
5090         <parameter name="instance" transfer-ownership="none">
5091           <type name="any" c:type="gpointer"/>
5092         </parameter>
5093         <parameter name="signal_id" transfer-ownership="none">
5094           <type name="uint" c:type="guint"/>
5095         </parameter>
5096         <parameter name="detail" transfer-ownership="none">
5097           <type name="GLib.Quark" c:type="GQuark"/>
5098         </parameter>
5099         <parameter name="may_be_blocked" transfer-ownership="none">
5100           <type name="boolean" c:type="gboolean"/>
5101         </parameter>
5102       </parameters>
5103     </function>
5104     <function name="signal_init" c:identifier="g_signal_init">
5105       <return-value transfer-ownership="none">
5106         <type name="none" c:type="void"/>
5107       </return-value>
5108     </function>
5109     <function name="signal_list_ids" c:identifier="g_signal_list_ids">
5110       <return-value transfer-ownership="full">
5111         <type name="uint" c:type="guint*"/>
5112       </return-value>
5113       <parameters>
5114         <parameter name="itype" transfer-ownership="none">
5115           <type name="GType" c:type="GType"/>
5116         </parameter>
5117         <parameter name="n_ids" direction="out" transfer-ownership="full">
5118           <type name="uint" c:type="guint*"/>
5119         </parameter>
5120       </parameters>
5121     </function>
5122     <function name="signal_lookup" c:identifier="g_signal_lookup">
5123       <return-value transfer-ownership="none">
5124         <type name="uint" c:type="guint"/>
5125       </return-value>
5126       <parameters>
5127         <parameter name="name" transfer-ownership="none">
5128           <type name="utf8" c:type="gchar*"/>
5129         </parameter>
5130         <parameter name="itype" transfer-ownership="none">
5131           <type name="GType" c:type="GType"/>
5132         </parameter>
5133       </parameters>
5134     </function>
5135     <function name="signal_name" c:identifier="g_signal_name">
5136       <return-value transfer-ownership="none">
5137         <type name="utf8" c:type="gchar*"/>
5138       </return-value>
5139       <parameters>
5140         <parameter name="signal_id" transfer-ownership="none">
5141           <type name="uint" c:type="guint"/>
5142         </parameter>
5143       </parameters>
5144     </function>
5145     <function name="signal_new" c:identifier="g_signal_new">
5146       <return-value transfer-ownership="none">
5147         <type name="uint" c:type="guint"/>
5148       </return-value>
5149       <parameters>
5150         <parameter name="signal_name" transfer-ownership="none">
5151           <type name="utf8" c:type="gchar*"/>
5152         </parameter>
5153         <parameter name="itype" transfer-ownership="none">
5154           <type name="GType" c:type="GType"/>
5155         </parameter>
5156         <parameter name="signal_flags" transfer-ownership="none">
5157           <type name="SignalFlags" c:type="GSignalFlags"/>
5158         </parameter>
5159         <parameter name="class_offset" transfer-ownership="none">
5160           <type name="uint" c:type="guint"/>
5161         </parameter>
5162         <parameter name="accumulator"
5163                    transfer-ownership="none"
5164                    scope="call"
5165                    closure="5">
5166           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
5167         </parameter>
5168         <parameter name="accu_data" transfer-ownership="none">
5169           <type name="any" c:type="gpointer"/>
5170         </parameter>
5171         <parameter name="c_marshaller" transfer-ownership="none">
5172           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
5173         </parameter>
5174         <parameter name="return_type" transfer-ownership="none">
5175           <type name="GType" c:type="GType"/>
5176         </parameter>
5177         <parameter name="n_params" transfer-ownership="none">
5178           <type name="uint" c:type="guint"/>
5179         </parameter>
5180         <parameter transfer-ownership="none">
5181           <varargs>
5182           </varargs>
5183         </parameter>
5184       </parameters>
5185     </function>
5186     <function name="signal_new_class_handler"
5187               c:identifier="g_signal_new_class_handler">
5188       <return-value transfer-ownership="none">
5189         <type name="uint" c:type="guint"/>
5190       </return-value>
5191       <parameters>
5192         <parameter name="signal_name" transfer-ownership="none">
5193           <type name="utf8" c:type="gchar*"/>
5194         </parameter>
5195         <parameter name="itype" transfer-ownership="none">
5196           <type name="GType" c:type="GType"/>
5197         </parameter>
5198         <parameter name="signal_flags" transfer-ownership="none">
5199           <type name="SignalFlags" c:type="GSignalFlags"/>
5200         </parameter>
5201         <parameter name="class_handler" transfer-ownership="none" scope="call">
5202           <type name="Callback" c:type="GCallback"/>
5203         </parameter>
5204         <parameter name="accumulator"
5205                    transfer-ownership="none"
5206                    scope="call"
5207                    closure="5">
5208           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
5209         </parameter>
5210         <parameter name="accu_data" transfer-ownership="none">
5211           <type name="any" c:type="gpointer"/>
5212         </parameter>
5213         <parameter name="c_marshaller" transfer-ownership="none">
5214           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
5215         </parameter>
5216         <parameter name="return_type" transfer-ownership="none">
5217           <type name="GType" c:type="GType"/>
5218         </parameter>
5219         <parameter name="n_params" transfer-ownership="none">
5220           <type name="uint" c:type="guint"/>
5221         </parameter>
5222         <parameter transfer-ownership="none">
5223           <varargs>
5224           </varargs>
5225         </parameter>
5226       </parameters>
5227     </function>
5228     <function name="signal_newv" c:identifier="g_signal_newv">
5229       <return-value transfer-ownership="none">
5230         <type name="uint" c:type="guint"/>
5231       </return-value>
5232       <parameters>
5233         <parameter name="signal_name" transfer-ownership="none">
5234           <type name="utf8" c:type="gchar*"/>
5235         </parameter>
5236         <parameter name="itype" transfer-ownership="none">
5237           <type name="GType" c:type="GType"/>
5238         </parameter>
5239         <parameter name="signal_flags" transfer-ownership="none">
5240           <type name="SignalFlags" c:type="GSignalFlags"/>
5241         </parameter>
5242         <parameter name="class_closure" transfer-ownership="none">
5243           <type name="Closure" c:type="GClosure*"/>
5244         </parameter>
5245         <parameter name="accumulator"
5246                    transfer-ownership="none"
5247                    scope="call"
5248                    closure="5">
5249           <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
5250         </parameter>
5251         <parameter name="accu_data" transfer-ownership="none">
5252           <type name="any" c:type="gpointer"/>
5253         </parameter>
5254         <parameter name="c_marshaller" transfer-ownership="none">
5255           <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
5256         </parameter>
5257         <parameter name="return_type" transfer-ownership="none">
5258           <type name="GType" c:type="GType"/>
5259         </parameter>
5260         <parameter name="n_params" transfer-ownership="none">
5261           <type name="uint" c:type="guint"/>
5262         </parameter>
5263         <parameter name="param_types"
5264                    direction="out"
5265                    transfer-ownership="full">
5266           <type name="GType" c:type="GType*"/>
5267         </parameter>
5268       </parameters>
5269     </function>
5270     <function name="signal_override_class_closure"
5271               c:identifier="g_signal_override_class_closure">
5272       <return-value transfer-ownership="none">
5273         <type name="none" c:type="void"/>
5274       </return-value>
5275       <parameters>
5276         <parameter name="signal_id" transfer-ownership="none">
5277           <type name="uint" c:type="guint"/>
5278         </parameter>
5279         <parameter name="instance_type" transfer-ownership="none">
5280           <type name="GType" c:type="GType"/>
5281         </parameter>
5282         <parameter name="class_closure" transfer-ownership="none">
5283           <type name="Closure" c:type="GClosure*"/>
5284         </parameter>
5285       </parameters>
5286     </function>
5287     <function name="signal_override_class_handler"
5288               c:identifier="g_signal_override_class_handler">
5289       <return-value transfer-ownership="none">
5290         <type name="none" c:type="void"/>
5291       </return-value>
5292       <parameters>
5293         <parameter name="signal_name" transfer-ownership="none">
5294           <type name="utf8" c:type="gchar*"/>
5295         </parameter>
5296         <parameter name="instance_type" transfer-ownership="none">
5297           <type name="GType" c:type="GType"/>
5298         </parameter>
5299         <parameter name="class_handler" transfer-ownership="none" scope="call">
5300           <type name="Callback" c:type="GCallback"/>
5301         </parameter>
5302       </parameters>
5303     </function>
5304     <function name="signal_parse_name" c:identifier="g_signal_parse_name">
5305       <return-value transfer-ownership="none">
5306         <type name="boolean" c:type="gboolean"/>
5307       </return-value>
5308       <parameters>
5309         <parameter name="detailed_signal" transfer-ownership="none">
5310           <type name="utf8" c:type="gchar*"/>
5311         </parameter>
5312         <parameter name="itype" transfer-ownership="none">
5313           <type name="GType" c:type="GType"/>
5314         </parameter>
5315         <parameter name="signal_id_p"
5316                    direction="out"
5317                    transfer-ownership="full">
5318           <type name="uint" c:type="guint*"/>
5319         </parameter>
5320         <parameter name="detail_p" transfer-ownership="none">
5321           <type name="GLib.Quark" c:type="GQuark*"/>
5322         </parameter>
5323         <parameter name="force_detail_quark" transfer-ownership="none">
5324           <type name="boolean" c:type="gboolean"/>
5325         </parameter>
5326       </parameters>
5327     </function>
5328     <function name="signal_query" c:identifier="g_signal_query">
5329       <return-value transfer-ownership="none">
5330         <type name="none" c:type="void"/>
5331       </return-value>
5332       <parameters>
5333         <parameter name="signal_id" transfer-ownership="none">
5334           <type name="uint" c:type="guint"/>
5335         </parameter>
5336         <parameter name="query" transfer-ownership="none">
5337           <type name="SignalQuery" c:type="GSignalQuery*"/>
5338         </parameter>
5339       </parameters>
5340     </function>
5341     <function name="signal_remove_emission_hook"
5342               c:identifier="g_signal_remove_emission_hook">
5343       <return-value transfer-ownership="none">
5344         <type name="none" c:type="void"/>
5345       </return-value>
5346       <parameters>
5347         <parameter name="signal_id" transfer-ownership="none">
5348           <type name="uint" c:type="guint"/>
5349         </parameter>
5350         <parameter name="hook_id" transfer-ownership="none">
5351           <type name="ulong" c:type="gulong"/>
5352         </parameter>
5353       </parameters>
5354     </function>
5355     <function name="signal_stop_emission"
5356               c:identifier="g_signal_stop_emission">
5357       <return-value transfer-ownership="none">
5358         <type name="none" c:type="void"/>
5359       </return-value>
5360       <parameters>
5361         <parameter name="instance" transfer-ownership="none">
5362           <type name="any" c:type="gpointer"/>
5363         </parameter>
5364         <parameter name="signal_id" transfer-ownership="none">
5365           <type name="uint" c:type="guint"/>
5366         </parameter>
5367         <parameter name="detail" transfer-ownership="none">
5368           <type name="GLib.Quark" c:type="GQuark"/>
5369         </parameter>
5370       </parameters>
5371     </function>
5372     <function name="signal_stop_emission_by_name"
5373               c:identifier="g_signal_stop_emission_by_name">
5374       <return-value transfer-ownership="none">
5375         <type name="none" c:type="void"/>
5376       </return-value>
5377       <parameters>
5378         <parameter name="instance" transfer-ownership="none">
5379           <type name="any" c:type="gpointer"/>
5380         </parameter>
5381         <parameter name="detailed_signal" transfer-ownership="none">
5382           <type name="utf8" c:type="gchar*"/>
5383         </parameter>
5384       </parameters>
5385     </function>
5386     <function name="signal_type_cclosure_new"
5387               c:identifier="g_signal_type_cclosure_new">
5388       <return-value transfer-ownership="full">
5389         <type name="Closure" c:type="GClosure*"/>
5390       </return-value>
5391       <parameters>
5392         <parameter name="itype" transfer-ownership="none">
5393           <type name="GType" c:type="GType"/>
5394         </parameter>
5395         <parameter name="struct_offset" transfer-ownership="none">
5396           <type name="uint" c:type="guint"/>
5397         </parameter>
5398       </parameters>
5399     </function>
5400     <function name="source_set_closure" c:identifier="g_source_set_closure">
5401       <return-value transfer-ownership="none">
5402         <type name="none" c:type="void"/>
5403       </return-value>
5404       <parameters>
5405         <parameter name="source" transfer-ownership="none">
5406           <type name="GLib.Source" c:type="GSource*"/>
5407         </parameter>
5408         <parameter name="closure" transfer-ownership="none">
5409           <type name="Closure" c:type="GClosure*"/>
5410         </parameter>
5411       </parameters>
5412     </function>
5413     <function name="strdup_value_contents"
5414               c:identifier="g_strdup_value_contents">
5415       <return-value transfer-ownership="full">
5416         <type name="utf8" c:type="gchar*"/>
5417       </return-value>
5418       <parameters>
5419         <parameter name="value" transfer-ownership="none">
5420           <type name="Value" c:type="GValue*"/>
5421         </parameter>
5422       </parameters>
5423     </function>
5424     <function name="type_add_class_cache_func"
5425               c:identifier="g_type_add_class_cache_func">
5426       <return-value transfer-ownership="none">
5427         <type name="none" c:type="void"/>
5428       </return-value>
5429       <parameters>
5430         <parameter name="cache_data" transfer-ownership="none">
5431           <type name="any" c:type="gpointer"/>
5432         </parameter>
5433         <parameter name="cache_func" transfer-ownership="none" scope="call">
5434           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
5435         </parameter>
5436       </parameters>
5437     </function>
5438     <function name="type_add_class_private"
5439               c:identifier="g_type_add_class_private">
5440       <return-value transfer-ownership="none">
5441         <type name="none" c:type="void"/>
5442       </return-value>
5443       <parameters>
5444         <parameter name="class_type" transfer-ownership="none">
5445           <type name="GType" c:type="GType"/>
5446         </parameter>
5447         <parameter name="private_size" transfer-ownership="none">
5448           <type name="size_t" c:type="gsize"/>
5449         </parameter>
5450       </parameters>
5451     </function>
5452     <function name="type_add_interface_check"
5453               c:identifier="g_type_add_interface_check">
5454       <return-value transfer-ownership="none">
5455         <type name="none" c:type="void"/>
5456       </return-value>
5457       <parameters>
5458         <parameter name="check_data" transfer-ownership="none">
5459           <type name="any" c:type="gpointer"/>
5460         </parameter>
5461         <parameter name="check_func" transfer-ownership="none" scope="call">
5462           <type name="TypeInterfaceCheckFunc"
5463                 c:type="GTypeInterfaceCheckFunc"/>
5464         </parameter>
5465       </parameters>
5466     </function>
5467     <function name="type_add_interface_dynamic"
5468               c:identifier="g_type_add_interface_dynamic">
5469       <return-value transfer-ownership="none">
5470         <type name="none" c:type="void"/>
5471       </return-value>
5472       <parameters>
5473         <parameter name="instance_type" transfer-ownership="none">
5474           <type name="GType" c:type="GType"/>
5475         </parameter>
5476         <parameter name="interface_type" transfer-ownership="none">
5477           <type name="GType" c:type="GType"/>
5478         </parameter>
5479         <parameter name="plugin" transfer-ownership="none">
5480           <type name="TypePlugin" c:type="GTypePlugin*"/>
5481         </parameter>
5482       </parameters>
5483     </function>
5484     <function name="type_add_interface_static"
5485               c:identifier="g_type_add_interface_static">
5486       <return-value transfer-ownership="none">
5487         <type name="none" c:type="void"/>
5488       </return-value>
5489       <parameters>
5490         <parameter name="instance_type" transfer-ownership="none">
5491           <type name="GType" c:type="GType"/>
5492         </parameter>
5493         <parameter name="interface_type" transfer-ownership="none">
5494           <type name="GType" c:type="GType"/>
5495         </parameter>
5496         <parameter name="info" transfer-ownership="none">
5497           <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
5498         </parameter>
5499       </parameters>
5500     </function>
5501     <function name="type_check_class_cast"
5502               c:identifier="g_type_check_class_cast">
5503       <return-value transfer-ownership="full">
5504         <type name="TypeClass" c:type="GTypeClass*"/>
5505       </return-value>
5506       <parameters>
5507         <parameter name="g_class" transfer-ownership="none">
5508           <type name="TypeClass" c:type="GTypeClass*"/>
5509         </parameter>
5510         <parameter name="is_a_type" transfer-ownership="none">
5511           <type name="GType" c:type="GType"/>
5512         </parameter>
5513       </parameters>
5514     </function>
5515     <function name="type_check_class_is_a"
5516               c:identifier="g_type_check_class_is_a">
5517       <return-value transfer-ownership="none">
5518         <type name="boolean" c:type="gboolean"/>
5519       </return-value>
5520       <parameters>
5521         <parameter name="g_class" transfer-ownership="none">
5522           <type name="TypeClass" c:type="GTypeClass*"/>
5523         </parameter>
5524         <parameter name="is_a_type" transfer-ownership="none">
5525           <type name="GType" c:type="GType"/>
5526         </parameter>
5527       </parameters>
5528     </function>
5529     <function name="type_check_instance" c:identifier="g_type_check_instance">
5530       <return-value transfer-ownership="none">
5531         <type name="boolean" c:type="gboolean"/>
5532       </return-value>
5533       <parameters>
5534         <parameter name="instance" transfer-ownership="none">
5535           <type name="TypeInstance" c:type="GTypeInstance*"/>
5536         </parameter>
5537       </parameters>
5538     </function>
5539     <function name="type_check_instance_cast"
5540               c:identifier="g_type_check_instance_cast">
5541       <return-value transfer-ownership="full">
5542         <type name="TypeInstance" c:type="GTypeInstance*"/>
5543       </return-value>
5544       <parameters>
5545         <parameter name="instance" transfer-ownership="none">
5546           <type name="TypeInstance" c:type="GTypeInstance*"/>
5547         </parameter>
5548         <parameter name="iface_type" transfer-ownership="none">
5549           <type name="GType" c:type="GType"/>
5550         </parameter>
5551       </parameters>
5552     </function>
5553     <function name="type_check_instance_is_a"
5554               c:identifier="g_type_check_instance_is_a">
5555       <return-value transfer-ownership="none">
5556         <type name="boolean" c:type="gboolean"/>
5557       </return-value>
5558       <parameters>
5559         <parameter name="instance" transfer-ownership="none">
5560           <type name="TypeInstance" c:type="GTypeInstance*"/>
5561         </parameter>
5562         <parameter name="iface_type" transfer-ownership="none">
5563           <type name="GType" c:type="GType"/>
5564         </parameter>
5565       </parameters>
5566     </function>
5567     <function name="type_check_is_value_type"
5568               c:identifier="g_type_check_is_value_type">
5569       <return-value transfer-ownership="none">
5570         <type name="boolean" c:type="gboolean"/>
5571       </return-value>
5572       <parameters>
5573         <parameter name="type" transfer-ownership="none">
5574           <type name="GType" c:type="GType"/>
5575         </parameter>
5576       </parameters>
5577     </function>
5578     <function name="type_check_value" c:identifier="g_type_check_value">
5579       <return-value transfer-ownership="none">
5580         <type name="boolean" c:type="gboolean"/>
5581       </return-value>
5582       <parameters>
5583         <parameter name="value" transfer-ownership="none">
5584           <type name="Value" c:type="GValue*"/>
5585         </parameter>
5586       </parameters>
5587     </function>
5588     <function name="type_check_value_holds"
5589               c:identifier="g_type_check_value_holds">
5590       <return-value transfer-ownership="none">
5591         <type name="boolean" c:type="gboolean"/>
5592       </return-value>
5593       <parameters>
5594         <parameter name="value" transfer-ownership="none">
5595           <type name="Value" c:type="GValue*"/>
5596         </parameter>
5597         <parameter name="type" transfer-ownership="none">
5598           <type name="GType" c:type="GType"/>
5599         </parameter>
5600       </parameters>
5601     </function>
5602     <function name="type_children" c:identifier="g_type_children">
5603       <return-value transfer-ownership="full">
5604         <type name="GType" c:type="GType*"/>
5605       </return-value>
5606       <parameters>
5607         <parameter name="type" transfer-ownership="none">
5608           <type name="GType" c:type="GType"/>
5609         </parameter>
5610         <parameter name="n_children" direction="out" transfer-ownership="full">
5611           <type name="uint" c:type="guint*"/>
5612         </parameter>
5613       </parameters>
5614     </function>
5615     <function name="type_class_add_private"
5616               c:identifier="g_type_class_add_private">
5617       <return-value transfer-ownership="none">
5618         <type name="none" c:type="void"/>
5619       </return-value>
5620       <parameters>
5621         <parameter name="g_class" transfer-ownership="none">
5622           <type name="any" c:type="gpointer"/>
5623         </parameter>
5624         <parameter name="private_size" transfer-ownership="none">
5625           <type name="size_t" c:type="gsize"/>
5626         </parameter>
5627       </parameters>
5628     </function>
5629     <function name="type_class_peek" c:identifier="g_type_class_peek">
5630       <return-value transfer-ownership="none">
5631         <type name="any" c:type="gpointer"/>
5632       </return-value>
5633       <parameters>
5634         <parameter name="type" transfer-ownership="none">
5635           <type name="GType" c:type="GType"/>
5636         </parameter>
5637       </parameters>
5638     </function>
5639     <function name="type_class_peek_parent"
5640               c:identifier="g_type_class_peek_parent">
5641       <return-value transfer-ownership="none">
5642         <type name="any" c:type="gpointer"/>
5643       </return-value>
5644       <parameters>
5645         <parameter name="g_class" transfer-ownership="none">
5646           <type name="any" c:type="gpointer"/>
5647         </parameter>
5648       </parameters>
5649     </function>
5650     <function name="type_class_peek_static"
5651               c:identifier="g_type_class_peek_static">
5652       <return-value transfer-ownership="none">
5653         <type name="any" c:type="gpointer"/>
5654       </return-value>
5655       <parameters>
5656         <parameter name="type" transfer-ownership="none">
5657           <type name="GType" c:type="GType"/>
5658         </parameter>
5659       </parameters>
5660     </function>
5661     <function name="type_class_ref" c:identifier="g_type_class_ref">
5662       <return-value transfer-ownership="none">
5663         <type name="any" c:type="gpointer"/>
5664       </return-value>
5665       <parameters>
5666         <parameter name="type" transfer-ownership="none">
5667           <type name="GType" c:type="GType"/>
5668         </parameter>
5669       </parameters>
5670     </function>
5671     <function name="type_class_unref" c:identifier="g_type_class_unref">
5672       <return-value transfer-ownership="none">
5673         <type name="none" c:type="void"/>
5674       </return-value>
5675       <parameters>
5676         <parameter name="g_class" transfer-ownership="none">
5677           <type name="any" c:type="gpointer"/>
5678         </parameter>
5679       </parameters>
5680     </function>
5681     <function name="type_class_unref_uncached"
5682               c:identifier="g_type_class_unref_uncached">
5683       <return-value transfer-ownership="none">
5684         <type name="none" c:type="void"/>
5685       </return-value>
5686       <parameters>
5687         <parameter name="g_class" transfer-ownership="none">
5688           <type name="any" c:type="gpointer"/>
5689         </parameter>
5690       </parameters>
5691     </function>
5692     <function name="type_create_instance"
5693               c:identifier="g_type_create_instance">
5694       <return-value transfer-ownership="full">
5695         <type name="TypeInstance" c:type="GTypeInstance*"/>
5696       </return-value>
5697       <parameters>
5698         <parameter name="type" transfer-ownership="none">
5699           <type name="GType" c:type="GType"/>
5700         </parameter>
5701       </parameters>
5702     </function>
5703     <function name="type_default_interface_peek"
5704               c:identifier="g_type_default_interface_peek">
5705       <return-value transfer-ownership="none">
5706         <type name="any" c:type="gpointer"/>
5707       </return-value>
5708       <parameters>
5709         <parameter name="g_type" transfer-ownership="none">
5710           <type name="GType" c:type="GType"/>
5711         </parameter>
5712       </parameters>
5713     </function>
5714     <function name="type_default_interface_ref"
5715               c:identifier="g_type_default_interface_ref">
5716       <return-value transfer-ownership="none">
5717         <type name="any" c:type="gpointer"/>
5718       </return-value>
5719       <parameters>
5720         <parameter name="g_type" transfer-ownership="none">
5721           <type name="GType" c:type="GType"/>
5722         </parameter>
5723       </parameters>
5724     </function>
5725     <function name="type_default_interface_unref"
5726               c:identifier="g_type_default_interface_unref">
5727       <return-value transfer-ownership="none">
5728         <type name="none" c:type="void"/>
5729       </return-value>
5730       <parameters>
5731         <parameter name="g_iface" transfer-ownership="none">
5732           <type name="any" c:type="gpointer"/>
5733         </parameter>
5734       </parameters>
5735     </function>
5736     <function name="type_depth" c:identifier="g_type_depth">
5737       <return-value transfer-ownership="none">
5738         <type name="uint" c:type="guint"/>
5739       </return-value>
5740       <parameters>
5741         <parameter name="type" transfer-ownership="none">
5742           <type name="GType" c:type="GType"/>
5743         </parameter>
5744       </parameters>
5745     </function>
5746     <function name="type_free_instance" c:identifier="g_type_free_instance">
5747       <return-value transfer-ownership="none">
5748         <type name="none" c:type="void"/>
5749       </return-value>
5750       <parameters>
5751         <parameter name="instance" transfer-ownership="none">
5752           <type name="TypeInstance" c:type="GTypeInstance*"/>
5753         </parameter>
5754       </parameters>
5755     </function>
5756     <function name="type_from_name" c:identifier="g_type_from_name">
5757       <return-value transfer-ownership="none">
5758         <type name="GType" c:type="GType"/>
5759       </return-value>
5760       <parameters>
5761         <parameter name="name" transfer-ownership="none">
5762           <type name="utf8" c:type="gchar*"/>
5763         </parameter>
5764       </parameters>
5765     </function>
5766     <function name="type_fundamental" c:identifier="g_type_fundamental">
5767       <return-value transfer-ownership="none">
5768         <type name="GType" c:type="GType"/>
5769       </return-value>
5770       <parameters>
5771         <parameter name="type_id" transfer-ownership="none">
5772           <type name="GType" c:type="GType"/>
5773         </parameter>
5774       </parameters>
5775     </function>
5776     <function name="type_fundamental_next"
5777               c:identifier="g_type_fundamental_next">
5778       <return-value transfer-ownership="none">
5779         <type name="GType" c:type="GType"/>
5780       </return-value>
5781     </function>
5782     <function name="type_get_plugin" c:identifier="g_type_get_plugin">
5783       <return-value transfer-ownership="full">
5784         <type name="TypePlugin" c:type="GTypePlugin*"/>
5785       </return-value>
5786       <parameters>
5787         <parameter name="type" transfer-ownership="none">
5788           <type name="GType" c:type="GType"/>
5789         </parameter>
5790       </parameters>
5791     </function>
5792     <function name="type_get_qdata" c:identifier="g_type_get_qdata">
5793       <return-value transfer-ownership="none">
5794         <type name="any" c:type="gpointer"/>
5795       </return-value>
5796       <parameters>
5797         <parameter name="type" transfer-ownership="none">
5798           <type name="GType" c:type="GType"/>
5799         </parameter>
5800         <parameter name="quark" transfer-ownership="none">
5801           <type name="GLib.Quark" c:type="GQuark"/>
5802         </parameter>
5803       </parameters>
5804     </function>
5805     <function name="type_init" c:identifier="g_type_init">
5806       <return-value transfer-ownership="none">
5807         <type name="none" c:type="void"/>
5808       </return-value>
5809     </function>
5810     <function name="type_init_with_debug_flags"
5811               c:identifier="g_type_init_with_debug_flags">
5812       <return-value transfer-ownership="none">
5813         <type name="none" c:type="void"/>
5814       </return-value>
5815       <parameters>
5816         <parameter name="debug_flags" transfer-ownership="none">
5817           <type name="TypeDebugFlags" c:type="GTypeDebugFlags"/>
5818         </parameter>
5819       </parameters>
5820     </function>
5821     <function name="type_interface_add_prerequisite"
5822               c:identifier="g_type_interface_add_prerequisite">
5823       <return-value transfer-ownership="none">
5824         <type name="none" c:type="void"/>
5825       </return-value>
5826       <parameters>
5827         <parameter name="interface_type" transfer-ownership="none">
5828           <type name="GType" c:type="GType"/>
5829         </parameter>
5830         <parameter name="prerequisite_type" transfer-ownership="none">
5831           <type name="GType" c:type="GType"/>
5832         </parameter>
5833       </parameters>
5834     </function>
5835     <function name="type_interface_get_plugin"
5836               c:identifier="g_type_interface_get_plugin">
5837       <return-value transfer-ownership="full">
5838         <type name="TypePlugin" c:type="GTypePlugin*"/>
5839       </return-value>
5840       <parameters>
5841         <parameter name="instance_type" transfer-ownership="none">
5842           <type name="GType" c:type="GType"/>
5843         </parameter>
5844         <parameter name="interface_type" transfer-ownership="none">
5845           <type name="GType" c:type="GType"/>
5846         </parameter>
5847       </parameters>
5848     </function>
5849     <function name="type_interface_peek" c:identifier="g_type_interface_peek">
5850       <return-value transfer-ownership="none">
5851         <type name="any" c:type="gpointer"/>
5852       </return-value>
5853       <parameters>
5854         <parameter name="instance_class" transfer-ownership="none">
5855           <type name="any" c:type="gpointer"/>
5856         </parameter>
5857         <parameter name="iface_type" transfer-ownership="none">
5858           <type name="GType" c:type="GType"/>
5859         </parameter>
5860       </parameters>
5861     </function>
5862     <function name="type_interface_peek_parent"
5863               c:identifier="g_type_interface_peek_parent">
5864       <return-value transfer-ownership="none">
5865         <type name="any" c:type="gpointer"/>
5866       </return-value>
5867       <parameters>
5868         <parameter name="g_iface" transfer-ownership="none">
5869           <type name="any" c:type="gpointer"/>
5870         </parameter>
5871       </parameters>
5872     </function>
5873     <function name="type_interface_prerequisites"
5874               c:identifier="g_type_interface_prerequisites">
5875       <return-value transfer-ownership="full">
5876         <type name="GType" c:type="GType*"/>
5877       </return-value>
5878       <parameters>
5879         <parameter name="interface_type" transfer-ownership="none">
5880           <type name="GType" c:type="GType"/>
5881         </parameter>
5882         <parameter name="n_prerequisites"
5883                    direction="out"
5884                    transfer-ownership="full">
5885           <type name="uint" c:type="guint*"/>
5886         </parameter>
5887       </parameters>
5888     </function>
5889     <function name="type_interfaces" c:identifier="g_type_interfaces">
5890       <return-value transfer-ownership="full">
5891         <type name="GType" c:type="GType*"/>
5892       </return-value>
5893       <parameters>
5894         <parameter name="type" transfer-ownership="none">
5895           <type name="GType" c:type="GType"/>
5896         </parameter>
5897         <parameter name="n_interfaces"
5898                    direction="out"
5899                    transfer-ownership="full">
5900           <type name="uint" c:type="guint*"/>
5901         </parameter>
5902       </parameters>
5903     </function>
5904     <function name="type_is_a" c:identifier="g_type_is_a">
5905       <return-value transfer-ownership="none">
5906         <type name="boolean" c:type="gboolean"/>
5907       </return-value>
5908       <parameters>
5909         <parameter name="type" transfer-ownership="none">
5910           <type name="GType" c:type="GType"/>
5911         </parameter>
5912         <parameter name="is_a_type" transfer-ownership="none">
5913           <type name="GType" c:type="GType"/>
5914         </parameter>
5915       </parameters>
5916     </function>
5917     <function name="type_name" c:identifier="g_type_name">
5918       <return-value transfer-ownership="none">
5919         <type name="utf8" c:type="gchar*"/>
5920       </return-value>
5921       <parameters>
5922         <parameter name="type" transfer-ownership="none">
5923           <type name="GType" c:type="GType"/>
5924         </parameter>
5925       </parameters>
5926     </function>
5927     <function name="type_name_from_class"
5928               c:identifier="g_type_name_from_class">
5929       <return-value transfer-ownership="none">
5930         <type name="utf8" c:type="gchar*"/>
5931       </return-value>
5932       <parameters>
5933         <parameter name="g_class" transfer-ownership="none">
5934           <type name="TypeClass" c:type="GTypeClass*"/>
5935         </parameter>
5936       </parameters>
5937     </function>
5938     <function name="type_name_from_instance"
5939               c:identifier="g_type_name_from_instance">
5940       <return-value transfer-ownership="none">
5941         <type name="utf8" c:type="gchar*"/>
5942       </return-value>
5943       <parameters>
5944         <parameter name="instance" transfer-ownership="none">
5945           <type name="TypeInstance" c:type="GTypeInstance*"/>
5946         </parameter>
5947       </parameters>
5948     </function>
5949     <function name="type_next_base" c:identifier="g_type_next_base">
5950       <return-value transfer-ownership="none">
5951         <type name="GType" c:type="GType"/>
5952       </return-value>
5953       <parameters>
5954         <parameter name="leaf_type" transfer-ownership="none">
5955           <type name="GType" c:type="GType"/>
5956         </parameter>
5957         <parameter name="root_type" transfer-ownership="none">
5958           <type name="GType" c:type="GType"/>
5959         </parameter>
5960       </parameters>
5961     </function>
5962     <function name="type_parent" c:identifier="g_type_parent">
5963       <return-value transfer-ownership="none">
5964         <type name="GType" c:type="GType"/>
5965       </return-value>
5966       <parameters>
5967         <parameter name="type" transfer-ownership="none">
5968           <type name="GType" c:type="GType"/>
5969         </parameter>
5970       </parameters>
5971     </function>
5972     <function name="type_qname" c:identifier="g_type_qname">
5973       <return-value transfer-ownership="full">
5974         <type name="GLib.Quark" c:type="GQuark"/>
5975       </return-value>
5976       <parameters>
5977         <parameter name="type" transfer-ownership="none">
5978           <type name="GType" c:type="GType"/>
5979         </parameter>
5980       </parameters>
5981     </function>
5982     <function name="type_query" c:identifier="g_type_query">
5983       <return-value transfer-ownership="none">
5984         <type name="none" c:type="void"/>
5985       </return-value>
5986       <parameters>
5987         <parameter name="type" transfer-ownership="none">
5988           <type name="GType" c:type="GType"/>
5989         </parameter>
5990         <parameter name="query" transfer-ownership="none">
5991           <type name="TypeQuery" c:type="GTypeQuery*"/>
5992         </parameter>
5993       </parameters>
5994     </function>
5995     <function name="type_register_dynamic"
5996               c:identifier="g_type_register_dynamic">
5997       <return-value transfer-ownership="none">
5998         <type name="GType" c:type="GType"/>
5999       </return-value>
6000       <parameters>
6001         <parameter name="parent_type" transfer-ownership="none">
6002           <type name="GType" c:type="GType"/>
6003         </parameter>
6004         <parameter name="type_name" transfer-ownership="none">
6005           <type name="utf8" c:type="gchar*"/>
6006         </parameter>
6007         <parameter name="plugin" transfer-ownership="none">
6008           <type name="TypePlugin" c:type="GTypePlugin*"/>
6009         </parameter>
6010         <parameter name="flags" transfer-ownership="none">
6011           <type name="TypeFlags" c:type="GTypeFlags"/>
6012         </parameter>
6013       </parameters>
6014     </function>
6015     <function name="type_register_fundamental"
6016               c:identifier="g_type_register_fundamental">
6017       <return-value transfer-ownership="none">
6018         <type name="GType" c:type="GType"/>
6019       </return-value>
6020       <parameters>
6021         <parameter name="type_id" transfer-ownership="none">
6022           <type name="GType" c:type="GType"/>
6023         </parameter>
6024         <parameter name="type_name" transfer-ownership="none">
6025           <type name="utf8" c:type="gchar*"/>
6026         </parameter>
6027         <parameter name="info" transfer-ownership="none">
6028           <type name="TypeInfo" c:type="GTypeInfo*"/>
6029         </parameter>
6030         <parameter name="finfo" transfer-ownership="none">
6031           <type name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo*"/>
6032         </parameter>
6033         <parameter name="flags" transfer-ownership="none">
6034           <type name="TypeFlags" c:type="GTypeFlags"/>
6035         </parameter>
6036       </parameters>
6037     </function>
6038     <function name="type_register_static"
6039               c:identifier="g_type_register_static">
6040       <return-value transfer-ownership="none">
6041         <type name="GType" c:type="GType"/>
6042       </return-value>
6043       <parameters>
6044         <parameter name="parent_type" transfer-ownership="none">
6045           <type name="GType" c:type="GType"/>
6046         </parameter>
6047         <parameter name="type_name" transfer-ownership="none">
6048           <type name="utf8" c:type="gchar*"/>
6049         </parameter>
6050         <parameter name="info" transfer-ownership="none">
6051           <type name="TypeInfo" c:type="GTypeInfo*"/>
6052         </parameter>
6053         <parameter name="flags" transfer-ownership="none">
6054           <type name="TypeFlags" c:type="GTypeFlags"/>
6055         </parameter>
6056       </parameters>
6057     </function>
6058     <function name="type_register_static_simple"
6059               c:identifier="g_type_register_static_simple">
6060       <return-value transfer-ownership="none">
6061         <type name="GType" c:type="GType"/>
6062       </return-value>
6063       <parameters>
6064         <parameter name="parent_type" transfer-ownership="none">
6065           <type name="GType" c:type="GType"/>
6066         </parameter>
6067         <parameter name="type_name" transfer-ownership="none">
6068           <type name="utf8" c:type="gchar*"/>
6069         </parameter>
6070         <parameter name="class_size" transfer-ownership="none">
6071           <type name="uint" c:type="guint"/>
6072         </parameter>
6073         <parameter name="class_init" transfer-ownership="none" scope="call">
6074           <type name="ClassInitFunc" c:type="GClassInitFunc"/>
6075         </parameter>
6076         <parameter name="instance_size" transfer-ownership="none">
6077           <type name="uint" c:type="guint"/>
6078         </parameter>
6079         <parameter name="instance_init" transfer-ownership="none" scope="call">
6080           <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
6081         </parameter>
6082         <parameter name="flags" transfer-ownership="none">
6083           <type name="TypeFlags" c:type="GTypeFlags"/>
6084         </parameter>
6085       </parameters>
6086     </function>
6087     <function name="type_remove_class_cache_func"
6088               c:identifier="g_type_remove_class_cache_func">
6089       <return-value transfer-ownership="none">
6090         <type name="none" c:type="void"/>
6091       </return-value>
6092       <parameters>
6093         <parameter name="cache_data" transfer-ownership="none">
6094           <type name="any" c:type="gpointer"/>
6095         </parameter>
6096         <parameter name="cache_func" transfer-ownership="none" scope="call">
6097           <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
6098         </parameter>
6099       </parameters>
6100     </function>
6101     <function name="type_remove_interface_check"
6102               c:identifier="g_type_remove_interface_check">
6103       <return-value transfer-ownership="none">
6104         <type name="none" c:type="void"/>
6105       </return-value>
6106       <parameters>
6107         <parameter name="check_data" transfer-ownership="none">
6108           <type name="any" c:type="gpointer"/>
6109         </parameter>
6110         <parameter name="check_func" transfer-ownership="none" scope="call">
6111           <type name="TypeInterfaceCheckFunc"
6112                 c:type="GTypeInterfaceCheckFunc"/>
6113         </parameter>
6114       </parameters>
6115     </function>
6116     <function name="type_set_qdata" c:identifier="g_type_set_qdata">
6117       <return-value transfer-ownership="none">
6118         <type name="none" c:type="void"/>
6119       </return-value>
6120       <parameters>
6121         <parameter name="type" transfer-ownership="none">
6122           <type name="GType" c:type="GType"/>
6123         </parameter>
6124         <parameter name="quark" transfer-ownership="none">
6125           <type name="GLib.Quark" c:type="GQuark"/>
6126         </parameter>
6127         <parameter name="data" transfer-ownership="none">
6128           <type name="any" c:type="gpointer"/>
6129         </parameter>
6130       </parameters>
6131     </function>
6132     <function name="type_test_flags" c:identifier="g_type_test_flags">
6133       <return-value transfer-ownership="none">
6134         <type name="boolean" c:type="gboolean"/>
6135       </return-value>
6136       <parameters>
6137         <parameter name="type" transfer-ownership="none">
6138           <type name="GType" c:type="GType"/>
6139         </parameter>
6140         <parameter name="flags" transfer-ownership="none">
6141           <type name="uint" c:type="guint"/>
6142         </parameter>
6143       </parameters>
6144     </function>
6145     <function name="type_value_table_peek"
6146               c:identifier="g_type_value_table_peek">
6147       <return-value transfer-ownership="full">
6148         <type name="TypeValueTable" c:type="GTypeValueTable*"/>
6149       </return-value>
6150       <parameters>
6151         <parameter name="type" transfer-ownership="none">
6152           <type name="GType" c:type="GType"/>
6153         </parameter>
6154       </parameters>
6155     </function>
6156     <function name="value_c_init" c:identifier="g_value_c_init">
6157       <return-value transfer-ownership="none">
6158         <type name="none" c:type="void"/>
6159       </return-value>
6160     </function>
6161     <function name="value_register_transform_func"
6162               c:identifier="g_value_register_transform_func">
6163       <return-value transfer-ownership="none">
6164         <type name="none" c:type="void"/>
6165       </return-value>
6166       <parameters>
6167         <parameter name="src_type" transfer-ownership="none">
6168           <type name="GType" c:type="GType"/>
6169         </parameter>
6170         <parameter name="dest_type" transfer-ownership="none">
6171           <type name="GType" c:type="GType"/>
6172         </parameter>
6173         <parameter name="transform_func"
6174                    transfer-ownership="none"
6175                    scope="call">
6176           <type name="ValueTransform" c:type="GValueTransform"/>
6177         </parameter>
6178       </parameters>
6179     </function>
6180     <function name="value_transforms_init"
6181               c:identifier="g_value_transforms_init">
6182       <return-value transfer-ownership="none">
6183         <type name="none" c:type="void"/>
6184       </return-value>
6185     </function>
6186     <function name="value_type_compatible"
6187               c:identifier="g_value_type_compatible">
6188       <return-value transfer-ownership="none">
6189         <type name="boolean" c:type="gboolean"/>
6190       </return-value>
6191       <parameters>
6192         <parameter name="src_type" transfer-ownership="none">
6193           <type name="GType" c:type="GType"/>
6194         </parameter>
6195         <parameter name="dest_type" transfer-ownership="none">
6196           <type name="GType" c:type="GType"/>
6197         </parameter>
6198       </parameters>
6199     </function>
6200     <function name="value_type_transformable"
6201               c:identifier="g_value_type_transformable">
6202       <return-value transfer-ownership="none">
6203         <type name="boolean" c:type="gboolean"/>
6204       </return-value>
6205       <parameters>
6206         <parameter name="src_type" transfer-ownership="none">
6207           <type name="GType" c:type="GType"/>
6208         </parameter>
6209         <parameter name="dest_type" transfer-ownership="none">
6210           <type name="GType" c:type="GType"/>
6211         </parameter>
6212       </parameters>
6213     </function>
6214     <function name="value_types_init" c:identifier="g_value_types_init">
6215       <return-value transfer-ownership="none">
6216         <type name="none" c:type="void"/>
6217       </return-value>
6218     </function>
6219     <function name="variant_get_gtype" c:identifier="g_variant_get_gtype">
6220       <return-value transfer-ownership="none">
6221         <type name="GType" c:type="GType"/>
6222       </return-value>
6223     </function>
6224     <function name="variant_type_get_gtype"
6225               c:identifier="g_variant_type_get_gtype">
6226       <return-value transfer-ownership="none">
6227         <type name="GType" c:type="GType"/>
6228       </return-value>
6229     </function>
6230   </namespace>
6231 </repository>