use wxTextEntry in wxTextValidator (modified patch 1821743)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,9 +14,8 @@
|
|||||||
|
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
|
|
||||||
#if wxUSE_VALIDATORS && wxUSE_TEXTCTRL
|
#if wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX)
|
||||||
|
|
||||||
#include "wx/textctrl.h"
|
|
||||||
#include "wx/validate.h"
|
#include "wx/validate.h"
|
||||||
|
|
||||||
#define wxFILTER_NONE 0x0000
|
#define wxFILTER_NONE 0x0000
|
||||||
@@ -60,6 +59,7 @@ public:
|
|||||||
inline long GetStyle() const { return m_validatorStyle; }
|
inline long GetStyle() const { return m_validatorStyle; }
|
||||||
inline void SetStyle(long style) { m_validatorStyle = style; }
|
inline void SetStyle(long style) { m_validatorStyle = style; }
|
||||||
|
|
||||||
|
wxTextEntry *GetTextEntry();
|
||||||
|
|
||||||
void SetIncludes(const wxArrayString& includes) { m_includes = includes; }
|
void SetIncludes(const wxArrayString& includes) { m_includes = includes; }
|
||||||
inline wxArrayString& GetIncludes() { return m_includes; }
|
inline wxArrayString& GetIncludes() { return m_includes; }
|
||||||
@@ -73,7 +73,6 @@ public:
|
|||||||
// Filter keystrokes
|
// Filter keystrokes
|
||||||
void OnChar(wxKeyEvent& event);
|
void OnChar(wxKeyEvent& event);
|
||||||
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -82,16 +81,6 @@ protected:
|
|||||||
wxArrayString m_includes;
|
wxArrayString m_includes;
|
||||||
wxArrayString m_excludes;
|
wxArrayString m_excludes;
|
||||||
|
|
||||||
bool CheckValidator() const
|
|
||||||
{
|
|
||||||
wxCHECK_MSG( m_validatorWindow, false,
|
|
||||||
_T("No window associated with validator") );
|
|
||||||
wxCHECK_MSG( m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)), false,
|
|
||||||
_T("wxTextValidator is only for wxTextCtrl's") );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Cannot use
|
// Cannot use
|
||||||
// DECLARE_NO_COPY_CLASS(wxTextValidator)
|
// DECLARE_NO_COPY_CLASS(wxTextValidator)
|
||||||
@@ -102,7 +91,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// wxUSE_VALIDATORS && wxUSE_TEXTCTRL
|
// wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_VALTEXTH__
|
// _WX_VALTEXTH__
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_VALIDATORS && wxUSE_TEXTCTRL
|
#if wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX)
|
||||||
|
|
||||||
#include "wx/valtext.h"
|
#include "wx/valtext.h"
|
||||||
|
|
||||||
@@ -75,6 +75,28 @@ bool wxTextValidator::Copy(const wxTextValidator& val)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxTextEntry *wxTextValidator::GetTextEntry()
|
||||||
|
{
|
||||||
|
#if wxUSE_TEXTCTRL
|
||||||
|
if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
return (wxTextCtrl*)m_validatorWindow;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if wxUSE_COMBOBOX
|
||||||
|
if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)))
|
||||||
|
{
|
||||||
|
return (wxComboBox*)m_validatorWindow;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
wxFAIL_MSG(
|
||||||
|
_T("wxTextValidator can only be used with wxTextCtrl or wxComboBox")
|
||||||
|
);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static bool wxIsAlpha(const wxString& val)
|
static bool wxIsAlpha(const wxString& val)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -101,16 +123,15 @@ static bool wxIsAlphaNumeric(const wxString& val)
|
|||||||
// This function can pop up an error message.
|
// This function can pop up an error message.
|
||||||
bool wxTextValidator::Validate(wxWindow *parent)
|
bool wxTextValidator::Validate(wxWindow *parent)
|
||||||
{
|
{
|
||||||
if( !CheckValidator() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow;
|
|
||||||
|
|
||||||
// If window is disabled, simply return
|
// If window is disabled, simply return
|
||||||
if ( !control->IsEnabled() )
|
if ( !m_validatorWindow->IsEnabled() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
wxString val(control->GetValue());
|
wxTextEntry * const text = GetTextEntry();
|
||||||
|
if ( !text )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
wxString val(text->GetValue());
|
||||||
|
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
|
|
||||||
@@ -184,13 +205,13 @@ bool wxTextValidator::Validate(wxWindow *parent)
|
|||||||
// Called to transfer data to the window
|
// Called to transfer data to the window
|
||||||
bool wxTextValidator::TransferToWindow(void)
|
bool wxTextValidator::TransferToWindow(void)
|
||||||
{
|
{
|
||||||
if( !CheckValidator() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ( m_stringValue )
|
if ( m_stringValue )
|
||||||
{
|
{
|
||||||
wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow;
|
wxTextEntry * const text = GetTextEntry();
|
||||||
control->SetValue(* m_stringValue);
|
if ( !text )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
text->SetValue(*m_stringValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -199,13 +220,13 @@ bool wxTextValidator::TransferToWindow(void)
|
|||||||
// Called to transfer data to the window
|
// Called to transfer data to the window
|
||||||
bool wxTextValidator::TransferFromWindow(void)
|
bool wxTextValidator::TransferFromWindow(void)
|
||||||
{
|
{
|
||||||
if( !CheckValidator() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ( m_stringValue )
|
if ( m_stringValue )
|
||||||
{
|
{
|
||||||
wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow;
|
wxTextEntry * const text = GetTextEntry();
|
||||||
*m_stringValue = control->GetValue();
|
if ( !text )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
*m_stringValue = text->GetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -284,4 +305,4 @@ static bool wxIsNumeric(const wxString& val)
|
|||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// wxUSE_VALIDATORS && wxUSE_TEXTCTRL
|
// wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX)
|
||||||
|
Reference in New Issue
Block a user