added wxXmlResource::LoadAllFiles()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2009-03-13 13:26:46 +00:00
parent 95835bc453
commit 2bb9a404fb
4 changed files with 35 additions and 46 deletions

View File

@@ -115,6 +115,9 @@ public:
// Loads resources from single XRC file. // Loads resources from single XRC file.
bool LoadFile(const wxFileName& file); bool LoadFile(const wxFileName& file);
// Loads all XRC files from a directory.
bool LoadAllFiles(const wxString& dirname);
// Unload resource from the given XML file (wildcards not allowed) // Unload resource from the given XML file (wildcards not allowed)
bool Unload(const wxString& filename); bool Unload(const wxString& filename);

View File

@@ -204,7 +204,7 @@ public:
If you are sure that the argument is name of single XRC file (rather If you are sure that the argument is name of single XRC file (rather
than an URL or a wildcard), use LoadFile() instead. than an URL or a wildcard), use LoadFile() instead.
@see LoadFile() @see LoadFile(), LoadAllFiles()
*/ */
bool Load(const wxString& filemask); bool Load(const wxString& filemask);
@@ -213,10 +213,22 @@ public:
@since 2.9.0 @since 2.9.0
@see Load() @see Load(), LoadAllFiles()
*/ */
bool LoadFile(const wxFileName& file); bool LoadFile(const wxFileName& file);
/**
Loads all .xrc files from directory @a dirname.
Tries to load as many files as possible; if there's an error while
loading one file, it still attempts to load other files.
@since 2.9.0
@see LoadFile(), Load()
*/
bool LoadAllFiles(const wxString& dirname);
/** /**
Loads a bitmap resource from a file. Loads a bitmap resource from a file.
*/ */

View File

@@ -80,51 +80,9 @@ bool MyApp::OnInit()
// Load all of the XRC files that will be used. You can put everything // Load all of the XRC files that will be used. You can put everything
// into one giant XRC file if you wanted, but then they become more // into one giant XRC file if you wanted, but then they become more
// diffcult to manage, and harder to reuse in later projects. // diffcult to manage, and harder to reuse in later projects.
// The menubar if ( !wxXmlResource::Get()->LoadAllFiles("rc") )
if (!wxXmlResource::Get()->Load(wxT("rc/menu.xrc")))
return false; return false;
// The toolbar
if (!wxXmlResource::Get()->Load(wxT("rc/toolbar.xrc")))
return false;
// Non-derived dialog example
if (!wxXmlResource::Get()->Load(wxT("rc/basicdlg.xrc")))
return false;
// Derived dialog example
if (!wxXmlResource::Get()->Load(wxT("rc/derivdlg.xrc")))
return false;
// Controls property example
if (!wxXmlResource::Get()->Load(wxT("rc/controls.xrc")))
return false;
// Frame example
if (!wxXmlResource::Get()->Load(wxT("rc/frame.xrc")))
return false;
// Uncentered example
if (!wxXmlResource::Get()->Load(wxT("rc/uncenter.xrc")))
return false;
// Custom class example
if (!wxXmlResource::Get()->Load(wxT("rc/custclas.xrc")))
return false;
// wxArtProvider example
if (!wxXmlResource::Get()->Load(wxT("rc/artprov.xrc")))
return false;
// Platform property example
if (!wxXmlResource::Get()->Load(wxT("rc/platform.xrc")))
return false;
// Variable expansion example
if (!wxXmlResource::Get()->Load(wxT("rc/variable.xrc")))
return false;
#if wxUSE_HELP #if wxUSE_HELP
// Use the simple help provider to show the context-sensitive help // Use the simple help provider to show the context-sensitive help
wxHelpProvider::Set( new wxSimpleHelpProvider ); wxHelpProvider::Set( new wxSimpleHelpProvider );

View File

@@ -44,7 +44,7 @@
#include "wx/fontenum.h" #include "wx/fontenum.h"
#include "wx/fontmap.h" #include "wx/fontmap.h"
#include "wx/artprov.h" #include "wx/artprov.h"
#include "wx/dir.h"
#include "wx/xml/xml.h" #include "wx/xml/xml.h"
@@ -183,6 +183,22 @@ bool wxXmlResource::LoadFile(const wxFileName& file)
return Load(wxFileSystem::FileNameToURL(file)); return Load(wxFileSystem::FileNameToURL(file));
} }
bool wxXmlResource::LoadAllFiles(const wxString& dirname)
{
bool ok = true;
wxArrayString files;
wxDir::GetAllFiles(dirname, &files, "*.xrc");
for ( wxArrayString::const_iterator i = files.begin(); i != files.end(); ++i )
{
if ( !LoadFile(*i) )
ok = false;
}
return ok;
}
bool wxXmlResource::Load(const wxString& filemask_) bool wxXmlResource::Load(const wxString& filemask_)
{ {
wxString filemask = ConvertFileNameToURL(filemask_); wxString filemask = ConvertFileNameToURL(filemask_);