Support fields in GObject structs
authorJürg Billeter <j@bitron.ch>
Mon, 13 Oct 2008 20:58:14 +0000 (20:58 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 13 Oct 2008 20:58:14 +0000 (20:58 +0000)
2008-10-13  Jürg Billeter  <j@bitron.ch>

* giscanner/glibtransformer.py:
* tests/scanner/annotation-1.0-expected.gir:
* tests/scanner/drawable-1.0-expected.gir:
* tests/scanner/foo-1.0-expected.gir:
* tests/scanner/utility-1.0-expected.gir:

Support fields in GObject structs

svn path=/trunk/; revision=703

ChangeLog
giscanner/glibtransformer.py
tests/scanner/annotation-1.0-expected.gir
tests/scanner/drawable-1.0-expected.gir
tests/scanner/foo-1.0-expected.gir
tests/scanner/utility-1.0-expected.gir

index b53fb4a..941467b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-10-13  Jürg Billeter  <j@bitron.ch>
+
+       * giscanner/glibtransformer.py:
+       * tests/scanner/annotation-1.0-expected.gir:
+       * tests/scanner/drawable-1.0-expected.gir:
+       * tests/scanner/foo-1.0-expected.gir:
+       * tests/scanner/utility-1.0-expected.gir:
+
+       Support fields in GObject structs
+
 2008-10-13  Jürg Billeter  <j@bitron.ch>
 
        * giscanner/ast.py: add signed integer and off_t to type_names
index 319e3e7..8a360b9 100644 (file)
@@ -535,6 +535,12 @@ class GLibTransformer(object):
         self._introspect_properties(node, type_id)
         self._introspect_signals(node, type_id)
         self._introspect_implemented_interfaces(node, type_id)
+
+        # add struct fields
+        struct = self._get_attribute(node.name)
+        if struct is not None:
+            node.fields = struct.fields
+
         self._add_attribute(node, replace=True)
         self._register_internal_type(type_name, node)
 
index 6a95e15..19c1d88 100644 (file)
           <type name="GObject.Object" c:type="GObject*"/>
         </return-value>
       </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
     </class>
     <record name="ObjectClass" c:type="AnnotationObjectClass">
       <field name="parent_class">
index 67893ca..4dd1904 100644 (file)
@@ -22,6 +22,9 @@
           </parameter>
         </parameters>
       </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
     </class>
     <record name="TestDrawableClass" c:type="TestDrawableClass">
       <field name="parent_class">
index 362d8d1..23035fe 100644 (file)
       <property name="string" writable="1">
         <type name="utf8" c:type="gchararray"/>
       </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
       <callback name="virtual_method" c:type="virtual_method">
         <return-value>
           <type name="boolean" c:type="gboolean"/>
           <type name="Subobject" c:type="FooSubobject*"/>
         </return-value>
       </constructor>
+      <field name="parent_instance">
+        <type name="Object" c:type="FooObject"/>
+      </field>
     </class>
     <record name="SubobjectClass" c:type="FooSubobjectClass">
       <field name="parent_class">
index d9a10e8..a3618ca 100644 (file)
@@ -11,6 +11,9 @@
            parent="GObject.Object"
            glib:type-name="UtilityObject"
            glib:get-type="utility_object_get_type">
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
     </class>
     <record name="ObjectClass" c:type="UtilityObjectClass">
       <field name="parent_class">