X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/679ab0b315622f0b4d1fbd74d11c9d4f63a3b031..d3fa4bc22e84e3ca4d88cc1772f2d414140a1017:/interface/wx/persist.h diff --git a/interface/wx/persist.h b/interface/wx/persist.h index d8a5d97afb..6a6a1aa13e 100644 --- a/interface/wx/persist.h +++ b/interface/wx/persist.h @@ -4,7 +4,7 @@ // Author: Vadim Zeitlin // RCS-ID: $Id$ // Copyright: (c) 2009 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -24,8 +24,26 @@ class wxPersistenceManager { public: + /** + Set the global persistence manager to use. + + Call this method to specify a non-default persistence manager to use. + It should usually be called very early (e.g. in wxApp-derived class + constructor or in the beginning of overridden wxApp::OnInit()) to + affect creation of all persistent controls and the object passed to it + must have a lifetime long enough to be still alive when the persistent + controls are destroyed and need it to save their state so typically + this would be a global or a wxApp member. + + @since 2.9.3 + */ + static void Set(wxPersistenceManager& manager); + /** Returns the unique persistence manager object. + + If Set() hadn't been called before, a default persistence manager + implementation is returned. */ static wxPersistenceManager& Get(); @@ -39,7 +57,7 @@ public: @see DisableRestoring() */ - bool DisableSaving(); + void DisableSaving(); /** Globally disable restoring the persistence object properties. @@ -49,7 +67,7 @@ public: @see DisableSaving() */ - bool DisableRestoring(); + void DisableRestoring(); /** @@ -142,6 +160,46 @@ public: bool RegisterAndRestore(void *obj, wxPersistentObject *po); //@} + +protected: + /** + Protected default constructor. + + This constructor is only provided for the derived classes, to use an + object of this class static Get() method should be called. + */ + wxPersistenceManager(); + + /** + Return the config object to use. + + By default the global wxConfig, returned by wxConfigBase::Get(), is + used but a derived class could override this function to return a + different one if necessary. + + @since 2.9.3 + */ + virtual wxConfigBase *GetConfig() const; + + /** + Return the path to use for saving the setting with the given name for + the specified object. + + Notice that the @a name argument is the name of the setting, not the + name of the object itself which can be retrieved with its GetName() + method. + + This method can be overridden by a derived class to change where in + wxConfig the different options are stored. By default, all settings of + the persistent controls are stored under "Persistent_Options" group and + grouped by control type (e.g. "Window" for top level windows or + "Splitter") and name, so that the position of a splitter called "sep" + could be stored under "Persistent_Options/Splitter/sep/Position" key. + + @since 2.9.3 + */ + virtual wxString GetKey(const wxPersistentObject& who, + const wxString& name) const; }; /**