From b8d6be7f5789b6c3d53f98f7ee2e8620a227ca67 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 27 Sep 2012 22:41:33 +0000 Subject: [PATCH] Add two step creation to wxTextEntryDialog. Add Create() method and default ctor for consistency with the other classes. See #14702. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/textdlgg.h | 17 ++++++++++++++++- interface/wx/textdlg.h | 26 ++++++++++++++++++++++++-- src/generic/textdlgg.cpp | 16 +++++++++++----- 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/include/wx/generic/textdlgg.h b/include/wx/generic/textdlgg.h index d779ad2ef5..4d37d24251 100644 --- a/include/wx/generic/textdlgg.h +++ b/include/wx/generic/textdlgg.h @@ -37,12 +37,27 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxGetPasswordFromUserPromptStr[]; class WXDLLIMPEXP_CORE wxTextEntryDialog : public wxDialog { public: + wxTextEntryDialog() + { + m_textctrl = NULL; + } + wxTextEntryDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxGetTextFromUserPromptStr, const wxString& value = wxEmptyString, long style = wxTextEntryDialogStyle, - const wxPoint& pos = wxDefaultPosition); + const wxPoint& pos = wxDefaultPosition) + { + Create(parent, message, caption, value, style, pos); + } + + bool Create(wxWindow *parent, + const wxString& message, + const wxString& caption = wxGetTextFromUserPromptStr, + const wxString& value = wxEmptyString, + long style = wxTextEntryDialogStyle, + const wxPoint& pos = wxDefaultPosition); void SetValue(const wxString& val); wxString GetValue() const { return m_value; } diff --git a/interface/wx/textdlg.h b/interface/wx/textdlg.h index 043145ca89..04157bea53 100644 --- a/interface/wx/textdlg.h +++ b/interface/wx/textdlg.h @@ -78,8 +78,28 @@ class wxTextEntryDialog : public wxDialog { public: /** - Constructor. Use ShowModal() to show the dialog. + Default constructor. + Call Create() to really create the dialog later. + + @since 2.9.5 + */ + wxTextEntryDialog(); + + /** + Constructor. + + Use ShowModal() to show the dialog. + + See Create() method for parameter description. + */ + wxTextEntryDialog(wxWindow* parent, const wxString& message, + const wxString& caption = wxGetTextFromUserPromptStr, + const wxString& value = wxEmptyString, + long style = wxTextEntryDialogStyle, + const wxPoint& pos = wxDefaultPosition); + + /** @param parent Parent window. @param message @@ -95,8 +115,10 @@ public: here. @param pos Dialog position. + + @since 2.9.5 */ - wxTextEntryDialog(wxWindow* parent, const wxString& message, + bool Create(wxWindow* parent, const wxString& message, const wxString& caption = wxGetTextFromUserPromptStr, const wxString& value = wxEmptyString, long style = wxTextEntryDialogStyle, diff --git a/src/generic/textdlgg.cpp b/src/generic/textdlgg.cpp index 088391ea68..c2990265e3 100644 --- a/src/generic/textdlgg.cpp +++ b/src/generic/textdlgg.cpp @@ -65,17 +65,21 @@ END_EVENT_TABLE() IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog) -wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, +bool wxTextEntryDialog::Create(wxWindow *parent, const wxString& message, const wxString& caption, const wxString& value, long style, const wxPoint& pos) - : wxDialog(GetParentForModalDialog(parent, style), - wxID_ANY, caption, pos, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE), - m_value(value) { + if ( !wxDialog::Create(GetParentForModalDialog(parent, style), + wxID_ANY, caption, + pos, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE) ) + { + return false; + } + m_dialogStyle = style; m_value = value; @@ -126,6 +130,8 @@ wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, m_textctrl->SetFocus(); wxEndBusyCursor(); + + return true; } void wxTextEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) -- 2.45.2