X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/678cd6de66095373ebaed01d8d013f256cac326b..efe66bbc0e9f463a6dd3ad49717474dd801bebf3:/src/generic/numdlgg.cpp diff --git a/src/generic/numdlgg.cpp b/src/generic/numdlgg.cpp index 0bcafcdc60..be98f28e5a 100644 --- a/src/generic/numdlgg.cpp +++ b/src/generic/numdlgg.cpp @@ -6,7 +6,7 @@ // Created: 23.07.99 // RCS-ID: $Id$ // Copyright: (c) Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,9 +17,8 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma interface "numdlgg.h" - #pragma implementation "numdlgg.h" +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "numdlgg.cpp" #endif // For compilers that support precompilation, includes "wx.h". @@ -29,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_NUMBERDLG + #ifndef WX_PRECOMP #include @@ -45,10 +46,17 @@ #include "wx/statline.h" #endif +#if !defined(__WIN16__) && wxUSE_SPINCTRL #include "wx/spinctrl.h" +#endif // this is where wxGetNumberFromUser() is declared -#include "wx/generic/textdlgg.h" +#include "wx/textdlg.h" + +#if !wxUSE_SPINCTRL + // wxTextCtrl will do instead of wxSpinCtrl if we don't have it + #define wxSpinCtrl wxTextCtrl +#endif // ---------------------------------------------------------------------------- // private classes @@ -77,6 +85,7 @@ protected: private: DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxNumberEntryDialog) }; // ============================================================================ @@ -124,6 +133,9 @@ wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent, wxString valStr; valStr.Printf(wxT("%lu"), 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); +#endif inputsizer->Add( m_spinctrl, 1, wxCENTER | wxLEFT | wxRIGHT, 10 ); // add both topsizer->Add( inputsizer, 1, wxEXPAND | wxLEFT|wxRIGHT, 5 ); @@ -144,6 +156,7 @@ wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent, Centre( wxBOTH ); + m_spinctrl->SetSelection(-1, -1); m_spinctrl->SetFocus(); wxEndBusyCursor(); @@ -151,7 +164,14 @@ wxNumberEntryDialog::wxNumberEntryDialog(wxWindow *parent, 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; + else +#else m_value = m_spinctrl->GetValue(); +#endif if ( m_value < m_min || m_value > m_max ) { // not a number or out of range @@ -189,3 +209,5 @@ long wxGetNumberFromUser(const wxString& msg, return dialog.GetValue(); } + +#endif // wxUSE_NUMBERDLG