From 750cefbca2741b1be65adcd5480dd85a2d049a6c Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Tue, 27 Aug 2002 09:17:36 +0000
Subject: [PATCH] deprecated static wxWizard::Create()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/changes.txt         |  4 ++++
 docs/latex/wx/wizard.tex | 27 +++++++++++--------------
 include/wx/wizard.h      | 43 +++++++++++++++++++++++++++-------------
 src/generic/wizard.cpp   |  4 ++++
 4 files changed, 49 insertions(+), 29 deletions(-)

diff --git a/docs/changes.txt b/docs/changes.txt
index 24b4bc9d33..b499a9ace9 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -78,6 +78,10 @@ All (GUI):
         if ( flags & wxYES )
                 ... do something else ...
 
+- static wxWizard::Create() doesn't exist any more, the wizards are created
+  in the same way as all the other wxWindow objects, i.e. by directly using
+  the ctor
+
 - wxGLCanvas now derives directly from wxWindow, not wxScrolledWindow
 
 - wxGridCellAttrProvider class API changed, you will need to update your code
diff --git a/docs/latex/wx/wizard.tex b/docs/latex/wx/wizard.tex
index 6d0866a49b..2ae93d6650 100644
--- a/docs/latex/wx/wizard.tex
+++ b/docs/latex/wx/wizard.tex
@@ -21,8 +21,9 @@ simple steps and are mainly useful to the novice users, hence it is important
 to keep them as simple as possible.
 
 To show a wizard dialog, you must first create an object of wxWizard class
-using \helpref{Create}{wxwizardcreate} function. Then you should add all pages
-you want the wizard to show and call \helpref{RunWizard}{wxwizardrunwizard}.
+using either the non default constructor or a default one followed by call to 
+\helpref{Create}{wxwizardcreate} function. Then you should add all pages you
+want the wizard to show and call \helpref{RunWizard}{wxwizardrunwizard}.
 Finally, don't forget to call {\tt wizard->Destroy()}.
 
 \wxheading{Derived from}
@@ -78,14 +79,15 @@ See also \helpref{wxDialog}{wxdialog} for other extended styles.
 
 \func{}{wxWizard}{\void}
 
-Default constructor. Use this if you wish to derive from wxWizard and then call {\bf Create}, for example
-if you wish to set an extra style with \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle}.
+Default constructor. Use this if you wish to derive from wxWizard and then call 
+\helpref{Create}{wxwizardcreate}, for example if you wish to set an extra style
+with \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle} between the two
+calls.
 
 \func{}{wxWizard}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
 
-Creates the wizard dialog. The wizard should not be deleted
-directly, you should rather call {\tt Destroy()} on it and wxWindows will
-delete it itself.
+Constructor which really creates the wizard -- if you use this constructor, you
+shouldn't call \helpref{Create}{wxwizardcreate}.
 
 Notice that unlike almost all other wxWindows classes, there is no {\it size} 
 parameter in wxWizard constructor because the wizard will have a predefined
@@ -108,21 +110,16 @@ by default.}
 
 \membersection{wxWizard::Create}\label{wxwizardcreate}
 
-\func{static wxWizard*}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
+\func{bool}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
 
-Creates the wizard dialog. The returned pointer should not be deleted
-directly, you should rather call {\tt Destroy()} on it and wxWindows will
-delete it itself.
+Creates the wizard dialog. Must be called if the default constructor had been
+used to create the object.
 
 Notice that unlike almost all other wxWindows classes, there is no {\it size} 
 parameter in wxWizard constructor because the wizard will have a predefined
 default size by default. If you want to change this, you should use the 
 \helpref{SetPageSize}{wxwizardsetpagesize} function.
 
-\func{bool}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
-
-Alternative, non-static constructor for two-step construction of a class derived from wxWizard.
-
 \wxheading{Parameters}
 
 \docparam{parent}{The parent window, may be NULL.}
