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:
parent
7d0bf46a34
commit
fc5414a1c6
83
include/wx/generic/numdlgg.h
Normal file
83
include/wx/generic/numdlgg.h
Normal 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__
|
||||
|
@ -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
22
include/wx/numdlg.h
Normal 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_
|
||||
|
@ -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_
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user