/////////////////////////////////////////////////////////////////////////////
// Name: xmlres.cpp
-// Purpose: XML resources
+// Purpose: XRC resources
// Author: Vaclav Slavik
// Created: 2000/03/05
// RCS-ID: $Id$
while (!!fnd)
{
#if wxUSE_FILESYSTEM
- if (filemask.Lower().Matches("*.zip") ||
- filemask.Lower().Matches("*.rsc"))
+ if (filemask.Lower().Matches(wxT("*.zip")) ||
+ filemask.Lower().Matches(wxT("*.rsc")))
{
rt = rt && Load(fnd + wxT("#zip:*.xmb"));
rt = rt && Load(fnd + wxT("#zip:*.xrc"));
}
-void wxXmlResource::ProcessPlatformProperty(wxXmlNode *node)
+static void ProcessPlatformProperty(wxXmlNode *node)
{
wxString s;
bool isok;
}
if (isok)
+ {
ProcessPlatformProperty(c);
+ c = c->GetNext();
+ }
else
{
node->RemoveChild(c);
+ wxXmlNode *c2 = c->GetNext();
delete c;
+ c = c2;
}
-
- c = c->GetNext();
}
}
}
else if (m_data[i].Doc->GetRoot()->GetName() != wxT("resource"))
{
- wxLogError(_("Invalid XML resource '%s': doesn't have root node 'resource'."), m_data[i].File.c_str());
+ wxLogError(_("Invalid XRC resource '%s': doesn't have root node 'resource'."), m_data[i].File.c_str());
wxDELETE(m_data[i].Doc);
}
else
}
}
- wxLogError(_("XML resource '%s' (class '%s') not found!"),
+ wxLogError(_("XRC resource '%s' (class '%s') not found!"),
name.c_str(), classname.c_str());
return NULL;
}
wxString wxXmlResourceHandler::GetText(const wxString& param)
{
- wxString str1 = GetParamValue(param);
+ wxString str1;
wxString str2;
const wxChar *dt;
wxChar amp_char;
- // VS: First version of XML resources used $ instead of & (which is illegal in XML),
+ if (m_resource->GetUseLocale())
+ str1 = wxGetTranslation(GetParamValue(param));
+ else
+ str1 = GetParamValue(param);
+
+ // 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)
}
else str2 << *dt;
}
-
- if (m_resource->GetUseLocale())
- return wxGetTranslation(str2);
- else
- return str2;
+
+ return str2;
}
stdID(wxID_DEFAULT); stdID(wxID_MORE); stdID(wxID_SETUP);
stdID(wxID_RESET); stdID(wxID_HELP_CONTEXT);
#undef stdID
- else return XMLID(sid.c_str());
+ else return wxXmlResource::GetXMLID(sid);
}
if (v.Length() != 7 || v[0u] != wxT('#') ||
wxSscanf(v.c_str(), wxT("#%lX"), &tmp) != 1)
{
- wxLogError(_("XML resource: Incorrect colour specification '%s' for property '%s'."),
+ wxLogError(_("XRC resource: Incorrect colour specification '%s' for property '%s'."),
v.c_str(), param.c_str());
return wxNullColour;
}
wxFSFile *fsfile = GetCurFileSystem().OpenFile(name);
if (fsfile == NULL)
{
- wxLogError(_("XML resource: Cannot create bitmap from '%s'."), param.mb_str());
+ wxLogError(_("XRC resource: Cannot create bitmap from '%s'."), param.c_str());
return wxNullBitmap;
}
wxImage img(*(fsfile->GetStream()));
#endif
if (!img.Ok())
{
- wxLogError(_("XML resource: Cannot create bitmap from '%s'."), param.mb_str());
+ wxLogError(_("XRC resource: Cannot create bitmap from '%s'."), param.c_str());
return wxNullBitmap;
}
if (!(size == wxDefaultSize)) img.Rescale(size.x, size.y);
if (!s.BeforeFirst(wxT(',')).ToLong(&sx) ||
!s.AfterLast(wxT(',')).ToLong(&sy))
{
- wxLogError(_("Cannot parse coordinates from '%s'."), s.mb_str());
+ wxLogError(_("Cannot parse coordinates from '%s'."), s.c_str());
return wxDefaultSize;
}
if (!s.ToLong(&sx))
{
- wxLogError(_("Cannot parse dimension from '%s'."), s.mb_str());
+ wxLogError(_("Cannot parse dimension from '%s'."), s.c_str());
return defaultv;
}
wxXmlNode *font_node = GetParamNode(param);
if (font_node == NULL)
{
- wxLogError(_("Cannot find font node '%s'."), param.mb_str());
+ wxLogError(_("Cannot find font node '%s'."), param.c_str());
return wxNullFont;
}
wxString encoding = GetParamValue(wxT("encoding"));
wxFontMapper mapper;
wxFontEncoding enc = wxFONTENCODING_DEFAULT;
- if (!encoding.IsEmpty()) enc = mapper.CharsetToEncoding(encoding);
- if (enc == wxFONTENCODING_SYSTEM) enc = wxFONTENCODING_SYSTEM;
+ if (!encoding.IsEmpty())
+ enc = mapper.CharsetToEncoding(encoding);
+ if (enc == wxFONTENCODING_SYSTEM)
+ enc = wxFONTENCODING_DEFAULT;
wxString faces = GetParamValue(wxT("face"));
wxString facename = wxEmptyString;
struct XMLID_record
{
int id;
- char *key;
+ wxChar *key;
XMLID_record *next;
};
static XMLID_record *XMLID_Records[XMLID_TABLE_SIZE] = {NULL};
-/*static*/ int wxXmlResource::GetXMLID(const char *str_id)
+/*static*/ int wxXmlResource::GetXMLID(const wxChar *str_id)
{
static int XMLID_LastID = wxID_HIGHEST;
int index = 0;
- for (const char *c = str_id; *c != '\0'; c++) index += (int)*c;
+ for (const wxChar *c = str_id; *c != wxT('\0'); c++) index += (int)*c;
index %= XMLID_TABLE_SIZE;
XMLID_record *oldrec = NULL;
int matchcnt = 0;
for (XMLID_record *rec = XMLID_Records[index]; rec; rec = rec->next)
{
- if (strcmp(rec->key, str_id) == 0)
+ if (wxStrcmp(rec->key, str_id) == 0)
{
return rec->id;
}
&XMLID_Records[index] : &oldrec->next;
*rec_var = new XMLID_record;
(*rec_var)->id = ++XMLID_LastID;
- (*rec_var)->key = strdup(str_id);
+ (*rec_var)->key = wxStrdup(str_id);
(*rec_var)->next = NULL;
return (*rec_var)->id;
if (rec)
{
CleanXMLID_Record(rec->next);
- free (rec->key);
+ free(rec->key);
delete rec;
}
}