bool wxXmlResource::Load(const wxString& filemask)
{
- wxString fnd;
- bool iswild = wxIsWild(filemask);
- bool rt = true;
-
#if wxUSE_FILESYSTEM
wxFileSystem fsys;
# define wxXmlFindFirst fsys.FindFirst(filemask, wxFILE)
# define wxXmlFindFirst wxFindFirstFile(filemask, wxFILE)
# define wxXmlFindNext wxFindNextFile()
#endif
- if (iswild)
- fnd = wxXmlFindFirst;
- else
- fnd = filemask;
+ wxString fnd = wxXmlFindFirst;
+ if ( fnd.empty() )
+ {
+ wxLogError(_("Cannot load resources from '%s'."), filemask);
+ return false;
+ }
+
while (!fnd.empty())
{
fnd = ConvertFileNameToURL(fnd);
#if wxUSE_FILESYSTEM
if ( IsArchive(fnd) )
{
- rt = rt && Load(fnd + wxT("#zip:*.xrc"));
+ if ( !Load(fnd + wxT("#zip:*.xrc")) )
+ return false;
}
else // a single resource URL
#endif // wxUSE_FILESYSTEM
Data().push_back(drec);
}
- if (iswild)
- fnd = wxXmlFindNext;
- else
- fnd = wxEmptyString;
+ fnd = wxXmlFindNext;
}
# undef wxXmlFindFirst
# undef wxXmlFindNext
- return rt && UpdateResources();
+
+ return UpdateResources();
}
bool wxXmlResource::Unload(const wxString& filename)
+bool wxXmlResourceHandler::GetBoolAttr(const wxString& attr, bool defaultv)
+{
+ wxString v;
+ return m_node->GetAttribute(attr, &v) ? v == '1' : defaultv;
+}
+
bool wxXmlResourceHandler::GetBool(const wxString& param, bool defaultv)
{
- wxString v = GetParamValue(param);
- v.MakeLower();
- if (!v) return defaultv;
+ const wxString v = GetParamValue(param);
- return (v == wxT("1"));
+ return v.empty() ? defaultv : (v == '1');
}
return wxBitmap(img);
}
-#if wxUSE_ANIMATIONCTRL
-wxAnimation wxXmlResourceHandler::GetAnimation(const wxString& param)
-{
- wxAnimation ani;
-
- /* load the animation from file: */
- wxString name = GetParamValue(param);
- if (name.empty()) return wxNullAnimation;
-#if wxUSE_FILESYSTEM
- wxFSFile *fsfile = GetCurFileSystem().OpenFile(name, wxFS_READ | wxFS_SEEKABLE);
- if (fsfile == NULL)
- {
- wxLogError(_("XRC resource: Cannot create animation from '%s'."),
- name.c_str());
- return wxNullAnimation;
- }
- ani.Load(*(fsfile->GetStream()));
- delete fsfile;
-#else
- ani.LoadFile(name);
-#endif
-
- if (!ani.IsOk())
- {
- wxLogError(_("XRC resource: Cannot create animation from '%s'."),
- name.c_str());
- return wxNullAnimation;
- }
-
- return ani;
-}
-#endif // wxUSE_ANIMATIONCTRL
-
-
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
const wxArtClient& defaultArtClient,
return XRCID_Lookup(str_id, value_if_not_found);
}
+/* static */
+wxString wxXmlResource::FindXRCIDById(int numId)
+{
+ for ( int i = 0; i < XRCID_TABLE_SIZE; i++ )
+ {
+ for ( XRCID_record *rec = XRCID_Records[i]; rec; rec = rec->next )
+ {
+ if ( rec->id == numId )
+ return wxString(rec->key);
+ }
+ }
+
+ return wxString();
+}
static void CleanXRCID_Record(XRCID_record *rec)
{