]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxXmlResource::LoadAllFiles()
authorVáclav Slavík <vslavik@fastmail.fm>
Fri, 13 Mar 2009 13:26:46 +0000 (13:26 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Fri, 13 Mar 2009 13:26:46 +0000 (13:26 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/xrc/xmlres.h
interface/wx/xrc/xmlres.h
samples/xrc/xrcdemo.cpp
src/xrc/xmlres.cpp

index 0c80dfc9be1e5a19d0f0312b9204a333b92dd99b..c324aec9308e3d7e942c289a45d489e15b0b2fde 100644 (file)
@@ -115,6 +115,9 @@ public:
     // 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);
 
index 460b7fa71422073aa14430832a35496fccd9f339..590b51ac300850c4daa47a0b76f3dfe1a59ee4a6 100644 (file)
@@ -204,7 +204,7 @@ public:
         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);
 
@@ -213,10 +213,22 @@ public:
 
         @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.
     */
index 6c93d4b75b2a4c5b2941e6cda6094e4bbdf956c1..e82ea49d99e7899a4d3075ced80cf1555be941ca 100644 (file)
@@ -80,51 +80,9 @@ bool MyApp::OnInit()
     // 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 );
index 99ae14c44b7617422b9eede59675da05c5b20c25..6e7e3b9611e65e731ff6751625cc01ffe370113a 100644 (file)
@@ -44,7 +44,7 @@
 #include "wx/fontenum.h"
 #include "wx/fontmap.h"
 #include "wx/artprov.h"
-
+#include "wx/dir.h"
 #include "wx/xml/xml.h"
 
 
@@ -183,6 +183,22 @@ bool wxXmlResource::LoadFile(const wxFileName& 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_)
 {
     wxString filemask = ConvertFileNameToURL(filemask_);