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
This commit is contained in:
Vadim Zeitlin 2004-02-07 13:55:49 +00:00
parent 7d0bf46a34
commit fc5414a1c6
5 changed files with 129 additions and 53 deletions

View File

@ -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__

View File

@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: textdlgg.h
// Purpose: wxStatusBar class
// Purpose: wxTextEntryDialog class
// Author: Julian Smart
// Modified by:
// Created: 01/02/97

22
include/wx/numdlg.h Normal file
View File

@ -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_

View File

@ -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_

View File

@ -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