diff options
author | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-11-09 19:17:23 +0100 |
---|---|---|
committer | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-11-11 13:55:00 +0100 |
commit | f8693bda3775f6339f38a17c037ac7bc4a4cc3f7 (patch) | |
tree | 89456982ed5b6e8e5850a7c05f55a50f3be0c5fa /tests | |
parent | 3715b02198c9efc34d70f489d4e55a39456d8f99 (diff) | |
download | gobject-introspection-f8693bda3775f6339f38a17c037ac7bc4a4cc3f7.tar.gz |
Implement callbacks as part of struct fields. Fixes #557383
gir: embed <callback> inside <field>
typelib: if a field contains a callback, store it just after the FieldBlob
girepository API: no additions
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scanner/foo-1.0-expected.gir | 134 | ||||
-rw-r--r-- | tests/scanner/foo-1.0-expected.tgir | 72 |
2 files changed, 144 insertions, 62 deletions
diff --git a/tests/scanner/foo-1.0-expected.gir b/tests/scanner/foo-1.0-expected.gir index 24e9fbb3..85c2322a 100644 --- a/tests/scanner/foo-1.0-expected.gir +++ b/tests/scanner/foo-1.0-expected.gir @@ -267,19 +267,21 @@ and/or use gtk-doc annotations. --> <field name="parent_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> - <callback name="do_foo" c:type="do_foo"> - <return-value transfer-ownership="none"> - <type name="none" c:type="void"/> - </return-value> - <parameters> - <parameter name="self" transfer-ownership="none"> - <type name="Interface" c:type="FooInterface*"/> - </parameter> - <parameter name="x" transfer-ownership="none"> - <type name="int" c:type="int"/> - </parameter> - </parameters> - </callback> + <field name="do_foo"> + <callback name="do_foo" c:type="do_foo"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Interface" c:type="FooInterface*"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </callback> + </field> </record> <class name="Object" c:type="FooObject" @@ -465,35 +467,39 @@ uses a C sugar return type."> <field name="parent_class"> <type name="GObject.ObjectClass" c:type="GObjectClass"/> </field> - <callback name="virtual_method" c:type="virtual_method"> - <return-value transfer-ownership="none"> - <type name="boolean" c:type="gboolean"/> - </return-value> - <parameters> - <parameter name="object" transfer-ownership="none"> - <type name="Object" c:type="FooObject*"/> - </parameter> - <parameter name="first_param" transfer-ownership="none"> - <type name="int" c:type="int"/> - </parameter> - </parameters> - </callback> - <callback name="read_fn" c:type="read_fn"> - <return-value transfer-ownership="none"> - <type name="none" c:type="void"/> - </return-value> - <parameters> - <parameter name="object" transfer-ownership="none"> - <type name="Object" c:type="FooObject*"/> - </parameter> - <parameter name="offset" transfer-ownership="none"> - <type name="int" c:type="int"/> - </parameter> - <parameter name="length" transfer-ownership="none"> - <type name="int" c:type="int"/> - </parameter> - </parameters> - </callback> + <field name="virtual_method"> + <callback name="virtual_method" c:type="virtual_method"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Object" c:type="FooObject*"/> + </parameter> + <parameter name="first_param" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read_fn"> + <callback name="read_fn" c:type="read_fn"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Object" c:type="FooObject*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </callback> + </field> <field name="_reserved"> <array zero-terminated="0" c:type="GCallback" fixed-size="4"> <type name="GObject.Callback"/> @@ -602,26 +608,30 @@ uses a C sugar return type."> <field name="parent_iface"> <type name="GObject.TypeInterface" c:type="GTypeInterface"/> </field> - <callback name="destroy_event" c:type="destroy_event"> - <return-value transfer-ownership="none"> - <type name="none" c:type="void"/> - </return-value> - <parameters> - <parameter name="self" transfer-ownership="none"> - <type name="SubInterface" c:type="FooSubInterface*"/> - </parameter> - </parameters> - </callback> - <callback name="do_bar" c:type="do_bar"> - <return-value transfer-ownership="none"> - <type name="none" c:type="void"/> - </return-value> - <parameters> - <parameter name="self" transfer-ownership="none"> - <type name="SubInterface" c:type="FooSubInterface*"/> - </parameter> - </parameters> - </callback> + <field name="destroy_event"> + <callback name="destroy_event" c:type="destroy_event"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="SubInterface" c:type="FooSubInterface*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="do_bar"> + <callback name="do_bar" c:type="do_bar"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="SubInterface" c:type="FooSubInterface*"/> + </parameter> + </parameters> + </callback> + </field> </record> <class name="Subobject" c:type="FooSubobject" diff --git a/tests/scanner/foo-1.0-expected.tgir b/tests/scanner/foo-1.0-expected.tgir index 2de826b5..8504bc49 100644 --- a/tests/scanner/foo-1.0-expected.tgir +++ b/tests/scanner/foo-1.0-expected.tgir @@ -190,6 +190,21 @@ <field name="parent_iface"> <type name="GObject.TypeInterface"/> </field> + <field name="do_foo"> + <callback name="do_foo"> + <return-value transfer-ownership="none"> + <type name="none"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Interface"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <type name="int"/> + </parameter> + </parameters> + </callback> + </field> </record> <class name="Object" parent="GObject.Object" glib:type-struct="ObjectClass" glib:type-name="FooObject" glib:get-type="foo_object_get_type"> <implements name="Interface"/> @@ -351,6 +366,39 @@ <field name="parent_class"> <type name="GObject.ObjectClass"/> </field> + <field name="virtual_method"> + <callback name="virtual_method"> + <return-value transfer-ownership="none"> + <type name="boolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Object"/> + </parameter> + <parameter name="first_param" transfer-ownership="none"> + <type name="int"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read_fn"> + <callback name="read_fn"> + <return-value transfer-ownership="none"> + <type name="none"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="Object"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="int"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="int"/> + </parameter> + </parameters> + </callback> + </field> <field name="_reserved"> <array fixed-size="4"> <type name="GObject.Callback"/> @@ -448,6 +496,30 @@ <field name="parent_iface"> <type name="GObject.TypeInterface"/> </field> + <field name="destroy_event"> + <callback name="destroy_event"> + <return-value transfer-ownership="none"> + <type name="none"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="SubInterface"/> + </parameter> + </parameters> + </callback> + </field> + <field name="do_bar"> + <callback name="do_bar"> + <return-value transfer-ownership="none"> + <type name="none"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="SubInterface"/> + </parameter> + </parameters> + </callback> + </field> </record> <class name="Subobject" parent="Object" glib:type-struct="SubobjectClass" abstract="1" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type"> <implements name="Interface"/> |