]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/wxpTag.py
added missing button state
[wxWidgets.git] / wxPython / wx / lib / wxpTag.py
index e6d72dade37dfe8f53e05dc06922361b5592cf66..d362fb365fde4772fa4331cef680960dc6339ce9 100644 (file)
@@ -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