Bug 563591 – Flags not recognized when there is no introspection data
[gnome.gobject-introspection] / tests / scanner / foo-1.0-expected.gir
1 <?xml version="1.0"?>
2 <repository version="1.0"
3             xmlns="http://www.gtk.org/introspection/core/1.0"
4             xmlns:c="http://www.gtk.org/introspection/c/1.0"
5             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
6   <include name="GLib" version="2.0"/>
7   <include name="GObject" version="2.0"/>
8   <include name="utility" version="1.0"/>
9   <namespace name="foo" version="1.0" shared-library="foo">
10     <alias name="List" target="GLib.SList" c:type="FooList"/>
11     <alias name="XEvent" target="none" c:type="FooXEvent"/>
12     <alias name="ObjectCookie" target="any" c:type="FooObjectCookie"/>
13     <interface name="Interface"
14                c:type="FooInterface"
15                glib:type-name="FooInterface"
16                glib:get-type="foo_interface_get_type">
17       <callback name="do_foo" c:type="do_foo">
18         <return-value transfer-ownership="none">
19           <type name="none" c:type="void"/>
20         </return-value>
21         <parameters>
22           <parameter name="self" transfer-ownership="none">
23             <type name="Interface" c:type="FooInterface*"/>
24           </parameter>
25         </parameters>
26       </callback>
27     </interface>
28     <record name="InterfaceIface" c:type="FooInterfaceIface">
29       <field name="parent_iface">
30         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
31       </field>
32       <callback name="do_foo" c:type="do_foo">
33         <return-value transfer-ownership="none">
34           <type name="none" c:type="void"/>
35         </return-value>
36         <parameters>
37           <parameter name="self" transfer-ownership="none">
38             <type name="Interface" c:type="FooInterface*"/>
39           </parameter>
40         </parameters>
41       </callback>
42     </record>
43     <interface name="SubInterface"
44                c:type="FooSubInterface"
45                glib:type-name="FooSubInterface"
46                glib:get-type="foo_sub_interface_get_type">
47       <prerequisite name="Interface"/>
48       <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
49         <return-value transfer-ownership="none">
50           <type name="none" c:type="void"/>
51         </return-value>
52       </method>
53       <callback name="do_bar" c:type="do_bar">
54         <return-value transfer-ownership="none">
55           <type name="none" c:type="void"/>
56         </return-value>
57         <parameters>
58           <parameter name="self" transfer-ownership="none">
59             <type name="SubInterface" c:type="FooSubInterface*"/>
60           </parameter>
61         </parameters>
62       </callback>
63     </interface>
64     <record name="SubInterfaceIface" c:type="FooSubInterfaceIface">
65       <field name="parent_iface">
66         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
67       </field>
68       <callback name="do_bar" c:type="do_bar">
69         <return-value transfer-ownership="none">
70           <type name="none" c:type="void"/>
71         </return-value>
72         <parameters>
73           <parameter name="self" transfer-ownership="none">
74             <type name="SubInterface" c:type="FooSubInterface*"/>
75           </parameter>
76         </parameters>
77       </callback>
78     </record>
79     <class name="Object"
80            c:type="FooObject"
81            parent="GObject.Object"
82            glib:type-name="FooObject"
83            glib:get-type="foo_object_get_type">
84       <implements name="Interface"/>
85       <constructor name="new" c:identifier="foo_object_new">
86         <return-value transfer-ownership="full">
87           <type name="Object" c:type="FooObject*"/>
88         </return-value>
89       </constructor>
90       <function name="static_meth" c:identifier="foo_object_static_meth">
91         <return-value transfer-ownership="none">
92           <type name="int" c:type="int"/>
93         </return-value>
94       </function>
95       <method name="external_type" c:identifier="foo_object_external_type">
96         <return-value transfer-ownership="full">
97           <type name="utility.Object" c:type="UtilityObject*"/>
98         </return-value>
99       </method>
100       <method name="various" c:identifier="foo_object_various">
101         <return-value transfer-ownership="none">
102           <type name="none" c:type="void"/>
103         </return-value>
104         <parameters>
105           <parameter name="data" transfer-ownership="none">
106             <type name="any" c:type="void*"/>
107           </parameter>
108           <parameter name="some_type" transfer-ownership="none">
109             <type name="GType" c:type="GType"/>
110           </parameter>
111         </parameters>
112       </method>
113       <method name="take_all" c:identifier="foo_object_take_all">
114         <return-value transfer-ownership="none">
115           <type name="none" c:type="void"/>
116         </return-value>
117         <parameters>
118           <parameter name="x" transfer-ownership="none">
119             <type name="int" c:type="int"/>
120           </parameter>
121           <parameter transfer-ownership="none">
122             <varargs>
123             </varargs>
124           </parameter>
125         </parameters>
126       </method>
127       <method name="with_tdef" c:identifier="foo_object_with_tdef">
128         <return-value transfer-ownership="none">
129           <type name="none" c:type="void"/>
130         </return-value>
131         <parameters>
132           <parameter name="blah" transfer-ownership="none">
133             <type name="List" c:type="FooList*"/>
134           </parameter>
135         </parameters>
136       </method>
137       <method name="new_cookie" c:identifier="foo_object_new_cookie">
138         <return-value transfer-ownership="full">
139           <type name="ObjectCookie" c:type="FooObjectCookie"/>
140         </return-value>
141         <parameters>
142           <parameter name="target" transfer-ownership="none">
143             <type name="utf8" c:type="char*"/>
144           </parameter>
145         </parameters>
146       </method>
147       <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
148         <return-value transfer-ownership="none">
149           <type name="none" c:type="void"/>
150         </return-value>
151         <parameters>
152           <parameter name="time" transfer-ownership="none">
153             <type name="time_t" c:type="time_t"/>
154           </parameter>
155         </parameters>
156       </method>
157       <method name="get_name" c:identifier="foo_object_get_name">
158         <return-value transfer-ownership="none">
159           <type name="utf8" c:type="char*"/>
160         </return-value>
161       </method>
162       <method name="dup_name" c:identifier="foo_object_dup_name">
163         <return-value transfer-ownership="full">
164           <type name="utf8" c:type="char*"/>
165         </return-value>
166       </method>
167       <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
168         <return-value transfer-ownership="none">
169           <type name="none" c:type="void"/>
170         </return-value>
171         <parameters>
172           <parameter name="glyph" transfer-ownership="none">
173             <type name="utility.Glyph" c:type="UtilityGlyph"/>
174           </parameter>
175         </parameters>
176       </method>
177       <property name="string" writable="1" construct="1">
178         <type name="utf8" c:type="gchararray"/>
179       </property>
180       <field name="parent_instance">
181         <type name="GObject.Object" c:type="GObject"/>
182       </field>
183       <field name="some_int">
184         <type name="int" c:type="int"/>
185       </field>
186       <glib:signal name="signal">
187         <return-value transfer-ownership="full">
188           <type name="utf8" c:type="gchararray"/>
189         </return-value>
190         <parameters>
191           <parameter name="object" transfer-ownership="none">
192             <type name="GObject.Object" c:type="GObject"/>
193           </parameter>
194           <parameter name="p0" transfer-ownership="none">
195             <type name="any" c:type="gpointer"/>
196           </parameter>
197         </parameters>
198       </glib:signal>
199     </class>
200     <record name="ObjectClass" c:type="FooObjectClass">
201       <field name="parent_class">
202         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
203       </field>
204       <callback name="virtual_method" c:type="virtual_method">
205         <return-value transfer-ownership="none">
206           <type name="boolean" c:type="gboolean"/>
207         </return-value>
208         <parameters>
209           <parameter name="object" transfer-ownership="none">
210             <type name="Object" c:type="FooObject*"/>
211           </parameter>
212           <parameter name="first_param" transfer-ownership="none">
213             <type name="int" c:type="int"/>
214           </parameter>
215         </parameters>
216       </callback>
217     </record>
218     <class name="Subobject"
219            c:type="FooSubobject"
220            parent="Object"
221            abstract="1"
222            glib:type-name="FooSubobject"
223            glib:get-type="foo_subobject_get_type">
224       <implements name="Interface"/>
225       <constructor name="new" c:identifier="foo_subobject_new">
226         <return-value transfer-ownership="full">
227           <type name="Subobject" c:type="FooSubobject*"/>
228         </return-value>
229       </constructor>
230       <field name="parent_instance">
231         <type name="Object" c:type="FooObject"/>
232       </field>
233     </class>
234     <record name="SubobjectClass" c:type="FooSubobjectClass">
235       <field name="parent_class">
236         <type name="ObjectClass" c:type="FooObjectClass"/>
237       </field>
238     </record>
239     <function name="init" c:identifier="foo_init">
240       <return-value transfer-ownership="none">
241         <type name="int" c:type="gint"/>
242       </return-value>
243     </function>
244     <enumeration name="EnumType"
245                  glib:type-name="FooEnumType"
246                  glib:get-type="foo_enum_type_get_type"
247                  c:type="FooEnumType">
248       <member name="alpha"
249               value="0"
250               c:identifier="FOO_ENUM_ALPHA"
251               glib:nick="alpha"/>
252       <member name="beta"
253               value="1"
254               c:identifier="FOO_ENUM_BETA"
255               glib:nick="beta"/>
256       <member name="delta"
257               value="2"
258               c:identifier="FOO_ENUM_DELTA"
259               glib:nick="delta"/>
260     </enumeration>
261     <function name="enum_type_method" c:identifier="foo_enum_type_method">
262       <return-value transfer-ownership="none">
263         <type name="int" c:type="int"/>
264       </return-value>
265       <parameters>
266         <parameter name="foo_enum" transfer-ownership="none">
267           <type name="EnumType" c:type="FooEnumType"/>
268         </parameter>
269       </parameters>
270     </function>
271     <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
272       <return-value transfer-ownership="full">
273         <type name="EnumType" c:type="FooEnumType"/>
274       </return-value>
275       <parameters>
276         <parameter name="x" transfer-ownership="none">
277           <type name="int" c:type="int"/>
278         </parameter>
279       </parameters>
280     </function>
281     <bitfield name="FlagsType"
282               glib:type-name="FooFlagsType"
283               glib:get-type="foo_flags_type_get_type"
284               c:type="FooFlagsType">
285       <member name="first"
286               value="1"
287               c:identifier="FOO_FLAGS_FIRST"
288               glib:nick="first"/>
289       <member name="second"
290               value="2"
291               c:identifier="FOO_FLAGS_SECOND"
292               glib:nick="second"/>
293       <member name="third"
294               value="4"
295               c:identifier="FOO_FLAGS_THIRD"
296               glib:nick="third"/>
297     </bitfield>
298     <enumeration name="EnumNoType" c:type="FooEnumNoType">
299       <member name="un" value="1" c:identifier="FOO_ENUM_UN"/>
300       <member name="deux" value="2" c:identifier="FOO_ENUM_DEUX"/>
301       <member name="trois" value="3" c:identifier="FOO_ENUM_TROIS"/>
302       <member name="neuf" value="9" c:identifier="FOO_ENUM_NEUF"/>
303     </enumeration>
304     <bitfield name="FlagsNoType" c:type="FooFlagsNoType">
305       <member name="ett" value="1" c:identifier="FOO_FLAGS_ETT"/>
306       <member name="tva" value="2" c:identifier="FOO_FLAGS_TVA"/>
307       <member name="fyra" value="4" c:identifier="FOO_FLAGS_FYRA"/>
308     </bitfield>
309     <enumeration name="EnumFullname" c:type="FooEnumFullname">
310       <member name="one" value="1" c:identifier="FOO_ENUM_FULLNAME_ONE"/>
311       <member name="two" value="2" c:identifier="FOO_ENUM_FULLNAME_TWO"/>
312       <member name="three" value="3" c:identifier="FOO_ENUM_FULLNAME_THREE"/>
313     </enumeration>
314     <record name="Boxed"
315             c:type="FooBoxed"
316             glib:type-name="FooBoxed"
317             glib:get-type="foo_boxed_get_type">
318       <constructor name="new" c:identifier="foo_boxed_new">
319         <return-value transfer-ownership="full">
320           <type name="Boxed" c:type="FooBoxed*"/>
321         </return-value>
322       </constructor>
323       <method name="method" c:identifier="foo_boxed_method">
324         <return-value transfer-ownership="none">
325           <type name="none" c:type="void"/>
326         </return-value>
327       </method>
328     </record>
329     <record name="DBusData"
330             c:type="FooDBusData"
331             glib:type-name="FooDBusData"
332             glib:get-type="foo_dbus_data_get_type">
333       <method name="method" c:identifier="foo_dbus_data_method">
334         <return-value transfer-ownership="none">
335           <type name="none" c:type="void"/>
336         </return-value>
337       </method>
338     </record>
339     <callback name="Callback" c:type="FooCallback">
340       <return-value transfer-ownership="none">
341         <type name="boolean" c:type="gboolean"/>
342       </return-value>
343       <parameters>
344         <parameter name="foo" transfer-ownership="none">
345           <type name="Object" c:type="FooObject*"/>
346         </parameter>
347         <parameter name="b" transfer-ownership="none">
348           <type name="boolean" c:type="gboolean"/>
349         </parameter>
350         <parameter name="data" transfer-ownership="none">
351           <type name="any" c:type="gpointer"/>
352         </parameter>
353       </parameters>
354     </callback>
355     <record name="Struct" c:type="FooStruct">
356       <field name="priv" writable="1">
357         <type name="StructPrivate" c:type="FooStructPrivate*"/>
358       </field>
359       <field name="member" writable="1">
360         <type name="int" c:type="int"/>
361       </field>
362     </record>
363     <record name="StructPrivate" c:type="FooStructPrivate">
364     </record>
365     <record name="Rectangle" c:type="FooRectangle">
366       <field name="x" writable="1">
367         <type name="int" c:type="gint"/>
368       </field>
369       <field name="y" writable="1">
370         <type name="int" c:type="gint"/>
371       </field>
372       <field name="width" writable="1">
373         <type name="int" c:type="gint"/>
374       </field>
375       <field name="height" writable="1">
376         <type name="int" c:type="gint"/>
377       </field>
378     </record>
379     <function name="method_external_references"
380               c:identifier="foo_method_external_references">
381       <return-value transfer-ownership="none">
382         <type name="none" c:type="void"/>
383       </return-value>
384       <parameters>
385         <parameter name="object" transfer-ownership="none">
386           <type name="utility.Object" c:type="UtilityObject*"/>
387         </parameter>
388         <parameter name="e" transfer-ownership="none">
389           <type name="utility.EnumType" c:type="UtilityEnumType"/>
390         </parameter>
391         <parameter name="f" transfer-ownership="none">
392           <type name="utility.FlagType" c:type="UtilityFlagType"/>
393         </parameter>
394         <parameter name="s" transfer-ownership="none">
395           <type name="utility.Struct" c:type="UtilityStruct"/>
396         </parameter>
397       </parameters>
398     </function>
399     <function name="rectangle_add" c:identifier="foo_rectangle_add">
400       <return-value transfer-ownership="none">
401         <type name="none" c:type="void"/>
402       </return-value>
403       <parameters>
404         <parameter name="r1" direction="inout" transfer-ownership="full">
405           <type name="Rectangle" c:type="FooRectangle*"/>
406         </parameter>
407         <parameter name="r2" transfer-ownership="none">
408           <type name="Rectangle" c:type="FooRectangle*"/>
409         </parameter>
410       </parameters>
411     </function>
412     <function name="rectangle_new" c:identifier="foo_rectangle_new">
413       <return-value transfer-ownership="full">
414         <type name="Rectangle" c:type="FooRectangle*"/>
415       </return-value>
416       <parameters>
417         <parameter name="x" transfer-ownership="none">
418           <type name="int" c:type="int"/>
419         </parameter>
420         <parameter name="y" transfer-ownership="none">
421           <type name="int" c:type="int"/>
422         </parameter>
423         <parameter name="width" transfer-ownership="none">
424           <type name="int" c:type="int"/>
425         </parameter>
426         <parameter name="height" transfer-ownership="none">
427           <type name="int" c:type="int"/>
428         </parameter>
429       </parameters>
430     </function>
431     <record name="EventAny" c:type="FooEventAny">
432       <field name="send_event" writable="1">
433         <type name="int8" c:type="gint8"/>
434       </field>
435     </record>
436     <record name="EventExpose" c:type="FooEventExpose">
437       <field name="send_event" writable="1">
438         <type name="int8" c:type="gint8"/>
439       </field>
440       <field name="count" writable="1">
441         <type name="int" c:type="gint"/>
442       </field>
443     </record>
444     <union name="Event" c:type="FooEvent">
445       <field name="type" writable="1">
446         <type name="int" c:type="int"/>
447       </field>
448       <field name="any" writable="1">
449         <type name="EventAny" c:type="FooEventAny"/>
450       </field>
451       <field name="expose" writable="1">
452         <type name="EventExpose" c:type="FooEventExpose"/>
453       </field>
454     </union>
455     <record name="BRect"
456             c:type="FooBRect"
457             glib:type-name="FooBRect"
458             glib:get-type="foo_brect_get_type">
459       <field name="x" writable="1">
460         <type name="double" c:type="double"/>
461       </field>
462       <field name="y" writable="1">
463         <type name="double" c:type="double"/>
464       </field>
465       <constructor name="new" c:identifier="foo_brect_new">
466         <return-value transfer-ownership="full">
467           <type name="BRect" c:type="FooBRect*"/>
468         </return-value>
469         <parameters>
470           <parameter name="x" transfer-ownership="none">
471             <type name="double" c:type="double"/>
472           </parameter>
473           <parameter name="y" transfer-ownership="none">
474             <type name="double" c:type="double"/>
475           </parameter>
476         </parameters>
477       </constructor>
478       <method name="add" c:identifier="foo_brect_add">
479         <return-value transfer-ownership="none">
480           <type name="none" c:type="void"/>
481         </return-value>
482         <parameters>
483           <parameter name="b2" transfer-ownership="none">
484             <type name="BRect" c:type="FooBRect*"/>
485           </parameter>
486         </parameters>
487       </method>
488     </record>
489     <union name="BUnion"
490            c:type="FooBUnion"
491            glib:type-name="FooBUnion"
492            glib:get-type="foo_bunion_get_type">
493       <field name="type" writable="1">
494         <type name="int" c:type="int"/>
495       </field>
496       <field name="v" writable="1">
497         <type name="double" c:type="double"/>
498       </field>
499       <field name="rect" writable="1">
500         <type name="BRect" c:type="FooBRect*"/>
501       </field>
502       <constructor name="new" c:identifier="foo_bunion_new">
503         <return-value transfer-ownership="full">
504           <type name="BUnion" c:type="FooBUnion*"/>
505         </return-value>
506       </constructor>
507       <method name="get_contained_type"
508               c:identifier="foo_bunion_get_contained_type">
509         <return-value transfer-ownership="none">
510           <type name="int" c:type="int"/>
511         </return-value>
512       </method>
513     </union>
514     <union name="Union" c:type="_FooUnion">
515       <field name="foo" writable="1">
516         <type name="int" c:type="int"/>
517       </field>
518     </union>
519     <record name="UtilityStruct" c:type="FooUtilityStruct">
520       <field name="bar" writable="1">
521         <type name="utility.Struct" c:type="UtilityStruct"/>
522       </field>
523     </record>
524     <record name="ThingWithArray" c:type="_FooThingWithArray">
525       <field name="x" writable="1">
526         <type name="int" c:type="int"/>
527       </field>
528       <field name="y" writable="1">
529         <type name="int" c:type="int"/>
530       </field>
531       <field name="lines" writable="1">
532         <array zero-terminated="0" c:type="char" fixed-size="80">
533           <type name="int8"/>
534         </array>
535       </field>
536       <field name="data" writable="1">
537         <type name="any" c:type="guchar*"/>
538       </field>
539     </record>
540     <function name="test_unsigned_qualifier"
541               c:identifier="foo_test_unsigned_qualifier">
542       <return-value transfer-ownership="none">
543         <type name="none" c:type="void"/>
544       </return-value>
545       <parameters>
546         <parameter name="unsigned_param" transfer-ownership="none">
547           <type name="uint" c:type="unsigned int"/>
548         </parameter>
549       </parameters>
550     </function>
551     <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
552       <return-value transfer-ownership="none">
553         <type name="none" c:type="void"/>
554       </return-value>
555       <parameters>
556         <parameter name="unsigned_param" transfer-ownership="none">
557           <type name="uint" c:type="unsigned"/>
558         </parameter>
559       </parameters>
560     </function>
561     <function name="test_string_array" c:identifier="foo_test_string_array">
562       <return-value transfer-ownership="none">
563         <type name="none" c:type="void"/>
564       </return-value>
565       <parameters>
566         <parameter name="array" transfer-ownership="none">
567           <array c:type="char**">
568             <type name="utf8"/>
569           </array>
570         </parameter>
571       </parameters>
572     </function>
573     <function name="test_string_array_with_g"
574               c:identifier="foo_test_string_array_with_g">
575       <return-value transfer-ownership="none">
576         <type name="none" c:type="void"/>
577       </return-value>
578       <parameters>
579         <parameter name="array" transfer-ownership="none">
580           <array c:type="gchar**">
581             <type name="utf8"/>
582           </array>
583         </parameter>
584       </parameters>
585     </function>
586     <function name="test_const_char_retval"
587               c:identifier="foo_test_const_char_retval">
588       <return-value transfer-ownership="none">
589         <type name="utf8" c:type="char*"/>
590       </return-value>
591     </function>
592     <function name="test_const_struct_retval"
593               c:identifier="foo_test_const_struct_retval">
594       <return-value transfer-ownership="none">
595         <type name="Struct" c:type="FooStruct*"/>
596       </return-value>
597     </function>
598     <function name="test_const_char_param"
599               c:identifier="foo_test_const_char_param">
600       <return-value transfer-ownership="none">
601         <type name="none" c:type="void"/>
602       </return-value>
603       <parameters>
604         <parameter name="param" transfer-ownership="none">
605           <type name="utf8" c:type="char*"/>
606         </parameter>
607       </parameters>
608     </function>
609     <function name="test_const_struct_param"
610               c:identifier="foo_test_const_struct_param">
611       <return-value transfer-ownership="none">
612         <type name="none" c:type="void"/>
613       </return-value>
614       <parameters>
615         <parameter name="param" transfer-ownership="none">
616           <type name="Struct" c:type="FooStruct*"/>
617         </parameter>
618       </parameters>
619     </function>
620     <constant name="SUCCESS_INT" value="4408">
621       <type name="int"/>
622     </constant>
623   </namespace>
624 </repository>