Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/giscanner/glibast.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/glibast.py')
-rw-r--r--giscanner/glibast.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/giscanner/glibast.py b/giscanner/glibast.py
index f61cd5f..e2a9d5b 100644
--- a/giscanner/glibast.py
+++ b/giscanner/glibast.py
@@ -19,7 +19,7 @@
#
from .ast import (Bitfield, Class, Enum, Interface, Member, Node,
- Property, Struct, Union)
+ Property, Struct, Union, Record)
from .ast import (
type_names, default_array_types,
TYPE_STRING, TYPE_INT8, TYPE_UINT8, TYPE_INT16, TYPE_UINT16,
@@ -62,6 +62,22 @@ type_names['gushort'] = TYPE_UINT16
default_array_types['guint8*'] = TYPE_UINT8
default_array_types['gchar**'] = TYPE_STRING
+class GLibRecord(Record):
+ def __init__(self, *args, **kwargs):
+ Record.__init__(self, *args, **kwargs)
+
+ @classmethod
+ def from_record(cls, record):
+ obj = cls(record.name, record.symbol)
+ obj.fields = record.fields
+ obj.constructors = record.constructors
+ obj.disguised = record.disguised
+ obj.doc = record.doc
+ obj.methods = record.methods
+ # If true, this record defines the FooClass C structure
+ # for some Foo GObject (or similar for GInterface)
+ obj.is_gtype_struct_for = False
+ return obj
class GLibEnum(Enum):