X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce914f7319a5946f49da4c06e95be94dcd49611e..7728856b75c201016a30145673bc8a85be96fdfe:/wxPython/contrib/xrc/_xrcextras.py diff --git a/wxPython/contrib/xrc/_xrcextras.py b/wxPython/contrib/xrc/_xrcextras.py index 2f06e83a95..9562aea2eb 100644 --- a/wxPython/contrib/xrc/_xrcextras.py +++ b/wxPython/contrib/xrc/_xrcextras.py @@ -2,3 +2,37 @@ # The global was removed in favor of static accessor functions. This is for # backwards compatibility: wxTheXmlResource = wxXmlResource_Get() + +wx.wxXmlNodePtr = wxXmlNodePtr + + + + +#---------------------------------------------------------------------- +# Create a factory for handling the subclass property of the object tag. + + +def _my_import(name): + mod = __import__(name) + components = name.split('.') + for comp in components[1:]: + mod = getattr(mod, comp) + return mod + + +class wxXmlSubclassFactory_Python(wxXmlSubclassFactory): + def __init__(self): + wxXmlSubclassFactory.__init__(self) + + def Create(self, className): + assert className.find('.') != -1, "Module name must be specified!" + mname = className[:className.rfind('.')] + cname = className[className.rfind('.')+1:] + module = _my_import(mname) + klass = getattr(module, cname) + inst = klass() + return inst + + +wxXmlResource_AddSubclassFactory(wxXmlSubclassFactory_Python()) +