diff --git a/include/wx/persist.h b/include/wx/persist.h index a46935fd90..68097fbcbe 100644 --- a/include/wx/persist.h +++ b/include/wx/persist.h @@ -239,5 +239,15 @@ inline bool wxPersistentRegisterAndRestore(T *obj) } +// 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_ diff --git a/interface/wx/persist.h b/interface/wx/persist.h index bb0dc58c31..d8a5d97afb 100644 --- a/interface/wx/persist.h +++ b/interface/wx/persist.h @@ -17,6 +17,8 @@ This is a singleton class and its unique instance can be retrieved using Get() method. + @since 2.9.0 + @library{wxcore} */ class wxPersistenceManager @@ -270,12 +272,23 @@ wxPersistentObject *wxCreatePersistentObject(T *obj); This function simply calls wxPersistenceManager::RegisterAndRestore() but using it results in slightly shorter code as it calls - wxPersistenceManager::Get() internally. + wxPersistenceManager::Get() internally. As an additional convenience, this + function can also set the window name. - For the implementation reasons, this function @em mucst be used instead of + For the implementation reasons, this function @em must be used instead of the template method when using Microsoft Visual C++ 6 compiler. + @param obj wxWindow-derived object to register with persistence manager and + to try to restore the settings for. + @param name If not empty, @a obj name is changed to the provided value + before registering it. + @return true if the settings were restored or false otherwise (this will + always be the case when the program runs for the first time, for + example). + + @since 2.9.0, @a name is new in 2.9.1. + @header{wx/persist.h} */ template -bool wxPersistentRegisterAndRestore(T *obj); +bool wxPersistentRegisterAndRestore(T *obj, const wxString& name = wxString()); diff --git a/samples/widgets/widgets.cpp b/samples/widgets/widgets.cpp index d71656dd40..157e5e23cd 100644 --- a/samples/widgets/widgets.cpp +++ b/samples/widgets/widgets.cpp @@ -361,8 +361,7 @@ bool WidgetsApp::OnInit() WidgetsFrame::WidgetsFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { - SetName("Main"); - const bool sizeSet = wxPersistentRegisterAndRestore(this); + const bool sizeSet = wxPersistentRegisterAndRestore(this, "Main"); // set the frame icon SetIcon(wxICON(sample));