From cf16a676960955c4ac2fdd0d4d32ad805885c7f6 Mon Sep 17 00:00:00 2001 From: Josh Yelon Date: Sun, 9 Apr 2006 06:27:33 +0000 Subject: [PATCH] Added enum support and fixed the sorting --- direct/src/directscripts/gendocs.py | 39 ++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/direct/src/directscripts/gendocs.py b/direct/src/directscripts/gendocs.py index 13683e90a5..de34561d17 100644 --- a/direct/src/directscripts/gendocs.py +++ b/direct/src/directscripts/gendocs.py @@ -541,6 +541,21 @@ class CodeDatabase: else: return [] + def getClassConstants(self, cn): + type = self.types.get(cn) + if (isinstance(type, InterrogateType)): + result = [] + for subtype in type.nested: + enumtype = type.db.types[subtype] + if (len(enumtype.enumvalues)): + for enumvalue in enumtype.enumvalues: + name = convertToPythonFn(enumvalue.name) + result.append((name, "("+enumtype.componentname+")")) + result.append(("","")) + return result + else: + return [] + def buildInheritance(self, inheritance, cn): if (inheritance.count(cn) == 0): inheritance.append(cn) @@ -692,7 +707,7 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref findFiles(directdirlist, ".py", ignore, pyfiles) code = CodeDatabase(cxxfiles, pyfiles) classes = code.getClassList()[:] - classes.sort() + classes.sort(None, str.lower) xclasses = classes[:] print "Generating HTML pages" for type in classes: @@ -709,17 +724,23 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref body = body + "\n" for sclass in inheritance: methods = code.getClassMethods(sclass)[:] - methods.sort() + methods.sort(None, str.lower) if (len(methods) > 0): body = body + "

Methods of "+sclass+":

\n\n" - body = body + "\n" + for sclass in inheritance: + enums = code.getClassConstants(sclass)[:] + if (len(enums) > 0): + body = body + "

Constants in "+sclass+":

\n" for sclass in inheritance: methods = code.getClassMethods(sclass)[:] - methods.sort() + methods.sort(None, str.lower) for method in methods: body = body + generateFunctionDocs(code, method) body = header + body + footer @@ -728,12 +749,12 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref modtype = CLASS_RENAME_DICT[type] writeFile(docdir + "/" + modtype + ".html", body) xclasses.append(modtype) - xclasses.sort() + xclasses.sort(None, str.lower) index = "

List of Classes - Panda " + pversion + "

\n" index = index + generateLinkTable(xclasses, xclasses, 3, urlprefix, urlsuffix) fnlist = code.getGlobalFunctionList()[:] - fnlist.sort() + fnlist.sort(None, str.lower) fnnames = [] for i in range(len(fnlist)): fnnames.append(code.getFunctionName(fnlist[i])) @@ -759,18 +780,18 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref index = "

List of Methods - Panda " + pversion + "

\n" prefixes = table.keys() - prefixes.sort() + prefixes.sort(None, str.lower) for prefix in prefixes: index = index + linkTo("#"+prefix, prefix) + " " index = index + "

" for prefix in prefixes: index = index + '' + "\n" names = table[prefix].keys() - names.sort() + names.sort(None, str.lower) for name in names: line = '' + name + ":\n"