From 750cefbca2741b1be65adcd5480dd85a2d049a6c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin 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.47.2