diff --git a/etgtools/extractors.py b/etgtools/extractors.py index 4d696c9b..c02e0f81 100644 --- a/etgtools/extractors.py +++ b/etgtools/extractors.py @@ -610,6 +610,7 @@ class ClassDef(BaseDef): self.convertToPyObject = None self.convertFromPyObject = None self.allowNone = False # Allow the convertFrom code to handle None too. + self.instanceCode = None # Code to be used to create new instances of this class self.innerclasses = [] self.isInner = False self.cppCtorCount = 0 diff --git a/etgtools/sip_generator.py b/etgtools/sip_generator.py index d511dd9f..a9087a2c 100644 --- a/etgtools/sip_generator.py +++ b/etgtools/sip_generator.py @@ -343,7 +343,7 @@ from .%s import * if isinstance(pf.deprecated, int): stream.write('%s@wx.deprecated\n' % indent) else: - stream.write('%s@wx.deprecatedMsg(%s)\n' % (indent, pf.deprecated)) + stream.write('%s@wx.deprecatedMsg("%s")\n' % (indent, pf.deprecated)) if pf.isStatic: stream.write('%s@staticmethod\n' % indent) stream.write('%sdef %s%s:\n' % (indent, pf.name, pf.argsString)) @@ -372,7 +372,7 @@ from .%s import * if isinstance(pc.deprecated, int): stream.write('%s@wx.deprecated\n' % indent) else: - stream.write('%s@wx.deprecatedMsg(%s)\n' % (indent, pc.deprecated)) + stream.write('%s@wx.deprecatedMsg("%s")\n' % (indent, pc.deprecated)) stream.write('%sclass %s' % (indent, pc.name)) if pc.bases: stream.write('(%s):\n' % ', '.join(pc.bases)) @@ -441,6 +441,12 @@ from .%s import * stream.write(nci(c, len(indent2)+4)) stream.write("%s%%End\n" % indent2) + # C++ code to create a new instance of this class + if klass.instanceCode: + stream.write("%s%%InstanceCode\n" % indent2) + stream.write(nci(klass.instanceCode, len(indent2)+4)) + stream.write("%s%%End\n" % indent2) + # is the generator currently inside the class or after it? klass.generatingInClass = True