diff --git a/include/wx/wizard.h b/include/wx/wizard.h
index e2a578c2a3..55fd5c82cf 100644
--- a/include/wx/wizard.h
+++ b/include/wx/wizard.h
@@ -47,8 +47,6 @@ class WXDLLEXPORT wxWizardPage : public wxPanel
 {
 public:
     wxWizardPage() { Init(); }
-    // common part of ctors:
-    void Init();
 
     // ctor accepts an optional bitmap which will be used for this page instead
     // of the default one for this wizard (should be of the same size). Notice
@@ -74,6 +72,9 @@ public:
     virtual wxBitmap GetBitmap() const { return m_bitmap; }
 
 protected:
+    // common part of ctors:
+    void Init();
+
     wxBitmap m_bitmap;
 
 private:
@@ -93,11 +94,6 @@ class WXDLLEXPORT wxWizardPageSimple : public wxWizardPage
 {
 public:
     wxWizardPageSimple() { Init(); }
-    // common part of ctors:
-    void Init()
-    {
-        m_prev = m_next = NULL;
-    }
 
     // ctor takes the previous and next pages
     wxWizardPageSimple(wxWizard *parent,
@@ -139,6 +135,12 @@ public:
     virtual wxWizardPage *GetNext() const;
 
 private:
+    // common part of ctors:
+    void Init()
+    {
+        m_prev = m_next = NULL;
+    }
+
     // pointers are private, the derived classes shouldn't mess with them -
     // just derive from wxWizardPage directly to implement different behaviour
     wxWizardPage *m_prev,
@@ -154,13 +156,16 @@ private:
 class WXDLLEXPORT wxWizardBase : public wxDialog
 {
 public:
-    // create the wizard control
-    static wxWizard *Create(wxWindow *parent,
-                            int id = -1,
-                            const wxString& title = wxEmptyString,
-                            const wxBitmap& bitmap = wxNullBitmap,
-                            const wxPoint& pos = wxDefaultPosition,
-                            const wxSize& size = wxDefaultSize);
+    /*
+       The derived class (i.e. the real wxWizard) has a ctor and Create()
+       function taking the following arguments:
+
+        wxWizard(wxWindow *parent,
+                 int id = -1,
+                 const wxString& title = wxEmptyString,
+                 const wxBitmap& bitmap = wxNullBitmap,
+                 const wxPoint& pos = wxDefaultPosition);
+    */
 
     // executes the wizard starting from the given page, returns TRUE if it was
     // successfully finished, FALSE if user cancelled it
@@ -186,6 +191,16 @@ public:
     // may be useful if not all pages are accessible from the first one by
     // default)
     virtual void FitToPage(const wxWizardPage *firstPage) = 0;
+
+    // wxWizard should be created using "new wxWizard" now, not with Create()
+#ifdef WXWIN_COMPATIBILITY_2_2
+    wxWizard *Create(wxWindow *parent,
+                     int id = -1,
+                     const wxString& title = wxEmptyString,
+                     const wxBitmap& bitmap = wxNullBitmap,
+                     const wxPoint& pos = wxDefaultPosition,
+                     const wxSize& size = wxDefaultSize)
+#endif // WXWIN_COMPATIBILITY_2_2
 };
 
 // include the real class declaration
diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp
index 3b368af84a..aef2a89210 100644
--- a/src/generic/wizard.cpp
+++ b/src/generic/wizard.cpp
@@ -520,6 +520,8 @@ void wxWizard::OnWizEvent(wxWizardEvent& event)
 // our public interface
 // ----------------------------------------------------------------------------
 
+#ifdef WXWIN_COMPATIBILITY_2_2
+
 /* static */
 wxWizard *wxWizardBase::Create(wxWindow *parent,
                                int id,
@@ -531,6 +533,8 @@ wxWizard *wxWizardBase::Create(wxWindow *parent,
     return new wxWizard(parent, id, title, bitmap, pos);
 }
 
+#endif // WXWIN_COMPATIBILITY_2_2
+
 // ----------------------------------------------------------------------------
 // wxWizardEvent
 // ----------------------------------------------------------------------------
-- 
2.50.0

