#pragma hdrstop
#endif
-#if wxUSE_XML && wxUSE_XRC
+#if wxUSE_XRC
#include "wx/dialog.h"
#include "wx/panel.h"
wxXmlResourceHandler::wxXmlResourceHandler()
: m_node(NULL), m_parent(NULL), m_instance(NULL),
- m_parentAsWindow(NULL), m_instanceAsWindow(NULL)
+ m_parentAsWindow(NULL)
{}
wxXmlNode *myNode = m_node;
wxString myClass = m_class;
wxObject *myParent = m_parent, *myInstance = m_instance;
- wxWindow *myParentAW = m_parentAsWindow, *myInstanceAW = m_instanceAsWindow;
+ wxWindow *myParentAW = m_parentAsWindow;
m_instance = instance;
if (!m_instance && node->HasProp(wxT("subclass")) &&
m_class = node->GetPropVal(wxT("class"), wxEmptyString);
m_parent = parent;
m_parentAsWindow = wxDynamicCast(m_parent, wxWindow);
- m_instanceAsWindow = wxDynamicCast(m_instance, wxWindow);
wxObject *returned = DoCreateResource();
m_node = myNode;
m_class = myClass;
m_parent = myParent; m_parentAsWindow = myParentAW;
- m_instance = myInstance; m_instanceAsWindow = myInstanceAW;
+ m_instance = myInstance;
return returned;
}
else
str2 << wxT('&') << *dt;
}
- // Remap \n to CR, \r to LF, \t to TAB:
+ // Remap \n to CR, \r to LF, \t to TAB, \\ to \:
else if (*dt == wxT('\\'))
switch (*(++dt))
{
- case wxT('n') : str2 << wxT('\n'); break;
- case wxT('t') : str2 << wxT('\t'); break;
- case wxT('r') : str2 << wxT('\r'); break;
- default : str2 << wxT('\\') << *dt; break;
+ case wxT('n'):
+ str2 << wxT('\n');
+ break;
+
+ case wxT('t'):
+ str2 << wxT('\t');
+ break;
+
+ case wxT('r'):
+ str2 << wxT('\r');
+ break;
+
+ case wxT('\\') :
+ // "\\" wasn't translated to "\" prior to 2.5.3.0:
+ if (m_resource->CompareVersion(2,5,3,0) >= 0)
+ {
+ str2 << wxT('\\');
+ break;
+ }
+ // else fall-through to default: branch below
+
+ default:
+ str2 << wxT('\\') << *dt;
+ break;
}
else str2 << *dt;
}
if (is_dlg)
{
- if (m_instanceAsWindow)
- return wxDLG_UNIT(m_instanceAsWindow, wxSize(sx, sy));
- else if (m_parentAsWindow)
+ if (m_parentAsWindow)
return wxDLG_UNIT(m_parentAsWindow, wxSize(sx, sy));
else
{
if (is_dlg)
{
- if (m_instanceAsWindow)
- return wxDLG_UNIT(m_instanceAsWindow, wxSize(sx, 0)).x;
- else if (m_parentAsWindow)
+ if (m_parentAsWindow)
return wxDLG_UNIT(m_parentAsWindow, wxSize(sx, 0)).x;
else
{