Allow typedefs to be nested in classes.

This commit is contained in:
Robin Dunn
2015-03-03 20:53:18 -08:00
parent 351f676b4f
commit 30e7d68f76
4 changed files with 8 additions and 4 deletions

View File

@@ -205,6 +205,7 @@ class TypedefDef(VariableDef):
self.noTypeName = False
self.docAsClass = False
self.bases = []
self.protection = 'public'
self.__dict__.update(**kw)
if element is not None:
self.extract(element)
@@ -725,8 +726,8 @@ class ClassDef(BaseDef):
e = EnumDef(node, [self])
self.items.append(e)
elif kind == 'typedef':
# callback function prototype, see wx/filedlg.h for an instance of this
continue
t = TypedefDef(node)
self.items.append(t)
elif kind == 'friend':
continue
else:

View File

@@ -390,6 +390,7 @@ class PiWrapperGenerator(generators.WrapperGeneratorBase, FixWxPrefix):
dispatch = {
extractors.MemberVarDef : self.generateMemberVar,
extractors.TypedefDef : lambda a,b,c: None,
extractors.PropertyDef : self.generateProperty,
extractors.PyPropertyDef : self.generatePyProperty,
extractors.MethodDef : self.generateMethod,

View File

@@ -273,11 +273,11 @@ from .%s import *
#-----------------------------------------------------------------------
def generateTypedef(self, typedef, stream):
def generateTypedef(self, typedef, stream, indent=''):
assert isinstance(typedef, extractors.TypedefDef)
if typedef.ignored:
return
stream.write('typedef %s %s' % (typedef.type, typedef.name))
stream.write('%stypedef %s %s' % (indent, typedef.type, typedef.name))
stream.write('%s;\n\n' % self.annotate(typedef))
@@ -520,6 +520,7 @@ from .%s import *
def dispatchClassItem(self, klass, item, stream, indent):
dispatch = {
extractors.TypedefDef : self.generateTypedef,
extractors.MemberVarDef : self.generateMemberVar,
extractors.PropertyDef : self.generateProperty,
extractors.PyPropertyDef : self.generatePyProperty,

View File

@@ -3132,6 +3132,7 @@ class SphinxGenerator(generators.DocsGeneratorBase):
extractors.EnumDef : (self.generateEnum, 0),
extractors.PyCodeDef : (self.generatePyCode, 3),
extractors.WigCode : (self.generateWigCode, 4),
extractors.TypedefDef : (lambda a: None, 5),
}
# Build a list to check if there are any properties