]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xmlres.cpp
determine wxFSFile's MIME type when wxFSFile::GetMimeType() is called instead of...
[wxWidgets.git] / src / xrc / xmlres.cpp
index c2aa6a5586fb6c66dd94f44465d58380bbb6c964..af053770ac0b6b883d00ea117cbb4858f23eee45 100644 (file)
@@ -29,6 +29,7 @@
     #include "wx/bitmap.h"
     #include "wx/image.h"
     #include "wx/module.h"
+    #include "wx/wxcrtvararg.h"
 #endif
 
 #ifndef __WXWINCE__
@@ -69,35 +70,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 +1107,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'."),
@@ -1148,7 +1139,7 @@ wxAnimation wxXmlResourceHandler::GetAnimation(const wxString& param)
     wxString name = GetParamValue(param);
     if (name.empty()) return wxNullAnimation;
 #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 animation from '%s'."),
@@ -1552,17 +1543,17 @@ void wxXmlResourceHandler::CreateChildrenPrivately(wxObject *parent, wxXmlNode *
 struct XRCID_record
 {
     int id;
-    wxChar *key;
+    char *key;
     XRCID_record *next;
 };
 
 static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL};
 
-static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE)
+static int XRCID_Lookup(const char *str_id, int value_if_not_found = wxID_NONE)
 {
     int index = 0;
 
-    for (const wxChar *c = str_id; *c != wxT('\0'); c++) index += (int)*c;
+    for (const char *c = str_id; *c != '\0'; c++) index += (int)*c;
     index %= XRCID_TABLE_SIZE;
 
     XRCID_record *oldrec = NULL;
@@ -1581,7 +1572,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE
     (*rec_var)->key = wxStrdup(str_id);
     (*rec_var)->next = NULL;
 
-    wxChar *end;
+    char *end;
     if (value_if_not_found != wxID_NONE)
         (*rec_var)->id = value_if_not_found;
     else
@@ -1604,7 +1595,7 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = wxID_NONE
 static void AddStdXRCID_Records();
 
 /*static*/
-int wxXmlResource::GetXRCID(const wxChar *str_id, int value_if_not_found)
+int wxXmlResource::DoGetXRCID(const char *str_id, int value_if_not_found)
 {
     static bool s_stdIDsAdded = false;
 
@@ -1639,7 +1630,7 @@ static void CleanXRCID_Records()
 
 static void AddStdXRCID_Records()
 {
-#define stdID(id) XRCID_Lookup(wxT(#id), id)
+#define stdID(id) XRCID_Lookup(#id, id)
     stdID(-1);
 
     stdID(wxID_ANY);