// Loads resources from single XRC 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)
     bool Unload(const wxString& filename);
 
 
         If you are sure that the argument is name of single XRC file (rather
         than an URL or a wildcard), use LoadFile() instead.
 
-        @see LoadFile()
+        @see LoadFile(), LoadAllFiles()
     */
     bool Load(const wxString& filemask);
 
 
         @since 2.9.0
 
-        @see Load()
+        @see Load(), LoadAllFiles()
     */
     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.
     */
 
     // 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
     // diffcult to manage, and harder to reuse in later projects.
-    // The menubar
-    if (!wxXmlResource::Get()->Load(wxT("rc/menu.xrc")))
+    if ( !wxXmlResource::Get()->LoadAllFiles("rc") )
         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
     // Use the simple help provider to show the context-sensitive help
     wxHelpProvider::Set( new wxSimpleHelpProvider );
 
 #include "wx/fontenum.h"
 #include "wx/fontmap.h"
 #include "wx/artprov.h"
-
+#include "wx/dir.h"
 #include "wx/xml/xml.h"
 
 
     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_)
 {
     wxString filemask = ConvertFileNameToURL(filemask_);