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.
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
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);
// 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;
#if wxUSE_FILESYSTEM
// 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
// 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))))
// Variables (filled by CreateResource)
wxXmlNode *m_Node;
+ wxString m_Class;
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=""
// 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
- 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)
- // - converts encodings if neccessary
+ // - calls wxGetTranslations (unless disabled in wxXmlResource)
wxString GetText(const wxString& param);
// Return XMLID
// 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:
- 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);
- 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); }
wxFileSystem& GetCurFileSystem() { return m_Resource->GetCurFileSystem(); }
};
-#define ADD_STYLE(style) AddStyle(_T(#style), style)
+#define ADD_STYLE(style) AddStyle(wxT(#style), style)