wxXmlNode *parNode = GetParamNode(param);
wxString str1(GetNodeContent(parNode));
wxString str2;
- const wxChar *dt;
- wxChar amp_char;
+
+ // "\\" wasn't translated to "\" prior to 2.5.3.0:
+ const bool escapeBackslash = (m_resource->CompareVersion(2,5,3,0) >= 0);
// VS: First version of XRC resources used $ instead of & (which is
// illegal in XML), but later I realized that '_' fits this purpose
// much better (because &File means "File with F underlined").
- if (m_resource->CompareVersion(2,3,0,1) < 0)
- amp_char = wxT('$');
- else
- amp_char = wxT('_');
+ const wxChar amp_char = (m_resource->CompareVersion(2,3,0,1) < 0)
+ ? '$' : '_';
- for (dt = str1.c_str(); *dt; dt++)
+ for ( wxString::const_iterator dt = str1.begin(); dt != str1.end(); ++dt )
{
// Remap amp_char to &, map double amp_char to amp_char (for things
// like "&File..." -- this is illegal in XML, so we use "_File..."):
- if (*dt == amp_char)
+ if ( *dt == amp_char )
{
if ( *(++dt) == amp_char )
str2 << amp_char;
str2 << wxT('&') << *dt;
}
// Remap \n to CR, \r to LF, \t to TAB, \\ to \:
- else if (*dt == wxT('\\'))
- switch (*(++dt))
+ else if ( *dt == wxT('\\') )
+ {
+ switch ( (*(++dt)).GetValue() )
{
case wxT('n'):
str2 << wxT('\n');
case wxT('\\') :
// "\\" wasn't translated to "\" prior to 2.5.3.0:
- if (m_resource->CompareVersion(2,5,3,0) >= 0)
+ if ( escapeBackslash )
{
str2 << wxT('\\');
break;
str2 << wxT('\\') << *dt;
break;
}
- else str2 << *dt;
+ }
+ else
+ {
+ str2 << *dt;
+ }
}
if (m_resource->GetFlags() & wxXRC_USE_LOCALE)
{
wxString str = GetParamValue(param);
+#if wxUSE_INTL
// strings in XRC always use C locale but wxString::ToDouble() uses the
// current one, so transform the string to it supposing that the only
// difference between them is the decimal separator
// TODO: use wxString::ToCDouble() when we have it
str.Replace(wxT("."), wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT,
wxLOCALE_CAT_NUMBER));
+#endif // wxUSE_INTL
double value;
if (!str.ToDouble(&value))
if (hasFacename)
{
wxString faces = GetParamValue(wxT("face"));
- wxArrayString facenames(wxFontEnumerator::GetFacenames());
wxStringTokenizer tk(faces, wxT(","));
+#if wxUSE_FONTENUM
+ wxArrayString facenames(wxFontEnumerator::GetFacenames());
while (tk.HasMoreTokens())
{
int index = facenames.Index(tk.GetNextToken(), false);
break;
}
}
+#else // !wxUSE_FONTENUM
+ // just use the first face name if we can't check its availability:
+ if (tk.HasMoreTokens())
+ facename = tk.GetNextToken();
+#endif // wxUSE_FONTENUM/!wxUSE_FONTENUM
}
// encoding