X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7a80cf5cd3cd199ad7b3c08293676a393207f41..375a5d3a930a38d17fe101d4f395bbc2921c8b67:/include/wx/xrc/xmlres.h?ds=sidebyside diff --git a/include/wx/xrc/xmlres.h b/include/wx/xrc/xmlres.h index e8d1424bd0..2f941d9f00 100644 --- a/include/wx/xrc/xmlres.h +++ b/include/wx/xrc/xmlres.h @@ -17,6 +17,7 @@ #include "wx/string.h" #include "wx/dynarray.h" +#include "wx/arrstr.h" #include "wx/datetime.h" #include "wx/list.h" #include "wx/gdicmn.h" @@ -26,22 +27,23 @@ #include "wx/artprov.h" #include "wx/colour.h" #include "wx/animate.h" +#include "wx/vector.h" #include "wx/xml/xml.h" -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxDialog; -class WXDLLEXPORT wxPanel; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxToolBar; - -class WXDLLIMPEXP_XRC wxXmlResourceHandler; -class WXDLLIMPEXP_XRC wxXmlSubclassFactory; -class WXDLLIMPEXP_XRC wxXmlSubclassFactoriesList; +class WXDLLIMPEXP_FWD_CORE wxMenu; +class WXDLLIMPEXP_FWD_CORE wxMenuBar; +class WXDLLIMPEXP_FWD_CORE wxDialog; +class WXDLLIMPEXP_FWD_CORE wxPanel; +class WXDLLIMPEXP_FWD_CORE wxWindow; +class WXDLLIMPEXP_FWD_CORE wxFrame; +class WXDLLIMPEXP_FWD_CORE wxToolBar; + +class WXDLLIMPEXP_FWD_XRC wxXmlResourceHandler; +class WXDLLIMPEXP_FWD_XRC wxXmlSubclassFactory; +class wxXmlSubclassFactories; class wxXmlResourceModule; - +class wxXmlResourceDataRecords; // These macros indicate current version of XML resources (this information is // encoded in root node of XRC file as "version" property). @@ -67,28 +69,6 @@ class wxXmlResourceModule; WX_XMLRES_CURRENT_VERSION_RELEASE * 256 + \ WX_XMLRES_CURRENT_VERSION_REVISION) -class WXDLLIMPEXP_XRC wxXmlResourceDataRecord -{ -public: - wxXmlResourceDataRecord() : Doc(NULL) { -#if wxUSE_DATETIME - Time = wxDateTime::Now(); -#endif - } - ~wxXmlResourceDataRecord() {delete Doc;} - - wxString File; - wxXmlDocument *Doc; -#if wxUSE_DATETIME - wxDateTime Time; -#endif -}; - - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxXmlResourceDataRecord, - wxXmlResourceDataRecords, - WXDLLIMPEXP_XRC); - enum wxXmlResourceFlags { wxXRC_USE_LOCALE = 1, @@ -225,7 +205,11 @@ public: // with a number. If value_if_not_found == wxID_NONE, the number is obtained via // wxWindow::NewControlId(). Otherwise value_if_not_found is used. // Macro XRCID(name) is provided for convenient use in event tables. - static int GetXRCID(const wxChar *str_id, int value_if_not_found = wxID_NONE); + static int GetXRCID(const wxString& str_id, int value_if_not_found = wxID_NONE) + { return DoGetXRCID(str_id.mb_str(), value_if_not_found); } + + // version for internal use only + static int DoGetXRCID(const char *str_id, int value_if_not_found = wxID_NONE); // Returns version information (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a). long GetVersion() const { return m_version; } @@ -282,12 +266,16 @@ protected: static bool IsArchive(const wxString& filename); #endif // wxUSE_FILESYSTEM +private: + wxXmlResourceDataRecords& Data() { return *m_data; } + const wxXmlResourceDataRecords& Data() const { return *m_data; } + private: long m_version; int m_flags; - wxList m_handlers; - wxXmlResourceDataRecords m_data; + wxVector m_handlers; + wxXmlResourceDataRecords *m_data; #if wxUSE_FILESYSTEM wxFileSystem m_curFileSystem; wxFileSystem& GetCurFileSystem() { return m_curFileSystem; } @@ -299,7 +287,7 @@ private: friend class wxXmlResourceHandler; friend class wxXmlResourceModule; - static wxXmlSubclassFactoriesList *ms_subclassFactories; + static wxXmlSubclassFactories *ms_subclassFactories; // singleton instance: static wxXmlResource *ms_instance; @@ -318,7 +306,7 @@ private: // END_EVENT_TABLE() #define XRCID(str_id) \ - wxXmlResource::GetXRCID(wxT(str_id)) + wxXmlResource::DoGetXRCID(str_id) // This macro returns pointer to particular control in dialog @@ -332,6 +320,18 @@ private: #define XRCCTRL(window, id, type) \ (wxStaticCast((window).FindWindow(XRCID(id)), type)) +// This macro returns pointer to sizer item +// Example: +// +// +// 400, 300 +// +// +// wxSizerItem* item = XRCSIZERITEM(*this, "area") + +#define XRCSIZERITEM(window, id) \ + ((window).GetSizer() ? (window).GetSizer()->GetItemById(XRCID(id)) : NULL) + // wxXmlResourceHandler is an abstract base class for resource handlers // capable of creating a control from an XML node. @@ -462,6 +462,10 @@ protected: // Gets a font. wxFont GetFont(const wxString& param = wxT("font")); + // Gets the value of a boolean attribute (only "0" and "1" are valid values) + bool GetBoolAttr(const wxString& attr, bool defaultv); + + // Sets common window options. void SetupWindow(wxWindow *wnd);