X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e78e8fdbfdcf104a96f04d5e7ebf0ed2c3d95c93..ce1245e1fa3d59428e5f3c9bb78d77bcfe9e586c:/wxPython/docs/bin/docparser/wxclasses.py
diff --git a/wxPython/docs/bin/docparser/wxclasses.py b/wxPython/docs/bin/docparser/wxclasses.py
new file mode 100644
index 0000000000..db10e80076
--- /dev/null
+++ b/wxPython/docs/bin/docparser/wxclasses.py
@@ -0,0 +1,173 @@
+import wx
+import restconvert
+html_heading = "
%s
"
+
+def stylesAsHtml(styles, extraStyles=False):
+ heading = "Window styles"
+ if extraStyles:
+ heading = "Extra window styles"
+
+ html = html_heading % heading
+ html += """"""
+ for style in styles:
+ html += "%s | %s | " % (style[0], style[1])
+
+ html += "
"
+
+ return html
+
+class wxClass:
+ def __init__(self, name, description="", derivedFrom=[], styles=[], extrastyles=[]):
+ self.name = name
+ self.description = description
+ self.derivedFrom = derivedFrom
+ self.styles = styles
+ self.extrastyles = extrastyles
+ self.methods = {}
+ self.propConflicts = []
+ self.props = []
+
+ def asHtml(self):
+ html = "%s
" % self.name
+ html += self.description
+ if len(self.derivedFrom) > 0:
+ html += html_heading % "Derived from"
+ for der in self.derivedFrom:
+ derurl = der.replace("wx.", "wx").lower()
+ html += "%s" % (derurl, der)
+
+ if len(self.styles) > 0:
+ html += stylesAsHtml(self.styles)
+
+ if len(self.extrastyles) > 0:
+ html += stylesAsHtml(self.extrastyles, extraStyles=True)
+
+ return html
+
+ def asReST(self):
+ restText = "DocStr(%s,\n" % (self.name)
+
+ restText += ");"
+ return restText
+
+ def createProps(self):
+ propsText = ""
+ propList = self.props
+ for conflict in self.propConflicts:
+ if conflict in propList:
+ propList.remove(conflict)
+
+ basename = self.name.replace("wx", "")
+ for prop in propList:
+ if prop != "":
+ propname = prop
+ if propname[0] == "3":
+ propname = "Three" + propname[1:]
+
+ getter = "wx.%s.Get%s" % (basename, prop)
+ setter = "wx.%s.Set%s" % (basename, prop)
+ propsText += "wx.%s.%s = property(%s" % (basename, propname, getter)
+ hasSetter = eval("(\"%s\" in dir(wx.%s))" % ("Set" + prop, basename))
+ if hasSetter:
+ propsText += ", %s" % setter
+ propsText += ")\n"
+
+ if propsText != "":
+ propsText += "\n\n"
+
+ return propsText
+
+class wxMethod:
+ def __init__(self, name, parent, prototypes=[], params={}, description="", remarks=""):
+ self.name = name
+ self.parent = parent
+ self.prototypes = prototypes
+ self.params = params
+ self.description = description
+ self.remarks = remarks
+ self.pythonNote = ""
+ self.pythonOverrides = []
+
+ def asReST(self):
+ restText = ""
+
+ # The below code converts prototypes into ReST, but currently isn't
+ # needed. Left here in case we change approach later.
+
+ #for proto in self.prototypes:
+ # restText += proto[1] + "("
+ # counter = 1
+ # for arg in proto[2]:
+ # restText += "%s %s" % (arg[0].replace("wx.", ""), arg[1])
+ # if counter < len(proto[2]):
+ # restText += ", "
+ # counter += 1
+ # if proto[0] != "":
+ # restText += "-> " + proto[0]
+ # restText += "\n"
+ #restText += "\n"
+
+ if len(self.params) > 0:
+
+ for param in self.params:
+ restText += "\n:param %s: %s" % (param[0], restconvert.htmlToReST(param[1]))
+ restText += "\n\n"
+
+ restText += restconvert.htmlToReST(self.description.strip())
+ return restText
+
+ def asHtml(self):
+ anchorname = self.getAnchorName()
+ retval = "" % (anchorname)
+ retval += "%s
" % self.name
+ if len(self.pythonOverrides) > 0:
+ for myfunc in self.pythonOverrides:
+ retval += "%s%s
" % (myfunc[0], myfunc[1])
+ else:
+ for proto in self.prototypes:
+ retval += ""
+ if proto[0] != "":
+ retval += proto[0] + " "
+ retval += proto[1] + "("
+ counter = 1
+ for arg in proto[2]:
+ retval += "%s %s" % (arg[0], arg[1])
+ if counter < len(proto[2]):
+ retval += ", "
+ counter += 1
+ retval += ")
"
+
+ if len(self.params) > 0:
+ retval += ""
+ for param in self.params:
+ retval += "%s | %s |
" % (param[0], param[1])
+ retval += "
"
+
+ retval += "%s
" % self.description
+
+ if self.remarks != "":
+ retval += "Remarks%s
" % self.remarks
+
+ return retval
+
+ def getAnchorName(self):
+ anchorname = self.parent.name.lower() + self.name.lower()
+ if self.parent.name == self.name:
+ anchorname = self.name.lower()
+
+ return anchorname
+
+ def asString(self):
+ retval = "method: " + self.name
+ retval += "\n\nprototypes: "
+ for proto in self.prototypes:
+ retval += "\t%s" % `proto`
+ retval += "\n\nparams: "
+ for param in self.params:
+ retval += "%s: %s" % (param, self.params[param])
+
+ retval += "\n\ndescription: \n" + self.description
+
+ retval += "remarks: \n" + self.remarks
+
+ return retval