]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/xml/xmlres.h
some little fixes
[wxWidgets.git] / contrib / include / wx / xml / xmlres.h
index 34df9e753840798eb4b322db2863d2605d2b909e..673680886f94e878da4c87c4e367c4aca11ed3bb 100644 (file)
@@ -57,8 +57,11 @@ WX_DECLARE_EXPORTED_OBJARRAY(wxXmlResourceDataRecord, wxXmlResourceDataRecords);
 class WXDLLEXPORT wxXmlResource : public wxObject
 {
     public:
 class WXDLLEXPORT wxXmlResource : public wxObject
 {
     public:
-        wxXmlResource();
-        wxXmlResource(const wxString& filemask);
+        // 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.
         ~wxXmlResource();
 
         // Loads resources from XML files that match given filemask.
@@ -106,6 +109,12 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         wxPanel *LoadPanel(wxWindow *parent, const wxString& name);
         bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name);
 
         wxPanel *LoadPanel(wxWindow *parent, const wxString& name);
         bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name);
 
+        bool LoadFrame(wxFrame* frame, 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
         // 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
@@ -117,7 +126,7 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         void UpdateResources();
         
         // Finds resource (calls UpdateResources) and returns node containing it
         void UpdateResources();
         
         // Finds resource (calls UpdateResources) and returns node containing it
-        wxXmlNode *FindResource(const wxString& name, const wxString& type);
+        wxXmlNode *FindResource(const wxString& name, const wxString& classname);
         
         // Creates resource from info in given node:
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL);
         
         // Creates resource from info in given node:
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL);
@@ -125,8 +134,11 @@ class WXDLLEXPORT wxXmlResource : public wxObject
         // Remove nodes with property "platform" that does not
         // match current platform
         void ProcessPlatformProperty(wxXmlNode *node);
         // Remove nodes with property "platform" that does not
         // match current platform
         void ProcessPlatformProperty(wxXmlNode *node);
+        
+        bool GetUseLocale() { return m_UseLocale; }
 
     private:
 
     private:
+        bool m_UseLocale;
         wxList m_Handlers;
         wxXmlResourceDataRecords m_Data;
 #if wxUSE_FILESYSTEM
         wxList m_Handlers;
         wxXmlResourceDataRecords m_Data;
 #if wxUSE_FILESYSTEM
@@ -153,8 +165,7 @@ extern wxXmlResource *wxTheXmlResource;
 //    END_EVENT_TABLE()    
 
 #define XMLID(str_id) \
 //    END_EVENT_TABLE()    
 
 #define XMLID(str_id) \
-    wxXmlResource::GetXMLID(_T(str_id))
-
+    wxXmlResource::GetXMLID(wxT(str_id))
 
 
 // This macro returns pointer to particular control in dialog
 
 
 // This macro returns pointer to particular control in dialog
@@ -163,7 +174,7 @@ extern wxXmlResource *wxTheXmlResource;
 // Example:
 //    wxDialog dlg;
 //    wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog");
 // Example:
 //    wxDialog dlg;
 //    wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog");
-//    XMLCTRL(dlg, "my_textctrl", wxTextCtrl)->SetValue(_T("default value"));
+//    XMLCTRL(dlg, "my_textctrl", wxTextCtrl)->SetValue(wxT("default value"));
 
 #define XMLCTRL(window, id, type) \
     ((type*)((window).FindWindow(XMLID(id))))
 
 #define XMLCTRL(window, id, type) \
     ((type*)((window).FindWindow(XMLID(id))))
@@ -203,11 +214,17 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
 
         // Variables (filled by CreateResource)
         wxXmlNode *m_Node;
 
         // Variables (filled by CreateResource)
         wxXmlNode *m_Node;
+        wxString m_Class;
         wxObject *m_Parent, *m_Instance;
         wxWindow *m_ParentAsWindow, *m_InstanceAsWindow;
         
         // --- Handy methods:
 
         wxObject *m_Parent, *m_Instance;
         wxWindow *m_ParentAsWindow, *m_InstanceAsWindow;
         
         // --- Handy methods:
 
+        // Returns true if the node has property class equal to classname,
+        // e.g. <object class="wxDialog">
+        bool IsOfClass(wxXmlNode *node, const wxString& classname)
+            { return node->GetPropVal(wxT("class"), wxEmptyString) == classname; }
+
         // Gets node content from wxXML_ENTITY_NODE
         // (the problem is, <tag>content<tag> is represented as
         // wxXML_ENTITY_NODE name="tag", content=""
         // Gets node content from wxXML_ENTITY_NODE
         // (the problem is, <tag>content<tag> is represented as
         // wxXML_ENTITY_NODE name="tag", content=""
@@ -225,15 +242,18 @@ 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 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
         
         // Gets style flags from text in form "flag | flag2| flag3 |..."
         // Only understads flags added with AddStyle
-        int GetStyle(const wxString& param = _T("style"), int defaults = 0);
+        int GetStyle(const wxString& param = wxT("style"), int defaults = 0);
         
         // 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)
         
         // 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
         wxString GetText(const wxString& param);
 
         // Return XMLID
@@ -249,20 +269,25 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         // Get colour in HTML syntax (#RRGGBB)
         wxColour GetColour(const wxString& param);
         
         // Get colour in HTML syntax (#RRGGBB)
         wxColour GetColour(const wxString& param);
         
-        // Get size/position:
-        wxSize GetSize(const wxString& param = _T("size"));
-        wxPoint GetPosition(const wxString& param = _T("pos"));
+        // Get size/position (may be in dlg units):
+        wxSize GetSize(const wxString& param = wxT("size"));
+        wxPoint GetPosition(const wxString& param = wxT("pos"));
+
+        // Get dimension (may be in dlg units):
+        wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0);
         
         // Get bitmap:
         
         // Get bitmap:
-        wxBitmap GetBitmap(const wxString& param = _T("bitmap"), wxSize size = wxDefaultSize);
-        wxIcon GetIcon(const wxString& param = _T("icon"), wxSize size = wxDefaultSize);
+        wxBitmap GetBitmap(const wxString& param = wxT("bitmap"), wxSize size = wxDefaultSize);
+        wxIcon GetIcon(const wxString& param = wxT("icon"), wxSize size = wxDefaultSize);
+        
+        // Get font:
+        wxFont GetFont(const wxString& param = wxT("font"));
         
         // Sets common window options:
         void SetupWindow(wxWindow *wnd);
     
         
         // Sets common window options:
         void SetupWindow(wxWindow *wnd);
     
-        void CreateChildren(wxObject *parent, bool only_this_handler = FALSE,
-                          wxXmlNode *children_node = NULL /*stands for
-                             GetParamNode("children")*/);
+        void CreateChildren(wxObject *parent, bool this_hnd_only = FALSE);
+        void CreateChildrenPrivately(wxObject *parent, wxXmlNode *rootnode = NULL);
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL)
             { return m_Resource->CreateResFromNode(node, parent, instance); }
 
         wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, wxObject *instance = NULL)
             { return m_Resource->CreateResFromNode(node, parent, instance); }
 
@@ -270,7 +295,7 @@ class WXDLLEXPORT wxXmlResourceHandler : public wxObject
         wxFileSystem& GetCurFileSystem() { return m_Resource->GetCurFileSystem(); }
 };
 
         wxFileSystem& GetCurFileSystem() { return m_Resource->GetCurFileSystem(); }
 };
 
-#define ADD_STYLE(style) AddStyle(_T(#style), style)
+#define ADD_STYLE(style) AddStyle(wxT(#style), style)