X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b881fc787d2823bdd8a415080b82feee90804a17..e34fb6eae3ceedb4016f90455d2cf4f62a66c4b8:/wxPython/wx/lib/wxpTag.py diff --git a/wxPython/wx/lib/wxpTag.py b/wxPython/wx/lib/wxpTag.py index e6d72dade3..d362fb365f 100644 --- a/wxPython/wx/lib/wxpTag.py +++ b/wxPython/wx/lib/wxpTag.py @@ -25,7 +25,7 @@ You don\'t need to use anything in this module directly, just importing it will create the tag handler and add it to any wxHtmlWinParsers created from that time forth. -Tags of the following form are recognised: +Tags of the following form are recognised:: <WXP class="classname" [module="modulename"] [width="num"] [height="num"]> <PARAM name="parameterName" value="parameterValue> @@ -35,18 +35,18 @@ Tags of the following form are recognised: where modulename is the name of a module (possibly in package notation) to import and classname is the name of a class in that module to create an instance of. If the module tag-attribute is not -given or is an empty string, then wxPython.wx is used. The width and -height attributes are expected to be integers and will be passed to -the __init__ method of the class as a wxSize object named size. -However, if the width attribute ends with the percent (%) symbol then -the value will be used as a percentage of the available width and the +given or is an empty string, then wx is used. The width and height +attributes are expected to be integers and will be passed to the +__init__ method of the class as a wxSize object named size. However, +if the width attribute ends with the percent (%) symbol then the value +will be used as a percentage of the available width and the wxHtmlWindow will manage the size. The name-value pairs in all the nested PARAM tags are packaged up as strings into a python dictionary and passed to the __init__ method of the class as keyword arguments. This means that they are all accessible from the __init__ method as regular parameters, or you use -the special Python **kw syntax in your __init__ method to get the +the special Python \*\*kw syntax in your __init__ method to get the dictionary directly. Some parameter values are special and if they are present then they will @@ -71,7 +71,7 @@ be converted from strings to alternate datatypes. They are: object and if it fails then the original string value will be used instead. -An example: +An example:: <wxp module="wx" class="Button"> <param name="label" value="Click here"> @@ -161,7 +161,7 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler): self.ParseInner(tag) # create the object - parent = self.GetParser().GetWindow() + parent = self.GetParser().GetWindowInterface().GetHTMLWindow() if parent: obj = apply(self.ctx.classObj, (parent,), @@ -169,7 +169,8 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler): obj.Show(True) # add it to the HtmlWindow - self.GetParser().GetContainer().InsertCell(wx.html.HtmlWidgetCell(obj, self.ctx.floatWidth)) + self.GetParser().GetContainer().InsertCell( + wx.html.HtmlWidgetCell(obj, self.ctx.floatWidth)) self.ctx = None return True @@ -195,7 +196,7 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler): # check for something that should be evaluated - elif value[0] in '[{(' or value[:2] == 'wx': + elif value and value[0] in '[{(' or value[:2] == 'wx': saveVal = value try: value = eval(value, self.ctx.classMod.__dict__) @@ -203,7 +204,7 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler): value = saveVal # convert to wx.Colour - elif value[0] == '#': + elif value and value[0] == '#': try: red = int('0x'+value[1:3], 16) green = int('0x'+value[3:5], 16) @@ -212,7 +213,8 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler): except: pass - self.ctx.kwargs[str(name)] = value + if self.ctx: + self.ctx.kwargs[str(name)] = value return False