1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: valtext.h 3 // Purpose: wxTextValidator class 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 29/01/98 7 // RCS-ID: $Id: valtext.h 61872 2009-09-09 22:37:05Z VZ $ 8 // Copyright: (c) 1998 Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_VALTEXTH__ 13 #define _WX_VALTEXTH__ 14 15 #include "wx/defs.h" 16 17 #if wxUSE_VALIDATORS && wxUSE_TEXTCTRL 18 19 #include "wx/textctrl.h" 20 #include "wx/validate.h" 21 22 #define wxFILTER_NONE 0x0000 23 #define wxFILTER_ASCII 0x0001 24 #define wxFILTER_ALPHA 0x0002 25 #define wxFILTER_ALPHANUMERIC 0x0004 26 #define wxFILTER_NUMERIC 0x0008 27 #define wxFILTER_INCLUDE_LIST 0x0010 28 #define wxFILTER_EXCLUDE_LIST 0x0020 29 #define wxFILTER_INCLUDE_CHAR_LIST 0x0040 30 #define wxFILTER_EXCLUDE_CHAR_LIST 0x0080 31 32 class WXDLLEXPORT wxTextValidator: public wxValidator 33 { 34 DECLARE_DYNAMIC_CLASS(wxTextValidator) 35 public: 36 37 wxTextValidator(long style = wxFILTER_NONE, wxString *val = 0); 38 wxTextValidator(const wxTextValidator& val); 39 ~wxTextValidator()40 virtual ~wxTextValidator(){} 41 42 // Make a clone of this validator (or return NULL) - currently necessary 43 // if you're passing a reference to a validator. 44 // Another possibility is to always pass a pointer to a new validator 45 // (so the calling code can use a copy constructor of the relevant class). Clone()46 virtual wxObject *Clone() const { return new wxTextValidator(*this); } 47 bool Copy(const wxTextValidator& val); 48 49 // Called when the value in the window must be validated. 50 // This function can pop up an error message. 51 virtual bool Validate(wxWindow *parent); 52 53 // Called to transfer data to the window 54 virtual bool TransferToWindow(); 55 56 // Called to transfer data from the window 57 virtual bool TransferFromWindow(); 58 59 // ACCESSORS GetStyle()60 inline long GetStyle() const { return m_validatorStyle; } SetStyle(long style)61 inline void SetStyle(long style) { m_validatorStyle = style; } 62 63 #if WXWIN_COMPATIBILITY_2_4 64 wxDEPRECATED( void SetIncludeList(const wxStringList& list) ); 65 wxDEPRECATED( wxStringList& GetIncludeList() ); 66 67 wxDEPRECATED( void SetExcludeList(const wxStringList& list) ); 68 wxDEPRECATED( wxStringList& GetExcludeList() ); 69 70 wxDEPRECATED( bool IsInCharIncludeList(const wxString& val) ); 71 wxDEPRECATED( bool IsNotInCharExcludeList(const wxString& val) ); 72 #endif 73 SetIncludes(const wxArrayString & includes)74 void SetIncludes(const wxArrayString& includes) { m_includes = includes; } GetIncludes()75 inline wxArrayString& GetIncludes() { return m_includes; } 76 SetExcludes(const wxArrayString & excludes)77 void SetExcludes(const wxArrayString& excludes) { m_excludes = excludes; } GetExcludes()78 inline wxArrayString& GetExcludes() { return m_excludes; } 79 80 bool IsInCharIncludes(const wxString& val); 81 bool IsNotInCharExcludes(const wxString& val); 82 83 // Filter keystrokes 84 void OnChar(wxKeyEvent& event); 85 86 87 DECLARE_EVENT_TABLE() 88 89 protected: 90 long m_validatorStyle; 91 wxString * m_stringValue; 92 #if WXWIN_COMPATIBILITY_2_4 93 wxStringList m_includeList; 94 wxStringList m_excludeList; 95 #endif 96 wxArrayString m_includes; 97 wxArrayString m_excludes; 98 CheckValidator()99 bool CheckValidator() const 100 { 101 wxCHECK_MSG( m_validatorWindow, false, 102 wxT("No window associated with validator") ); 103 wxCHECK_MSG( m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)), false, 104 wxT("wxTextValidator is only for wxTextCtrl's") ); 105 106 return true; 107 } 108 109 private: 110 // Cannot use 111 // DECLARE_NO_COPY_CLASS(wxTextValidator) 112 // because copy constructor is explicitly declared above; 113 // but no copy assignment operator is defined, so declare 114 // it private to prevent the compiler from defining it: 115 wxTextValidator& operator=(const wxTextValidator&); 116 }; 117 118 #endif 119 // wxUSE_VALIDATORS && wxUSE_TEXTCTRL 120 121 #endif 122 // _WX_VALTEXTH__ 123