]> git.saurik.com Git - wxWidgets.git/commitdiff
Optionally set the window name in wxPersistentRegisterAndRestore().
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 11 Jul 2010 10:44:23 +0000 (10:44 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 11 Jul 2010 10:44:23 +0000 (10:44 +0000)
In practice names are not often used so typically whenever you want to make a
window settings persistent you also need to set its name and the it's
convenient to let a single function do both tasks, so add an overload taking
the name string (this is a separate function instead of optional parameter to
avoid compilation errors if this is ever used with non-wxWindow-derived
objects which don't have SetName() method).

Also expand the documentation slightly and add @since tags.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/persist.h
interface/wx/persist.h
samples/widgets/widgets.cpp

index a46935fd90c17b6a6407fee24e3d1bafd7885d52..68097fbcbeeb3f1698e650a61017ae417a1daddb 100644 (file)
@@ -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 <typename T>
+inline bool wxPersistentRegisterAndRestore(T *obj, const wxString& name)
+{
+    obj->SetName(name);
+
+    return wxPersistentRegisterAndRestore(obj);
+}
+
 #endif // _WX_PERSIST_H_
 
 #endif // _WX_PERSIST_H_
 
index bb0dc58c3197c9f42259494ee265c66b2cc240e2..d8a5d97afb02c0a01cf6a268c19fba42c937c4d5 100644 (file)
@@ -17,6 +17,8 @@
     This is a singleton class and its unique instance can be retrieved using
     Get() method.
 
     This is a singleton class and its unique instance can be retrieved using
     Get() method.
 
+    @since 2.9.0
+
     @library{wxcore}
  */
 class wxPersistenceManager
     @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
 
     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.
 
     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 <class T>
     @header{wx/persist.h}
  */
 template <class T>
-bool wxPersistentRegisterAndRestore(T *obj);
+bool wxPersistentRegisterAndRestore(T *obj, const wxString& name = wxString());
index d71656dd40bcc79287b0014d94912fb86b46e04d..157e5e23cdcc2df22c0c13611e18a4736242cad0 100644 (file)
@@ -361,8 +361,7 @@ bool WidgetsApp::OnInit()
 WidgetsFrame::WidgetsFrame(const wxString& title)
             : wxFrame(NULL, wxID_ANY, title)
 {
 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));
 
     // set the frame icon
     SetIcon(wxICON(sample));