# Copyright: (c) 1999 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------
+# 12/13/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o Updated for V2.5 compatability
+#
'''
wxPython.lib.wxpTag
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
An example:
- <wxp module="" class="wxButton">
+ <wxp module="wx" class="Button">
<param name="label" value="Click here">
- <param name="id" value="wxID_OK">
+ <param name="id" value="ID_OK">
</wxp>
Both the begining and ending WXP tags are required.
'''
#----------------------------------------------------------------------
-from wxPython.wx import *
-from wxPython.html import *
-import wxPython.wx
+import types
+
+import wx
+import wx.html
-import types
#----------------------------------------------------------------------
#----------------------------------------------------------------------
-class wxpTagHandler(wxHtmlWinTagHandler):
+class wxpTagHandler(wx.html.HtmlWinTagHandler):
def __init__(self):
- wxHtmlWinTagHandler.__init__(self)
+ wx.html.HtmlWinTagHandler.__init__(self)
self.ctx = None
def GetSupportedTags(self):
if modName:
self.ctx.classMod = _my_import(modName)
else:
- self.ctx.classMod = wxPython.wx
+ self.ctx.classMod = wx
# find and verify the class
if not tag.HasParam('CLASS'):
className = tag.GetParam('CLASS')
self.ctx.classObj = getattr(self.ctx.classMod, className)
- if type(self.ctx.classObj) != types.ClassType:
+ if type(self.ctx.classObj) not in [ types.ClassType, types.TypeType]:
raise TypeError, "WXP tag attribute CLASS must name a class"
# now look for width and height
width = int(width)
if tag.HasParam('HEIGHT'):
height = int(tag.GetParam('HEIGHT'))
- self.ctx.kwargs['size'] = wxSize(width, height)
+ self.ctx.kwargs['size'] = wx.Size(width, height)
# parse up to the closing tag, and gather any nested Param tags.
self.ParseInner(tag)
# create the object
- parent = self.GetParser().GetWindow()
+ parent = self.GetParser().GetWindowInterface().GetHTMLWindow()
if parent:
obj = apply(self.ctx.classObj,
(parent,),
obj.Show(True)
# add it to the HtmlWindow
- self.GetParser().GetContainer().InsertCell(wxHtmlWidgetCell(obj, self.ctx.floatWidth))
+ self.GetParser().GetContainer().InsertCell(
+ wx.html.HtmlWidgetCell(obj, self.ctx.floatWidth))
self.ctx = None
return True
# 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__)
except:
value = saveVal
- # convert to wxColour
- elif value[0] == '#':
+ # convert to wx.Colour
+ elif value and value[0] == '#':
try:
red = int('0x'+value[1:3], 16)
green = int('0x'+value[3:5], 16)
blue = int('0x'+value[5:], 16)
- value = wxColor(red, green, blue)
+ value = wx.Color(red, green, blue)
except:
pass
- self.ctx.kwargs[str(name)] = value
+ if self.ctx:
+ self.ctx.kwargs[str(name)] = value
return False
-wxHtmlWinParser_AddTagHandler(wxpTagHandler)
+wx.html.HtmlWinParser_AddTagHandler(wxpTagHandler)