]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xmlres.cpp
removed superfluos semicolon
[wxWidgets.git] / src / xrc / xmlres.cpp
index 17ee4098124be76f78ae3e889f0e7c47978ef411..b10e7dfcb89d9f4f3e5699f27e2b526d30fda87b 100644 (file)
@@ -69,35 +69,25 @@ wxXmlResource::wxXmlResource(int flags, const wxString& domain)
 {
     m_flags = flags;
     m_version = -1;
-    m_domain = NULL;
-    if (! domain.empty() )
-        SetDomain(domain);
+    SetDomain(domain);
 }
 
 wxXmlResource::wxXmlResource(const wxString& filemask, int flags, const wxString& domain)
 {
     m_flags = flags;
     m_version = -1;
-    m_domain = NULL;
-    if (! domain.empty() )
-        SetDomain(domain);
+    SetDomain(domain);
     Load(filemask);
 }
 
 wxXmlResource::~wxXmlResource()
 {
-    if (m_domain)
-        free(m_domain);
     ClearHandlers();
 }
 
-void wxXmlResource::SetDomain(const wxChar* domain)
+void wxXmlResource::SetDomain(const wxString& domain)
 {
-    if (m_domain)
-        free(m_domain);
-    m_domain = NULL;
-    if (domain && wxStrlen(domain))
-        m_domain = wxStrdup(domain);
+    m_domain = domain;
 }
 
 
@@ -1116,7 +1106,7 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
     wxString name = GetParamValue(param);
     if (name.empty()) return wxNullBitmap;
 #if wxUSE_FILESYSTEM
-    wxFSFile *fsfile = GetCurFileSystem().OpenFile(name);
+    wxFSFile *fsfile = GetCurFileSystem().OpenFile(name, wxFS_READ | wxFS_SEEKABLE);
     if (fsfile == NULL)
     {
         wxLogError(_("XRC resource: Cannot create bitmap from '%s'."),
@@ -1139,6 +1129,39 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
     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,