Initial packaging for Tizen
[profile/ivi/gobject-introspection.git] / tests / scanner / Foo-1.0-expected.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.2"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GObject" version="2.0"/>
11   <include name="Gio" version="2.0"/>
12   <include name="Utility" version="1.0"/>
13   <package name="gobject-2.0"/>
14   <c:include name="foo.h"/>
15   <namespace name="Foo"
16              version="1.0"
17              shared-library="libfoo.so"
18              c:identifier-prefixes="Foo"
19              c:symbol-prefixes="foo">
20     <alias name="ObjectCookie" c:type="FooObjectCookie">
21       <type name="gpointer" c:type="gpointer"/>
22     </alias>
23     <alias name="XEvent" c:type="FooXEvent">
24       <type name="gpointer" c:type="gpointer"/>
25     </alias>
26     <enumeration name="ASingle" c:type="FooASingle">
27       <member name="some_single_enum"
28               value="0"
29               c:identifier="FOO_SOME_SINGLE_ENUM"/>
30     </enumeration>
31     <enumeration name="AddressType" c:type="FooAddressType">
32       <member name="invalid" value="0" c:identifier="FOO_ADDRESS_INVALID"/>
33       <member name="ipv4" value="1" c:identifier="FOO_ADDRESS_IPV4"/>
34       <member name="ipv6" value="2" c:identifier="FOO_ADDRESS_IPV6"/>
35     </enumeration>
36     <record name="BRect"
37             c:type="FooBRect"
38             glib:type-name="FooBRect"
39             glib:get-type="foo_brect_get_type"
40             c:symbol-prefix="brect">
41       <field name="x" writable="1">
42         <type name="gdouble" c:type="double"/>
43       </field>
44       <field name="y" writable="1">
45         <type name="gdouble" c:type="double"/>
46       </field>
47       <constructor name="new" c:identifier="foo_brect_new">
48         <return-value transfer-ownership="full">
49           <type name="BRect" c:type="FooBRect*"/>
50         </return-value>
51         <parameters>
52           <parameter name="x" transfer-ownership="none">
53             <type name="gdouble" c:type="double"/>
54           </parameter>
55           <parameter name="y" transfer-ownership="none">
56             <type name="gdouble" c:type="double"/>
57           </parameter>
58         </parameters>
59       </constructor>
60       <method name="add" c:identifier="foo_brect_add">
61         <return-value transfer-ownership="none">
62           <type name="none" c:type="void"/>
63         </return-value>
64         <parameters>
65           <parameter name="b2" transfer-ownership="none">
66             <type name="BRect" c:type="FooBRect*"/>
67           </parameter>
68         </parameters>
69       </method>
70     </record>
71     <union name="BUnion"
72            c:type="FooBUnion"
73            glib:type-name="FooBUnion"
74            glib:get-type="foo_bunion_get_type"
75            c:symbol-prefix="bunion">
76       <field name="type" writable="1">
77         <type name="gint" c:type="int"/>
78       </field>
79       <field name="v" writable="1">
80         <type name="gdouble" c:type="double"/>
81       </field>
82       <field name="rect" writable="1">
83         <type name="BRect" c:type="FooBRect*"/>
84       </field>
85       <constructor name="new" c:identifier="foo_bunion_new">
86         <return-value transfer-ownership="full">
87           <type name="BUnion" c:type="FooBUnion*"/>
88         </return-value>
89       </constructor>
90       <method name="get_contained_type"
91               c:identifier="foo_bunion_get_contained_type">
92         <return-value transfer-ownership="none">
93           <type name="gint" c:type="int"/>
94         </return-value>
95       </method>
96     </union>
97     <record name="Boxed"
98             c:type="FooBoxed"
99             glib:type-name="FooBoxed"
100             glib:get-type="foo_boxed_get_type"
101             c:symbol-prefix="boxed">
102       <constructor name="new" c:identifier="foo_boxed_new">
103         <return-value transfer-ownership="full">
104           <type name="Boxed" c:type="FooBoxed*"/>
105         </return-value>
106       </constructor>
107       <method name="method" c:identifier="foo_boxed_method">
108         <return-value transfer-ownership="none">
109           <type name="none" c:type="void"/>
110         </return-value>
111       </method>
112     </record>
113     <class name="Buffer"
114            c:symbol-prefix="buffer"
115            c:type="FooBuffer"
116            parent="Object"
117            glib:type-name="FooBuffer"
118            glib:get-type="foo_buffer_get_type"
119            glib:type-struct="BufferClass">
120       <implements name="Interface"/>
121       <method name="some_method" c:identifier="foo_buffer_some_method">
122         <return-value transfer-ownership="none">
123           <type name="none" c:type="void"/>
124         </return-value>
125       </method>
126     </class>
127     <record name="BufferClass"
128             c:type="FooBufferClass"
129             disguised="1"
130             glib:is-gtype-struct-for="Buffer">
131     </record>
132     <callback name="Callback" c:type="FooCallback">
133       <return-value transfer-ownership="none">
134         <type name="gboolean" c:type="gboolean"/>
135       </return-value>
136       <parameters>
137         <parameter name="foo" transfer-ownership="none">
138           <type name="Object" c:type="FooObject*"/>
139         </parameter>
140         <parameter name="b" transfer-ownership="none">
141           <type name="gboolean" c:type="gboolean"/>
142         </parameter>
143         <parameter name="data" transfer-ownership="none">
144           <type name="gpointer" c:type="gpointer"/>
145         </parameter>
146       </parameters>
147     </callback>
148     <record name="DBusData"
149             c:type="FooDBusData"
150             glib:type-name="FooDBusData"
151             glib:get-type="foo_dbus_data_get_type"
152             c:symbol-prefix="dbus_data">
153       <method name="method" c:identifier="foo_dbus_data_method">
154         <return-value transfer-ownership="none">
155           <type name="none" c:type="void"/>
156         </return-value>
157       </method>
158     </record>
159     <constant name="DEFINE_SHOULD_BE_EXPOSED"
160               value="should be exposed"
161               c:type="FOO_DEFINE_SHOULD_BE_EXPOSED">
162       <type name="utf8" c:type="gchar*"/>
163     </constant>
164     <enumeration name="EnumFullname" c:type="FooEnumFullname">
165       <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
166       <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
167       <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
168     </enumeration>
169     <enumeration name="EnumNoType" c:type="FooEnumNoType">
170       <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
171       <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
172       <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
173       <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
174     </enumeration>
175     <enumeration name="EnumType"
176                  glib:type-name="FooEnumType"
177                  glib:get-type="foo_enum_type_get_type"
178                  c:type="FooEnumType">
179       <member name="alpha"
180               value="0"
181               c:identifier="FOO_ENUM_ALPHA"
182               glib:nick="alpha"/>
183       <member name="beta"
184               value="1"
185               c:identifier="FOO_ENUM_BETA"
186               glib:nick="beta"/>
187       <member name="delta"
188               value="2"
189               c:identifier="FOO_ENUM_DELTA"
190               glib:nick="delta"/>
191       <function name="method" c:identifier="foo_enum_type_method">
192         <return-value transfer-ownership="none">
193           <type name="gint" c:type="int"/>
194         </return-value>
195         <parameters>
196           <parameter name="foo_enum" transfer-ownership="none">
197             <type name="EnumType" c:type="FooEnumType"/>
198           </parameter>
199         </parameters>
200       </function>
201       <function name="returnv" c:identifier="foo_enum_type_returnv">
202         <return-value transfer-ownership="none">
203           <type name="EnumType" c:type="FooEnumType"/>
204         </return-value>
205         <parameters>
206           <parameter name="x" transfer-ownership="none">
207             <type name="gint" c:type="int"/>
208           </parameter>
209         </parameters>
210       </function>
211     </enumeration>
212     <enumeration name="Error"
213                  glib:type-name="FooError"
214                  glib:get-type="foo_error_get_type"
215                  c:type="FooError"
216                  glib:error-domain="foo-error-quark">
217       <member name="good"
218               value="0"
219               c:identifier="FOO_ERROR_GOOD"
220               glib:nick="good"/>
221       <member name="bad"
222               value="1"
223               c:identifier="FOO_ERROR_BAD"
224               glib:nick="bad"/>
225       <member name="ugly"
226               value="2"
227               c:identifier="FOO_ERROR_UGLY"
228               glib:nick="ugly"/>
229       <function name="quark" c:identifier="foo_error_quark">
230         <return-value transfer-ownership="none">
231           <type name="GLib.Quark" c:type="GQuark"/>
232         </return-value>
233       </function>
234     </enumeration>
235     <union name="Event" c:type="FooEvent">
236       <field name="type" writable="1">
237         <type name="gint" c:type="int"/>
238       </field>
239       <field name="any" writable="1">
240         <type name="EventAny" c:type="FooEventAny"/>
241       </field>
242       <field name="expose" writable="1">
243         <type name="EventExpose" c:type="FooEventExpose"/>
244       </field>
245     </union>
246     <record name="EventAny" c:type="FooEventAny">
247       <field name="send_event" writable="1">
248         <type name="gint8" c:type="gint8"/>
249       </field>
250     </record>
251     <record name="EventExpose" c:type="FooEventExpose">
252       <field name="send_event" writable="1">
253         <type name="gint8" c:type="gint8"/>
254       </field>
255       <field name="count" writable="1">
256         <type name="gint" c:type="gint"/>
257       </field>
258     </record>
259     <bitfield name="FlagsNoType" c:type="FooFlagsNoType">
260       <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT"/>
261       <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA"/>
262       <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA"/>
263     </bitfield>
264     <bitfield name="FlagsType"
265               glib:type-name="FooFlagsType"
266               glib:get-type="foo_flags_type_get_type"
267               c:type="FooFlagsType">
268       <member name="first"
269               value="1"
270               c:identifier="FOO_FLAGS_FIRST"
271               glib:nick="first"/>
272       <member name="second"
273               value="2"
274               c:identifier="FOO_FLAGS_SECOND"
275               glib:nick="second"/>
276       <member name="third"
277               value="4"
278               c:identifier="FOO_FLAGS_THIRD"
279               glib:nick="third"/>
280     </bitfield>
281     <record name="ForeignStruct" c:type="FooForeignStruct" foreign="1">
282       <field name="foo" writable="1">
283         <type name="gint" c:type="int"/>
284       </field>
285       <constructor name="new" c:identifier="foo_foreign_struct_new">
286         <return-value transfer-ownership="full">
287           <type name="ForeignStruct" c:type="FooForeignStruct*"/>
288         </return-value>
289       </constructor>
290       <method name="copy" c:identifier="foo_foreign_struct_copy">
291         <return-value transfer-ownership="full">
292           <type name="ForeignStruct" c:type="FooForeignStruct*"/>
293         </return-value>
294       </method>
295     </record>
296     <interface name="Interface"
297                c:symbol-prefix="interface"
298                c:type="FooInterface"
299                glib:type-name="FooInterface"
300                glib:get-type="foo_interface_get_type"
301                glib:type-struct="InterfaceIface">
302       <function name="static_method"
303                 c:identifier="foo_interface_static_method">
304         <return-value transfer-ownership="none">
305           <type name="none" c:type="void"/>
306         </return-value>
307         <parameters>
308           <parameter name="x" transfer-ownership="none">
309             <type name="gint" c:type="int"/>
310           </parameter>
311         </parameters>
312       </function>
313       <virtual-method name="do_foo" invoker="do_foo">
314         <return-value transfer-ownership="none">
315           <type name="none" c:type="void"/>
316         </return-value>
317         <parameters>
318           <parameter name="x" transfer-ownership="none">
319             <type name="gint" c:type="int"/>
320           </parameter>
321         </parameters>
322       </virtual-method>
323       <method name="do_foo" c:identifier="foo_interface_do_foo">
324         <return-value transfer-ownership="none">
325           <type name="none" c:type="void"/>
326         </return-value>
327         <parameters>
328           <parameter name="x" transfer-ownership="none">
329             <type name="gint" c:type="int"/>
330           </parameter>
331         </parameters>
332       </method>
333     </interface>
334     <record name="InterfaceIface"
335             c:type="FooInterfaceIface"
336             glib:is-gtype-struct-for="Interface">
337       <field name="parent_iface">
338         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
339       </field>
340       <field name="do_foo">
341         <callback name="do_foo">
342           <return-value transfer-ownership="none">
343             <type name="none" c:type="void"/>
344           </return-value>
345           <parameters>
346             <parameter name="self" transfer-ownership="none">
347               <type name="Interface" c:type="FooInterface*"/>
348             </parameter>
349             <parameter name="x" transfer-ownership="none">
350               <type name="gint" c:type="int"/>
351             </parameter>
352           </parameters>
353         </callback>
354       </field>
355     </record>
356     <class name="Object"
357            c:symbol-prefix="object"
358            c:type="FooObject"
359            parent="GObject.Object"
360            glib:type-name="FooObject"
361            glib:get-type="foo_object_get_type"
362            glib:type-struct="ObjectClass">
363       <implements name="Interface"/>
364       <constructor name="new" c:identifier="foo_object_new">
365         <return-value transfer-ownership="full">
366           <type name="Object" c:type="FooObject*"/>
367         </return-value>
368       </constructor>
369       <constructor name="new_as_super" c:identifier="foo_object_new_as_super">
370         <return-value transfer-ownership="full">
371           <type name="GObject.Object" c:type="GObject*"/>
372         </return-value>
373       </constructor>
374       <function name="a_global_method"
375                 c:identifier="foo_object_a_global_method">
376         <return-value transfer-ownership="none">
377           <type name="none" c:type="void"/>
378         </return-value>
379         <parameters>
380           <parameter name="obj" transfer-ownership="none">
381             <type name="Utility.Object" c:type="UtilityObject*"/>
382           </parameter>
383         </parameters>
384       </function>
385       <function name="get_default" c:identifier="foo_object_get_default">
386         <doc xml:whitespace="preserve">This function is intended to match clutter_stage_get_default which
387 uses a C sugar return type.</doc>
388         <return-value transfer-ownership="none">
389           <doc xml:whitespace="preserve">The global #FooSubobject</doc>
390           <type name="Subobject" c:type="FooObject*"/>
391         </return-value>
392       </function>
393       <function name="static_meth" c:identifier="foo_object_static_meth">
394         <return-value transfer-ownership="none">
395           <type name="gint" c:type="int"/>
396         </return-value>
397       </function>
398       <virtual-method name="read_fn" invoker="read">
399         <doc xml:whitespace="preserve">Read some stuff.</doc>
400         <return-value transfer-ownership="none">
401           <type name="none" c:type="void"/>
402         </return-value>
403         <parameters>
404           <parameter name="offset" transfer-ownership="none">
405             <doc xml:whitespace="preserve">offset</doc>
406             <type name="gint" c:type="int"/>
407           </parameter>
408           <parameter name="length" transfer-ownership="none">
409             <doc xml:whitespace="preserve">length</doc>
410             <type name="gint" c:type="int"/>
411           </parameter>
412         </parameters>
413       </virtual-method>
414       <virtual-method name="virtual_method" invoker="virtual_method">
415         <return-value transfer-ownership="none">
416           <type name="gboolean" c:type="gboolean"/>
417         </return-value>
418         <parameters>
419           <parameter name="first_param" transfer-ownership="none">
420             <type name="gint" c:type="int"/>
421           </parameter>
422         </parameters>
423       </virtual-method>
424       <method name="append_new_stack_layer"
425               c:identifier="foo_object_append_new_stack_layer">
426         <doc xml:whitespace="preserve">This shouldn't be scanned as a constructor.</doc>
427         <return-value transfer-ownership="none">
428           <type name="OtherObject" c:type="FooOtherObject*"/>
429         </return-value>
430         <parameters>
431           <parameter name="x" transfer-ownership="none">
432             <type name="gint" c:type="int"/>
433           </parameter>
434         </parameters>
435       </method>
436       <method name="dup_name" c:identifier="foo_object_dup_name">
437         <return-value transfer-ownership="full">
438           <type name="utf8" c:type="char*"/>
439         </return-value>
440       </method>
441       <method name="external_type" c:identifier="foo_object_external_type">
442         <return-value transfer-ownership="none">
443           <doc xml:whitespace="preserve">%NULL always</doc>
444           <type name="Utility.Object" c:type="UtilityObject*"/>
445         </return-value>
446       </method>
447       <method name="get_name" c:identifier="foo_object_get_name">
448         <return-value transfer-ownership="none">
449           <type name="utf8" c:type="char*"/>
450         </return-value>
451       </method>
452       <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
453         <return-value transfer-ownership="none">
454           <type name="none" c:type="void"/>
455         </return-value>
456         <parameters>
457           <parameter name="glyph" transfer-ownership="none">
458             <type name="Utility.Glyph" c:type="UtilityGlyph"/>
459           </parameter>
460         </parameters>
461       </method>
462       <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
463         <return-value transfer-ownership="none">
464           <type name="none" c:type="void"/>
465         </return-value>
466         <parameters>
467           <parameter name="time" transfer-ownership="none">
468             <type name="glong" c:type="time_t"/>
469           </parameter>
470         </parameters>
471       </method>
472       <method name="new_cookie"
473               c:identifier="foo_object_new_cookie"
474               introspectable="0">
475         <doc xml:whitespace="preserve">Not sure why this test is here...</doc>
476         <return-value>
477           <type name="ObjectCookie" c:type="FooObjectCookie"/>
478         </return-value>
479         <parameters>
480           <parameter name="target" transfer-ownership="none">
481             <type name="utf8" c:type="char*"/>
482           </parameter>
483         </parameters>
484       </method>
485       <method name="read" c:identifier="foo_object_read">
486         <doc xml:whitespace="preserve">Read some stuff.</doc>
487         <return-value transfer-ownership="none">
488           <type name="none" c:type="void"/>
489         </return-value>
490         <parameters>
491           <parameter name="offset" transfer-ownership="none">
492             <doc xml:whitespace="preserve">offset</doc>
493             <type name="gint" c:type="int"/>
494           </parameter>
495           <parameter name="length" transfer-ownership="none">
496             <doc xml:whitespace="preserve">length</doc>
497             <type name="gint" c:type="int"/>
498           </parameter>
499         </parameters>
500       </method>
501       <method name="skipped_method"
502               c:identifier="foo_object_skipped_method"
503               introspectable="0">
504         <doc xml:whitespace="preserve">This is only useful from C.</doc>
505         <return-value transfer-ownership="none">
506           <type name="none" c:type="void"/>
507         </return-value>
508       </method>
509       <method name="take_all"
510               c:identifier="foo_object_take_all"
511               introspectable="0">
512         <return-value transfer-ownership="none">
513           <type name="none" c:type="void"/>
514         </return-value>
515         <parameters>
516           <parameter name="x" transfer-ownership="none">
517             <type name="gint" c:type="int"/>
518           </parameter>
519           <parameter transfer-ownership="none">
520             <varargs>
521             </varargs>
522           </parameter>
523         </parameters>
524       </method>
525       <method name="various" c:identifier="foo_object_various">
526         <return-value transfer-ownership="none">
527           <type name="none" c:type="void"/>
528         </return-value>
529         <parameters>
530           <parameter name="data" transfer-ownership="none">
531             <type name="gpointer" c:type="void*"/>
532           </parameter>
533           <parameter name="some_type" transfer-ownership="none">
534             <type name="GType" c:type="GType"/>
535           </parameter>
536         </parameters>
537       </method>
538       <method name="virtual_method" c:identifier="foo_object_virtual_method">
539         <return-value transfer-ownership="none">
540           <type name="gboolean" c:type="gboolean"/>
541         </return-value>
542         <parameters>
543           <parameter name="first_param" transfer-ownership="none">
544             <type name="gint" c:type="int"/>
545           </parameter>
546         </parameters>
547       </method>
548       <property name="hidden"
549                 introspectable="0"
550                 writable="1"
551                 construct-only="1"
552                 transfer-ownership="none">
553         <type/>
554       </property>
555       <property name="string"
556                 writable="1"
557                 construct="1"
558                 transfer-ownership="none">
559         <type name="utf8"/>
560       </property>
561       <field name="parent_instance">
562         <type name="GObject.Object" c:type="GObject"/>
563       </field>
564       <field name="some_int">
565         <type name="gint" c:type="int"/>
566       </field>
567       <glib:signal name="signal" when="last">
568         <return-value transfer-ownership="full">
569           <type name="utf8"/>
570         </return-value>
571         <parameters>
572           <parameter name="object" transfer-ownership="none">
573             <type name="GObject.Object"/>
574           </parameter>
575           <parameter name="p0" transfer-ownership="none">
576             <type name="gpointer"/>
577           </parameter>
578         </parameters>
579       </glib:signal>
580     </class>
581     <record name="ObjectClass"
582             c:type="FooObjectClass"
583             glib:is-gtype-struct-for="Object">
584       <field name="parent_class">
585         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
586       </field>
587       <field name="virtual_method">
588         <callback name="virtual_method">
589           <return-value transfer-ownership="none">
590             <type name="gboolean" c:type="gboolean"/>
591           </return-value>
592           <parameters>
593             <parameter name="object" transfer-ownership="none">
594               <type name="Object" c:type="FooObject*"/>
595             </parameter>
596             <parameter name="first_param" transfer-ownership="none">
597               <type name="gint" c:type="int"/>
598             </parameter>
599           </parameters>
600         </callback>
601       </field>
602       <field name="read_fn">
603         <callback name="read_fn">
604           <return-value transfer-ownership="none">
605             <type name="none" c:type="void"/>
606           </return-value>
607           <parameters>
608             <parameter name="object" transfer-ownership="none">
609               <type name="Object" c:type="FooObject*"/>
610             </parameter>
611             <parameter name="offset" transfer-ownership="none">
612               <doc xml:whitespace="preserve">offset</doc>
613               <type name="gint" c:type="int"/>
614             </parameter>
615             <parameter name="length" transfer-ownership="none">
616               <doc xml:whitespace="preserve">length</doc>
617               <type name="gint" c:type="int"/>
618             </parameter>
619           </parameters>
620         </callback>
621       </field>
622       <field name="_reserved">
623         <array zero-terminated="0" c:type="GCallback" fixed-size="4">
624           <type name="GObject.Callback" c:type="GCallback"/>
625         </array>
626       </field>
627     </record>
628     <class name="OtherObject"
629            c:symbol-prefix="other_object"
630            c:type="FooOtherObject"
631            parent="GObject.Object"
632            glib:type-name="FooOtherObject"
633            glib:get-type="foo_other_object_get_type"
634            glib:type-struct="OtherObjectClass">
635     </class>
636     <record name="OtherObjectClass"
637             c:type="FooOtherObjectClass"
638             disguised="1"
639             glib:is-gtype-struct-for="OtherObject">
640     </record>
641     <constant name="PIE_IS_TASTY" value="3.141590" c:type="FOO_PIE_IS_TASTY">
642       <type name="gdouble" c:type="gdouble"/>
643     </constant>
644     <record name="Rectangle" c:type="FooRectangle">
645       <field name="x" writable="1">
646         <type name="gint" c:type="gint"/>
647       </field>
648       <field name="y" writable="1">
649         <type name="gint" c:type="gint"/>
650       </field>
651       <field name="width" writable="1">
652         <type name="gint" c:type="gint"/>
653       </field>
654       <field name="height" writable="1">
655         <type name="gint" c:type="gint"/>
656       </field>
657       <method name="add" c:identifier="foo_rectangle_add">
658         <return-value transfer-ownership="none">
659           <type name="none" c:type="void"/>
660         </return-value>
661         <parameters>
662           <parameter name="r2" transfer-ownership="none">
663             <doc xml:whitespace="preserve">source rectangle</doc>
664             <type name="Rectangle" c:type="FooRectangle*"/>
665           </parameter>
666         </parameters>
667       </method>
668       <function name="new" c:identifier="foo_rectangle_new" introspectable="0">
669         <doc xml:whitespace="preserve">This is a C convenience constructor; we have to (skip)
670 it because it's not a boxed type.</doc>
671         <return-value>
672           <type name="Rectangle" c:type="FooRectangle*"/>
673         </return-value>
674         <parameters>
675           <parameter name="x" transfer-ownership="none">
676             <type name="gint" c:type="int"/>
677           </parameter>
678           <parameter name="y" transfer-ownership="none">
679             <type name="gint" c:type="int"/>
680           </parameter>
681           <parameter name="width" transfer-ownership="none">
682             <type name="gint" c:type="int"/>
683           </parameter>
684           <parameter name="height" transfer-ownership="none">
685             <type name="gint" c:type="int"/>
686           </parameter>
687         </parameters>
688       </function>
689     </record>
690     <constant name="SUCCESS_INT" value="4408" c:type="FOO_SUCCESS_INT">
691       <type name="gint" c:type="gint"/>
692     </constant>
693     <enumeration name="Skippable" introspectable="0" c:type="FooSkippable">
694       <doc xml:whitespace="preserve">Some type that is only interesting from C and should not be
695 exposed to language bindings.</doc>
696       <member name="one" value="0" c:identifier="FOO_SKIPPABLE_ONE"/>
697       <member name="two" value="1" c:identifier="FOO_SKIPPABLE_TWO"/>
698     </enumeration>
699     <enumeration name="StackLayer" c:type="FooStackLayer">
700       <member name="desktop" value="0" c:identifier="FOO_LAYER_DESKTOP"/>
701       <member name="bottom" value="1" c:identifier="FOO_LAYER_BOTTOM"/>
702       <member name="normal" value="2" c:identifier="FOO_LAYER_NORMAL"/>
703       <member name="top" value="4" c:identifier="FOO_LAYER_TOP"/>
704       <member name="dock" value="4" c:identifier="FOO_LAYER_DOCK"/>
705       <member name="fullscreen" value="5" c:identifier="FOO_LAYER_FULLSCREEN"/>
706       <member name="focused_window"
707               value="6"
708               c:identifier="FOO_LAYER_FOCUSED_WINDOW"/>
709       <member name="override_redirect"
710               value="7"
711               c:identifier="FOO_LAYER_OVERRIDE_REDIRECT"/>
712       <member name="last" value="8" c:identifier="FOO_LAYER_LAST"/>
713     </enumeration>
714     <record name="Struct" c:type="FooStruct">
715       <field name="priv" writable="1">
716         <type name="StructPrivate" c:type="FooStructPrivate*"/>
717       </field>
718       <field name="member" writable="1">
719         <type name="gint" c:type="int"/>
720       </field>
721     </record>
722     <record name="StructPrivate" c:type="FooStructPrivate" disguised="1">
723     </record>
724     <interface name="SubInterface"
725                c:symbol-prefix="sub_interface"
726                c:type="FooSubInterface"
727                glib:type-name="FooSubInterface"
728                glib:get-type="foo_sub_interface_get_type"
729                glib:type-struct="SubInterfaceIface">
730       <prerequisite name="Interface"/>
731       <virtual-method name="destroy_event">
732         <return-value transfer-ownership="none">
733           <type name="none" c:type="void"/>
734         </return-value>
735       </virtual-method>
736       <virtual-method name="do_bar" invoker="do_bar">
737         <return-value transfer-ownership="none">
738           <type name="none" c:type="void"/>
739         </return-value>
740       </virtual-method>
741       <virtual-method name="do_baz" invoker="do_baz">
742         <return-value transfer-ownership="none">
743           <type name="none" c:type="void"/>
744         </return-value>
745         <parameters>
746           <parameter name="callback"
747                      transfer-ownership="none"
748                      scope="call"
749                      closure="1">
750             <type name="GObject.Callback" c:type="GCallback"/>
751           </parameter>
752           <parameter name="data" transfer-ownership="none">
753             <type name="gpointer" c:type="gpointer"/>
754           </parameter>
755         </parameters>
756       </virtual-method>
757       <virtual-method name="do_moo" invoker="do_moo">
758         <return-value transfer-ownership="none">
759           <type name="none" c:type="void"/>
760         </return-value>
761         <parameters>
762           <parameter transfer-ownership="none">
763             <type name="gint" c:type="int"/>
764           </parameter>
765           <parameter transfer-ownership="none">
766             <type name="gpointer" c:type="gpointer"/>
767           </parameter>
768         </parameters>
769       </virtual-method>
770       <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
771         <return-value transfer-ownership="none">
772           <type name="none" c:type="void"/>
773         </return-value>
774       </method>
775       <method name="do_baz" c:identifier="foo_sub_interface_do_baz">
776         <return-value transfer-ownership="none">
777           <type name="none" c:type="void"/>
778         </return-value>
779         <parameters>
780           <parameter name="callback"
781                      transfer-ownership="none"
782                      scope="call"
783                      closure="1">
784             <type name="GObject.Callback" c:type="GCallback"/>
785           </parameter>
786           <parameter name="data" transfer-ownership="none">
787             <type name="gpointer" c:type="gpointer"/>
788           </parameter>
789         </parameters>
790       </method>
791       <method name="do_moo" c:identifier="foo_sub_interface_do_moo">
792         <return-value transfer-ownership="none">
793           <type name="none" c:type="void"/>
794         </return-value>
795         <parameters>
796           <parameter transfer-ownership="none">
797             <type name="gint" c:type="int"/>
798           </parameter>
799           <parameter transfer-ownership="none">
800             <type name="gpointer" c:type="gpointer"/>
801           </parameter>
802         </parameters>
803       </method>
804       <glib:signal name="destroy-event" when="last">
805         <return-value transfer-ownership="none">
806           <type name="none"/>
807         </return-value>
808       </glib:signal>
809     </interface>
810     <record name="SubInterfaceIface"
811             c:type="FooSubInterfaceIface"
812             glib:is-gtype-struct-for="SubInterface">
813       <field name="parent_iface">
814         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
815       </field>
816       <field name="destroy_event">
817         <callback name="destroy_event">
818           <return-value transfer-ownership="none">
819             <type name="none" c:type="void"/>
820           </return-value>
821           <parameters>
822             <parameter name="self" transfer-ownership="none">
823               <type name="SubInterface" c:type="FooSubInterface*"/>
824             </parameter>
825           </parameters>
826         </callback>
827       </field>
828       <field name="do_bar">
829         <callback name="do_bar">
830           <return-value transfer-ownership="none">
831             <type name="none" c:type="void"/>
832           </return-value>
833           <parameters>
834             <parameter name="self" transfer-ownership="none">
835               <type name="SubInterface" c:type="FooSubInterface*"/>
836             </parameter>
837           </parameters>
838         </callback>
839       </field>
840       <field name="do_moo">
841         <callback name="do_moo">
842           <return-value transfer-ownership="none">
843             <type name="none" c:type="void"/>
844           </return-value>
845           <parameters>
846             <parameter name="self" transfer-ownership="none">
847               <type name="SubInterface" c:type="FooSubInterface*"/>
848             </parameter>
849             <parameter transfer-ownership="none">
850               <type name="gint" c:type="int"/>
851             </parameter>
852             <parameter transfer-ownership="none">
853               <type name="gpointer" c:type="gpointer"/>
854             </parameter>
855           </parameters>
856         </callback>
857       </field>
858       <field name="do_baz">
859         <callback name="do_baz">
860           <return-value transfer-ownership="none">
861             <type name="none" c:type="void"/>
862           </return-value>
863           <parameters>
864             <parameter name="self" transfer-ownership="none">
865               <type name="SubInterface" c:type="FooSubInterface*"/>
866             </parameter>
867             <parameter name="callback"
868                        transfer-ownership="none"
869                        scope="call"
870                        closure="2">
871               <type name="GObject.Callback" c:type="GCallback"/>
872             </parameter>
873             <parameter name="data" transfer-ownership="none">
874               <type name="gpointer" c:type="gpointer"/>
875             </parameter>
876           </parameters>
877         </callback>
878       </field>
879     </record>
880     <class name="Subobject"
881            c:symbol-prefix="subobject"
882            c:type="FooSubobject"
883            parent="Object"
884            abstract="1"
885            glib:type-name="FooSubobject"
886            glib:get-type="foo_subobject_get_type"
887            glib:type-struct="SubobjectClass">
888       <implements name="Interface"/>
889       <constructor name="new" c:identifier="foo_subobject_new">
890         <return-value transfer-ownership="full">
891           <type name="Subobject" c:type="FooSubobject*"/>
892         </return-value>
893       </constructor>
894       <field name="parent_instance">
895         <type name="Object" c:type="FooObject"/>
896       </field>
897     </class>
898     <record name="SubobjectClass"
899             c:type="FooSubobjectClass"
900             glib:is-gtype-struct-for="Subobject">
901       <field name="parent_class">
902         <type name="ObjectClass" c:type="FooObjectClass"/>
903       </field>
904     </record>
905     <record name="ThingWithArray" c:type="FooThingWithArray">
906       <field name="x" writable="1">
907         <type name="gint" c:type="int"/>
908       </field>
909       <field name="y" writable="1">
910         <type name="gint" c:type="int"/>
911       </field>
912       <field name="lines" writable="1">
913         <array zero-terminated="0" c:type="gchar" fixed-size="80">
914           <type name="gchar" c:type="char"/>
915         </array>
916       </field>
917       <field name="data" writable="1">
918         <type name="guint8" c:type="guchar*"/>
919       </field>
920     </record>
921     <union name="Union" c:type="FooUnion">
922       <field name="foo" writable="1">
923         <type name="gint" c:type="int"/>
924       </field>
925     </union>
926     <record name="UtilityStruct" c:type="FooUtilityStruct">
927       <field name="bar" writable="1">
928         <type name="Utility.Struct" c:type="UtilityStruct"/>
929       </field>
930     </record>
931     <callback name="VarargsCallback"
932               c:type="FooVarargsCallback"
933               introspectable="0">
934       <return-value transfer-ownership="none">
935         <type name="none" c:type="void"/>
936       </return-value>
937       <parameters>
938         <parameter name="param" transfer-ownership="none">
939           <type name="utf8" c:type="char*"/>
940         </parameter>
941         <parameter transfer-ownership="none">
942           <varargs>
943           </varargs>
944         </parameter>
945       </parameters>
946     </callback>
947     <function name="async_ready_callback"
948               c:identifier="foo_async_ready_callback">
949       <return-value transfer-ownership="none">
950         <type name="none" c:type="void"/>
951       </return-value>
952       <parameters>
953         <parameter name="cancellable" transfer-ownership="none" allow-none="1">
954           <type name="Gio.Cancellable" c:type="GCancellable*"/>
955         </parameter>
956         <parameter name="callback"
957                    transfer-ownership="none"
958                    allow-none="1"
959                    scope="async"
960                    closure="2">
961           <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
962         </parameter>
963         <parameter name="user_data" transfer-ownership="none">
964           <type name="gpointer" c:type="gpointer"/>
965         </parameter>
966       </parameters>
967     </function>
968     <function name="destroy_notify_callback"
969               c:identifier="foo_destroy_notify_callback">
970       <return-value transfer-ownership="none">
971         <type name="none" c:type="void"/>
972       </return-value>
973       <parameters>
974         <parameter name="callback"
975                    transfer-ownership="none"
976                    scope="notified"
977                    closure="1"
978                    destroy="2">
979           <type name="Callback" c:type="FooCallback"/>
980         </parameter>
981         <parameter name="data" transfer-ownership="none">
982           <type name="gpointer" c:type="gpointer"/>
983         </parameter>
984         <parameter name="destroy" transfer-ownership="none" scope="async">
985           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
986         </parameter>
987       </parameters>
988     </function>
989     <function name="enum_type_method"
990               c:identifier="foo_enum_type_method"
991               moved-to="EnumType.method">
992       <return-value transfer-ownership="none">
993         <type name="gint" c:type="int"/>
994       </return-value>
995       <parameters>
996         <parameter name="foo_enum" transfer-ownership="none">
997           <type name="EnumType" c:type="FooEnumType"/>
998         </parameter>
999       </parameters>
1000     </function>
1001     <function name="enum_type_returnv"
1002               c:identifier="foo_enum_type_returnv"
1003               moved-to="EnumType.returnv">
1004       <return-value transfer-ownership="none">
1005         <type name="EnumType" c:type="FooEnumType"/>
1006       </return-value>
1007       <parameters>
1008         <parameter name="x" transfer-ownership="none">
1009           <type name="gint" c:type="int"/>
1010         </parameter>
1011       </parameters>
1012     </function>
1013     <function name="error_quark"
1014               c:identifier="foo_error_quark"
1015               moved-to="Error.quark">
1016       <return-value transfer-ownership="none">
1017         <type name="GLib.Quark" c:type="GQuark"/>
1018       </return-value>
1019     </function>
1020     <function name="init" c:identifier="foo_init">
1021       <return-value transfer-ownership="none">
1022         <type name="gint" c:type="gint"/>
1023       </return-value>
1024     </function>
1025     <function name="interface_static_method"
1026               c:identifier="foo_interface_static_method"
1027               moved-to="Interface.static_method">
1028       <return-value transfer-ownership="none">
1029         <type name="none" c:type="void"/>
1030       </return-value>
1031       <parameters>
1032         <parameter name="x" transfer-ownership="none">
1033           <type name="gint" c:type="int"/>
1034         </parameter>
1035       </parameters>
1036     </function>
1037     <function name="method_external_references"
1038               c:identifier="foo_method_external_references">
1039       <return-value transfer-ownership="none">
1040         <type name="none" c:type="void"/>
1041       </return-value>
1042       <parameters>
1043         <parameter name="object" transfer-ownership="none">
1044           <type name="Utility.Object" c:type="UtilityObject*"/>
1045         </parameter>
1046         <parameter name="e" transfer-ownership="none">
1047           <type name="Utility.EnumType" c:type="UtilityEnumType"/>
1048         </parameter>
1049         <parameter name="f" transfer-ownership="none">
1050           <type name="Utility.FlagType" c:type="UtilityFlagType"/>
1051         </parameter>
1052         <parameter name="s" transfer-ownership="none">
1053           <type name="Utility.Struct" c:type="UtilityStruct"/>
1054         </parameter>
1055       </parameters>
1056     </function>
1057     <function name="rectangle_new"
1058               c:identifier="foo_rectangle_new"
1059               moved-to="Rectangle.new"
1060               introspectable="0">
1061       <doc xml:whitespace="preserve">This is a C convenience constructor; we have to (skip)
1062 it because it's not a boxed type.</doc>
1063       <return-value>
1064         <type name="Rectangle" c:type="FooRectangle*"/>
1065       </return-value>
1066       <parameters>
1067         <parameter name="x" transfer-ownership="none">
1068           <type name="gint" c:type="int"/>
1069         </parameter>
1070         <parameter name="y" transfer-ownership="none">
1071           <type name="gint" c:type="int"/>
1072         </parameter>
1073         <parameter name="width" transfer-ownership="none">
1074           <type name="gint" c:type="int"/>
1075         </parameter>
1076         <parameter name="height" transfer-ownership="none">
1077           <type name="gint" c:type="int"/>
1078         </parameter>
1079       </parameters>
1080     </function>
1081     <function name="skip_me" c:identifier="foo_skip_me" introspectable="0">
1082       <doc xml:whitespace="preserve">Does something that's only interesting from C and should not be
1083 exposed to language bindings.</doc>
1084       <return-value transfer-ownership="none">
1085         <type name="none" c:type="void"/>
1086       </return-value>
1087       <parameters>
1088         <parameter name="fs" transfer-ownership="none">
1089           <doc xml:whitespace="preserve">a #FooSkippable</doc>
1090           <type name="Skippable" c:type="FooSkippable"/>
1091         </parameter>
1092       </parameters>
1093     </function>
1094     <function name="some_variant"
1095               c:identifier="foo_some_variant"
1096               introspectable="0">
1097       <return-value transfer-ownership="none">
1098         <type name="none" c:type="void"/>
1099       </return-value>
1100       <parameters>
1101         <parameter name="x" transfer-ownership="none">
1102           <type name="guint" c:type="guint"/>
1103         </parameter>
1104         <parameter name="args" transfer-ownership="none">
1105           <type name="va_list" c:type="va_list"/>
1106         </parameter>
1107       </parameters>
1108     </function>
1109     <function name="some_variant_ptr"
1110               c:identifier="foo_some_variant_ptr"
1111               introspectable="0">
1112       <return-value transfer-ownership="none">
1113         <type name="none" c:type="void"/>
1114       </return-value>
1115       <parameters>
1116         <parameter name="x" transfer-ownership="none">
1117           <type name="guint" c:type="guint"/>
1118         </parameter>
1119         <parameter name="args" transfer-ownership="none">
1120           <type name="va_list" c:type="va_list*"/>
1121         </parameter>
1122       </parameters>
1123     </function>
1124     <function name="test_array" c:identifier="foo_test_array">
1125       <return-value transfer-ownership="container">
1126         <array name="GLib.Array" c:type="GArray*">
1127           <type name="utf8"/>
1128         </array>
1129       </return-value>
1130     </function>
1131     <function name="test_const_char_param"
1132               c:identifier="foo_test_const_char_param">
1133       <return-value transfer-ownership="none">
1134         <type name="none" c:type="void"/>
1135       </return-value>
1136       <parameters>
1137         <parameter name="param" transfer-ownership="none">
1138           <type name="utf8" c:type="char*"/>
1139         </parameter>
1140       </parameters>
1141     </function>
1142     <function name="test_const_char_retval"
1143               c:identifier="foo_test_const_char_retval">
1144       <return-value transfer-ownership="none">
1145         <type name="utf8" c:type="char*"/>
1146       </return-value>
1147     </function>
1148     <function name="test_const_struct_param"
1149               c:identifier="foo_test_const_struct_param">
1150       <return-value transfer-ownership="none">
1151         <type name="none" c:type="void"/>
1152       </return-value>
1153       <parameters>
1154         <parameter name="param" transfer-ownership="none">
1155           <type name="Struct" c:type="FooStruct*"/>
1156         </parameter>
1157       </parameters>
1158     </function>
1159     <function name="test_const_struct_retval"
1160               c:identifier="foo_test_const_struct_retval">
1161       <return-value transfer-ownership="none">
1162         <type name="Struct" c:type="FooStruct*"/>
1163       </return-value>
1164     </function>
1165     <function name="test_string_array" c:identifier="foo_test_string_array">
1166       <return-value transfer-ownership="none">
1167         <type name="none" c:type="void"/>
1168       </return-value>
1169       <parameters>
1170         <parameter name="array" transfer-ownership="none">
1171           <array c:type="char**">
1172             <type name="utf8" c:type="char*"/>
1173           </array>
1174         </parameter>
1175       </parameters>
1176     </function>
1177     <function name="test_string_array_with_g"
1178               c:identifier="foo_test_string_array_with_g">
1179       <return-value transfer-ownership="none">
1180         <type name="none" c:type="void"/>
1181       </return-value>
1182       <parameters>
1183         <parameter name="array" transfer-ownership="none">
1184           <array c:type="gchar**">
1185             <type name="utf8" c:type="gchar*"/>
1186           </array>
1187         </parameter>
1188       </parameters>
1189     </function>
1190     <function name="test_unsigned_qualifier"
1191               c:identifier="foo_test_unsigned_qualifier">
1192       <return-value transfer-ownership="none">
1193         <type name="none" c:type="void"/>
1194       </return-value>
1195       <parameters>
1196         <parameter name="unsigned_param" transfer-ownership="none">
1197           <type name="guint" c:type="unsigned int"/>
1198         </parameter>
1199       </parameters>
1200     </function>
1201     <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
1202       <return-value transfer-ownership="none">
1203         <type name="none" c:type="void"/>
1204       </return-value>
1205       <parameters>
1206         <parameter name="unsigned_param" transfer-ownership="none">
1207           <type name="guint" c:type="unsigned"/>
1208         </parameter>
1209       </parameters>
1210     </function>
1211     <function name="test_varargs_callback"
1212               c:identifier="foo_test_varargs_callback"
1213               introspectable="0">
1214       <return-value transfer-ownership="none">
1215         <type name="none" c:type="void"/>
1216       </return-value>
1217       <parameters>
1218         <parameter name="i" transfer-ownership="none">
1219           <type name="gint" c:type="gint"/>
1220         </parameter>
1221         <parameter name="callback" transfer-ownership="none">
1222           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
1223         </parameter>
1224       </parameters>
1225     </function>
1226     <function name="test_varargs_callback2"
1227               c:identifier="foo_test_varargs_callback2"
1228               introspectable="0">
1229       <return-value transfer-ownership="none">
1230         <type name="none" c:type="void"/>
1231       </return-value>
1232       <parameters>
1233         <parameter name="callback" transfer-ownership="none">
1234           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
1235         </parameter>
1236       </parameters>
1237     </function>
1238     <function name="test_varargs_callback3"
1239               c:identifier="foo_test_varargs_callback3"
1240               introspectable="0">
1241       <return-value transfer-ownership="none">
1242         <type name="none" c:type="void"/>
1243       </return-value>
1244       <parameters>
1245         <parameter name="callback" transfer-ownership="none">
1246           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
1247         </parameter>
1248         <parameter name="callback2" transfer-ownership="none">
1249           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
1250         </parameter>
1251       </parameters>
1252     </function>
1253   </namespace>
1254 </repository>