#ifndef _WX_XMLRES_H_
#define _WX_XMLRES_H_
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "xmlres.h"
-#endif
-
#include "wx/defs.h"
#if wxUSE_XRC
// wxXRC_NO_SUBCLASSING
// subclass property of object nodes will be ignored
// (useful for previews in XRC editors)
+ // wxXRC_NO_RELOADING
+ // don't check the modification time of the XRC files and
+ // reload them if they have changed on disk
wxXmlResource(int flags = wxXRC_USE_LOCALE);
// Constructor.
// This method understands VFS (see filesys.h).
bool Load(const wxString& filemask);
+ // Unload resource from the given XML file (wildcards not allowed)
+ bool Unload(const wxString& filename);
+
// Initialize handlers for all supported controls/windows. This will
// make the executable quite big because it forces linking against
// most of the wxWidgets library.
wxObject *instance = NULL,
wxXmlResourceHandler *handlerToUse = NULL);
+ // Helper of Load() and Unload(): returns the URL corresponding to the
+ // given file if it's indeed a file, otherwise returns the original string
+ // unmodified
+ static wxString ConvertFileNameToURL(const wxString& filename);
+
+ // loading resources from archives is impossible without wxFileSystem
+#if wxUSE_FILESYSTEM
+ // Another helper: detect if the filename is a ZIP or XRS file
+ static bool IsArchive(const wxString& filename);
+#endif // wxUSE_FILESYSTEM
+
private:
long m_version;
// Creates an object (menu, dialog, control, ...) from an XML node.
// Should check for validity.
// parent is a higher-level object (usually window, dialog or panel)
- // that is often neccessary to create the resource.
+ // that is often necessary to create the resource.
// If instance is non-NULL it should not create a new instance via 'new' but
// should rather use this one, and call its Create method.
wxObject *CreateResource(wxXmlNode *node, wxObject *parent,
void AddWindowStyles();
// Gets style flags from text in form "flag | flag2| flag3 |..."
- // Only understads flags added with AddStyle
+ // Only understands flags added with AddStyle
int GetStyle(const wxString& param = wxT("style"), int defaults = 0);
// Gets text from param and does some conversions:
// Gets an integer value from the parameter.
long GetLong(const wxString& param, long defaultv = 0);
-
+
// Gets a float value from the parameter.
float GetFloat(const wxString& param, float defaultv = 0);
wxColour GetColour(const wxString& param);
// Gets the size (may be in dialog units).
- wxSize GetSize(const wxString& param = wxT("size"));
+ wxSize GetSize(const wxString& param = wxT("size"),
+ wxWindow *windowToUse = NULL);
// Gets the position (may be in dialog units).
wxPoint GetPosition(const wxString& param = wxT("pos"));
// Gets a dimension (may be in dialog units).
- wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0);
+ wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0,
+ wxWindow *windowToUse = NULL);
// Gets a bitmap.
wxBitmap GetBitmap(const wxString& param = wxT("bitmap"),