--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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__
+
/////////////////////////////////////////////////////////////////////////////
// Name: textdlgg.h
-// Purpose: wxStatusBar class
+// Purpose: wxTextEntryDialog class
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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_
+
+/////////////////////////////////////////////////////////////////////////////
+// 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_
#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
// ============================================================================
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);
#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();
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);
void wxNumberEntryDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
{
- m_value = -1;
-
EndModal(wxID_CANCEL);
}
{
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