// 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)
// deletes the associated wxPersistentObject
void Unregister(void *obj);
-
+
// save/restore the state of an object
//
// these methods do nothing if DisableSaving/Restoring() was called
m_doRestore = true;
}
+
// helpers of Save/Restore()
//
// TODO: make this customizable by allowing
bool m_doSave,
m_doRestore;
- DECLARE_NO_COPY_CLASS(wxPersistenceManager)
+ wxDECLARE_NO_COPY_CLASS(wxPersistenceManager);
};
// ----------------------------------------------------------------------------
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,
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 <typename T>
+inline bool wxPersistentRegisterAndRestore(T *obj, const wxString& name)
+{
+ obj->SetName(name);
+
+ return wxPersistentRegisterAndRestore(obj);
}
#endif // _WX_PERSIST_H_