From: Vadim Zeitlin Date: Sat, 7 Feb 2004 13:55:49 +0000 (+0000) Subject: made wxNumberEntryDialog public; extracted it and wxGetNumberFromUser() in a separate... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/fc5414a1c6c55fcf9fd7f5bffb09b9b9eaf1d4bf made wxNumberEntryDialog public; extracted it and wxGetNumberFromUser() in a separate header (patch 882545) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/generic/numdlgg.h b/include/wx/generic/numdlgg.h new file mode 100644 index 0000000000..a5f24a9780 --- /dev/null +++ b/include/wx/generic/numdlgg.h @@ -0,0 +1,83 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/generic/numdlgg.h +// Purpose: wxNumberEntryDialog class +// Author: John Labenski +// Modified by: +// Created: 07.02.04 (extracted from textdlgg.cpp) +// RCS-ID: $Id$ +// Copyright: (c) wxWindows team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __NUMDLGH_G__ +#define __NUMDLGH_G__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "numdlgg.h" +#endif + +#if wxUSE_NUMBERDLG + +#include "wx/defs.h" + +#include "wx/dialog.h" + +#if wxUSE_SPINCTRL + class WXDLLEXPORT wxSpinCtrl; +#else + class WXDLLEXPORT wxTextCtrl; +#endif // wxUSE_SPINCTRL + +// ---------------------------------------------------------------------------- +// wxNumberEntryDialog: a dialog with spin control, [ok] and [cancel] buttons +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxNumberEntryDialog : public wxDialog +{ +public: + wxNumberEntryDialog(wxWindow *parent, + const wxString& message, + const wxString& prompt, + const wxString& caption, + long value, long min, long max, + const wxPoint& pos = wxDefaultPosition); + + long GetValue() const { return m_value; } + + // implementation only + void OnOK(wxCommandEvent& event); + void OnCancel(wxCommandEvent& event); + +protected: + +#if wxUSE_SPINCTRL + wxSpinCtrl *m_spinctrl; +#else + wxTextCtrl *m_spinctrl; +#endif // wxUSE_SPINCTRL + + long m_value, m_min, m_max; + +private: + DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxNumberEntryDialog) +}; + +// ---------------------------------------------------------------------------- +// function to get a number from user +// ---------------------------------------------------------------------------- + +long WXDLLEXPORT +wxGetNumberFromUser(const wxString& message, + const wxString& prompt, + const wxString& caption, + long value = 0, + long min = 0, + long max = 100, + wxWindow *parent = (wxWindow *)NULL, + const wxPoint& pos = wxDefaultPosition); + +#endif // wxUSE_NUMBERDLG + +#endif // __NUMDLGH_G__ + diff --git a/include/wx/generic/textdlgg.h b/include/wx/generic/textdlgg.h index d9cbafc1b7..876389d0e7 100644 --- a/include/wx/generic/textdlgg.h +++ b/include/wx/generic/textdlgg.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: textdlgg.h -// Purpose: wxStatusBar class +// Purpose: wxTextEntryDialog class // Author: Julian Smart // Modified by: // Created: 01/02/97 diff --git a/include/wx/numdlg.h b/include/wx/numdlg.h new file mode 100644 index 0000000000..d8235e927d --- /dev/null +++ b/include/wx/numdlg.h @@ -0,0 +1,22 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/numdlg.h +// Purpose: wxNumberEntryDialog class +// Author: John Labenski +// Modified by: +// Created: 07.02.04 (extracted from wx/textdlg.h) +// RCS-ID: $Id$ +// Copyright: (c) wxWindows team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_NUMDLGDLG_H_BASE_ +#define _WX_NUMDLGDLG_H_BASE_ + +#if wxUSE_NUMBERDLG + +#include "wx/generic/numdlgg.h" + +#endif // wxUSE_NUMBERDLG + +#endif // _WX_NUMDLGDLG_H_BASE_ + diff --git a/include/wx/textdlg.h b/include/wx/textdlg.h index 9fe13dda44..7eb37741fc 100644 --- a/include/wx/textdlg.h +++ b/include/wx/textdlg.h @@ -1,21 +1,23 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: textdlg.h +// Purpose: wxTextEntryDialog class +// Author: Julian Smart +// Modified by: +// Created: 01/02/97 +// RCS-ID: $Id$ +// Copyright: (c) Julian Smart +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + #ifndef _WX_TEXTDLG_H_BASE_ #define _WX_TEXTDLG_H_BASE_ #include "wx/generic/textdlgg.h" -// ---------------------------------------------------------------------------- -// function to get a number from user -// ---------------------------------------------------------------------------- +#if WXWIN_COMPATIBILITY_2_4 + // for wxGetNumberFromUser() + #include "wx/numdlg.h" +#endif // WXWIN_COMPATIBILITY_2_4 -long WXDLLEXPORT -wxGetNumberFromUser(const wxString& message, - const wxString& prompt, - const wxString& caption, - long value = 0, - long min = 0, - long max = 100, - wxWindow *parent = (wxWindow *)NULL, - const wxPoint& pos = wxDefaultPosition); +#endif // _WX_TEXTDLG_H_BASE_ -#endif - // _WX_TEXTDLG_H_BASE_ diff --git a/src/generic/numdlgg.cpp b/src/generic/numdlgg.cpp index be98f28e5a..2cbcc03ac1 100644 --- a/src/generic/numdlgg.cpp +++ b/src/generic/numdlgg.cpp @@ -51,43 +51,13 @@ #endif // this is where wxGetNumberFromUser() is declared -#include "wx/textdlg.h" +#include "wx/numdlg.h" #if !wxUSE_SPINCTRL // wxTextCtrl will do instead of wxSpinCtrl if we don't have it #define wxSpinCtrl wxTextCtrl #endif -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNumberEntryDialog : public wxDialog -{ -public: - wxNumberEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, long min, long max, - const wxPoint& pos); - - long GetValue() const { return m_value; } - - // implementation only - void OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - -protected: - wxSpinCtrl *m_spinctrl; - - long m_value, m_min, m_max; - -private: - DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxNumberEntryDialog) -}; - // ============================================================================ // implementation // ============================================================================ @@ -131,7 +101,7 @@ wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent, inputsizer->Add( new wxStaticText( this, -1, prompt ), 0, wxCENTER | wxLEFT, 10 ); // spin ctrl wxString valStr; - valStr.Printf(wxT("%lu"), m_value); + valStr.Printf(wxT("%ld"), m_value); m_spinctrl = new wxSpinCtrl(this, -1, valStr, wxDefaultPosition, wxSize( 140, -1 ) ); #if !defined(__WIN16__) && wxUSE_SPINCTRL m_spinctrl->SetRange((int)m_min, (int)m_max); @@ -167,7 +137,7 @@ void wxNumberEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event)) #if !wxUSE_SPINCTRL wxString tmp = m_spinctrl->GetValue(); if ( wxSscanf(tmp, _T("%ld"), &m_value) != 1 ) - m_value = -1; + EndModal(wxID_CANCEL); else #else m_value = m_spinctrl->GetValue(); @@ -175,7 +145,7 @@ void wxNumberEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event)) if ( m_value < m_min || m_value > m_max ) { // not a number or out of range - m_value = -1; + EndModal(wxID_CANCEL); } EndModal(wxID_OK); @@ -183,8 +153,6 @@ void wxNumberEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event)) void wxNumberEntryDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) { - m_value = -1; - EndModal(wxID_CANCEL); } @@ -205,9 +173,10 @@ long wxGetNumberFromUser(const wxString& msg, { wxNumberEntryDialog dialog(parent, msg, prompt, title, value, min, max, pos); - (void)dialog.ShowModal(); - + if (dialog.ShowModal() == wxID_OK) return dialog.GetValue(); + + return -1; } #endif // wxUSE_NUMBERDLG