]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/xml/xmlres.h
removed loading from in-memory document (illicit idea)
[wxWidgets.git] / contrib / include / wx / xml / xmlres.h
index 3d5a0e7164ee3e5a1b6726f6a69f8230605c7b3f..fd012efd0ee4e201a0035ea42a2778850d731f3f 100644 (file)
 #include "wx/datetime.h"
 #include "wx/list.h"
 #include "wx/gdicmn.h"
+#include "wx/filesys.h"
+#include "wx/bitmap.h"
+#include "wx/icon.h"
 
 class WXDLLEXPORT wxMenu;
 class WXDLLEXPORT wxMenuBar;
 class WXDLLEXPORT wxDialog;
 class WXDLLEXPORT wxPanel;
 class WXDLLEXPORT wxWindow;
+class WXDLLEXPORT wxToolBar;
 
 class WXDLLEXPORT wxXmlResourceHandler;
 
 #include "wx/xml/xml.h"
 
-enum 
-{
-    wxXML_BINARY,
-    wxXML_ARCHIVE
-};
-
-
 
 class WXDLLEXPORT wxXmlResourceDataRecord
 {
@@ -60,21 +57,16 @@ WX_DECLARE_EXPORTED_OBJARRAY(wxXmlResourceDataRecord, wxXmlResourceDataRecords);
 class WXDLLEXPORT wxXmlResource : public wxObject
 {
     public:
-        wxXmlResource();
-        wxXmlResource(const wxString& filemask, int type);
+        // Ctor. If use_locale is TRUE, translatable strings are
+        // translated via _(). You can disable it by passing use_locale=FALSE
+        // (for example if you provide resource file for each locale)
+        wxXmlResource(bool use_locale = TRUE);
+        wxXmlResource(const wxString& filemask, bool use_locale = TRUE);
         ~wxXmlResource();
 
         // Loads resources from XML files that match given filemask.
-        // This method understands VFS (see filesys.h). Type is one of
-        // wxXML_TEXT, wxXML_BINARY, wxXML_ARCHIVE and specifies type of
-        // data to be expected: 
-        //    wxXML_BINARY     - binary version of .xml file, as produced
-        //                       by wxXmlDocument::SaveBinary
-        //    wxXML_ARCHIVE    - ZIP archive that contains arbitrary number
-        //                       of files with .xmb extension
-        //                       (this kind of ZIP archive is produced by
-        //                       XML resources compiler that ships with wxWin)
-        bool Load(const wxString& filemask, int type = wxXML_ARCHIVE);
+        // This method understands VFS (see filesys.h).
+        bool Load(const wxString& filemask);
         
         // Initialize handlers for all supported controls/windows. This will
         // make the executable quite big because it forces linking against
@@ -97,6 +89,11 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         // Loads menubar from resource. Returns NULL on failure.
         wxMenuBar *LoadMenuBar(const wxString& name);
 
+#if wxUSE_TOOLBAR
+        // Loads toolbar
+        wxToolBar *LoadToolBar(wxWindow *parent, const wxString& name);
+#endif
+
         // Loads dialog. dlg points to parent window (if any). Second form
         // is used to finish creation of already existing instance (main reason
         // for this is that you may want to use derived class with new event table)
@@ -112,6 +109,10 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         wxPanel *LoadPanel(wxWindow *parent, const wxString& name);
         bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name);
 
+        // Loads bitmap or icon resource from file:
+        wxBitmap LoadBitmap(const wxString& name);
+        wxIcon LoadIcon(const wxString& name);
+
         // Returns numeric ID that is equivalent to string id used in XML
         // resource. To be used in event tables
         // Macro XMLID is provided for convenience
@@ -128,11 +129,22 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         // Creates resource from info in given node:
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL);
 
+        // Remove nodes with property "platform" that does not
+        // match current platform
+        void ProcessPlatformProperty(wxXmlNode *node);
+        
+        bool GetUseLocale() { return m_UseLocale; }
+
     private:
+        bool m_UseLocale;
         wxList m_Handlers;
         wxXmlResourceDataRecords m_Data;
-        
-    friend class wxXmlResourceHandler;
+#if wxUSE_FILESYSTEM
+        wxFileSystem m_CurFileSystem;
+        wxFileSystem& GetCurFileSystem() { return m_CurFileSystem; }
+#endif
+
+        friend class wxXmlResourceHandler;
 };
 
 
@@ -154,7 +166,6 @@ extern wxXmlResource *wxTheXmlResource;
     wxXmlResource::GetXMLID(_T(str_id))
 
 
-
 // This macro returns pointer to particular control in dialog
 // created using XML resources. You can use it to set/get values from
 // controls.
@@ -190,10 +201,6 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         // resource from it, FALSE otherwise.
         virtual bool CanHandle(wxXmlNode *node) = 0;
 
-        // Check "platform" property if it matches this platform
-        // that is, if this node 'exists' under this platform
-        static bool CheckPlatform(wxXmlNode *node);
-        
         void SetParentResource(wxXmlResource *res) { m_Resource = res; }
 
 
@@ -227,6 +234,9 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         // Add style flag (e.g. wxMB_DOCKABLE) to list of flags
         // understood by this handler
         void AddStyle(const wxString& name, int value);
+       
+        // Add styles common to all wxWindow-derived classes
+        void AddWindowStyles();
         
         // Gets style flags from text in form "flag | flag2| flag3 |..."
         // Only understads flags added with AddStyle
@@ -235,7 +245,7 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         // Gets text from param and does some convertions:
         // - replaces \n, \r, \t by respective chars (according to C syntax)
         // - replaces $ by & and $$ by $ (needed for $File => &File because of XML)
-        // - converts encodings if neccessary
+        // - calls wxGetTranslations (unless disabled in wxXmlResource)
         wxString GetText(const wxString& param);
 
         // Return XMLID
@@ -251,8 +261,19 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         // Get colour in HTML syntax (#RRGGBB)
         wxColour GetColour(const wxString& param);
         
+        // Get size/position (may be in dlg units):
         wxSize GetSize(const wxString& param = _T("size"));
         wxPoint GetPosition(const wxString& param = _T("pos"));
+
+        // Get dimension (may be in dlg units):
+        wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0);
+        
+        // Get bitmap:
+        wxBitmap GetBitmap(const wxString& param = _T("bitmap"), wxSize size = wxDefaultSize);
+        wxIcon GetIcon(const wxString& param = _T("icon"), wxSize size = wxDefaultSize);
+        
+        // Get font:
+        wxFont GetFont(const wxString& param = _T("font"));
         
         // Sets common window options:
         void SetupWindow(wxWindow *wnd);
@@ -262,6 +283,9 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
                              GetParamNode("children")*/);
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL)
             { return m_Resource->CreateResFromNode(node, parent, instance); }
+
+        // helper
+        wxFileSystem& GetCurFileSystem() { return m_Resource->GetCurFileSystem(); }
 };
 
 #define ADD_STYLE(style) AddStyle(_T(#style), style)