X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77cc73a78e51832c71351a2758df508672b8c294..ee7553e935502f77f7aed93221a449b982dee40d:/include/wx/persist.h diff --git a/include/wx/persist.h b/include/wx/persist.h index 24cd503142..68097fbcbe 100644 --- a/include/wx/persist.h +++ b/include/wx/persist.h @@ -47,6 +47,11 @@ public: // accessor to the unique persistence manager object static wxPersistenceManager& Get(); + // trivial but virtual dtor + // + // FIXME-VC6: this only needs to be public because of VC6 bug + virtual ~wxPersistenceManager(); + // globally disable restoring or saving the persistent properties (both are // enabled by default) @@ -77,7 +82,7 @@ public: // deletes the associated wxPersistentObject void Unregister(void *obj); - + // save/restore the state of an object // // these methods do nothing if DisableSaving/Restoring() was called @@ -136,6 +141,7 @@ private: m_doRestore = true; } + // helpers of Save/Restore() // // TODO: make this customizable by allowing @@ -155,7 +161,7 @@ private: bool m_doSave, m_doRestore; - DECLARE_NO_COPY_CLASS(wxPersistenceManager) + wxDECLARE_NO_COPY_CLASS(wxPersistenceManager); }; // ---------------------------------------------------------------------------- @@ -212,7 +218,7 @@ protected: private: void * const m_obj; - DECLARE_NO_COPY_CLASS(wxPersistentObject) + wxDECLARE_NO_COPY_CLASS(wxPersistentObject); }; // FIXME-VC6: VC6 has troubles with template methods of DLL-exported classes, @@ -230,7 +236,17 @@ inline bool wxPersistentRegisterAndRestore(T *obj) wxPersistentObject * const pers = wxCreatePersistentObject(obj); return wxPersistenceManager::Get().RegisterAndRestore(obj, pers); - + +} + +// A helper function which also sets the name for the (wxWindow-derived) object +// before registering and restoring it. +template +inline bool wxPersistentRegisterAndRestore(T *obj, const wxString& name) +{ + obj->SetName(name); + + return wxPersistentRegisterAndRestore(obj); } #endif // _WX_PERSIST_H_