1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/valgen.h 3 // Purpose: wxGenericValidator class 4 // Author: Kevin Smith 5 // Created: Jan 22 1999 6 // Copyright: (c) 1999 Julian Smart (assigned from Kevin) 7 // Licence: wxWindows licence 8 ///////////////////////////////////////////////////////////////////////////// 9 10 #ifndef _WX_VALGENH__ 11 #define _WX_VALGENH__ 12 13 #include "wx/validate.h" 14 15 #if wxUSE_VALIDATORS 16 17 class WXDLLIMPEXP_FWD_BASE wxDateTime; 18 class WXDLLIMPEXP_FWD_BASE wxFileName; 19 20 // ---------------------------------------------------------------------------- 21 // wxGenericValidator performs data transfer between many standard controls and 22 // variables of the type corresponding to their values. 23 // 24 // It doesn't do any validation so its name is a slight misnomer. 25 // ---------------------------------------------------------------------------- 26 27 class WXDLLIMPEXP_CORE wxGenericValidator: public wxValidator 28 { 29 public: 30 // Different constructors: each of them creates a validator which can only 31 // be used with some controls, the comments before each constructor 32 // indicate which ones: 33 // wxCheckBox, wxRadioButton, wx(Bitmap)ToggleButton 34 wxGenericValidator(bool* val); 35 // wxChoice, wxGauge, wxRadioBox, wxScrollBar, wxSlider, wxSpinButton 36 wxGenericValidator(int* val); 37 // wxComboBox, wxTextCtrl, wxButton, wxStaticText (read-only) 38 wxGenericValidator(wxString* val); 39 // wxListBox, wxCheckListBox 40 wxGenericValidator(wxArrayInt* val); 41 #if wxUSE_DATETIME 42 // wxDatePickerCtrl 43 wxGenericValidator(wxDateTime* val); 44 #endif // wxUSE_DATETIME 45 // wxTextCtrl 46 wxGenericValidator(wxFileName* val); 47 // wxTextCtrl 48 wxGenericValidator(float* val); 49 // wxTextCtrl 50 wxGenericValidator(double* val); 51 52 wxGenericValidator(const wxGenericValidator& copyFrom); 53 ~wxGenericValidator()54 virtual ~wxGenericValidator(){} 55 56 // Make a clone of this validator (or return NULL) - currently necessary 57 // if you're passing a reference to a validator. 58 // Another possibility is to always pass a pointer to a new validator 59 // (so the calling code can use a copy constructor of the relevant class). Clone()60 virtual wxObject *Clone() const wxOVERRIDE { return new wxGenericValidator(*this); } 61 bool Copy(const wxGenericValidator& val); 62 63 // Called when the value in the window must be validated: this is not used 64 // by this class Validate(wxWindow * WXUNUSED (parent))65 virtual bool Validate(wxWindow * WXUNUSED(parent)) wxOVERRIDE { return true; } 66 67 // Called to transfer data to the window 68 virtual bool TransferToWindow() wxOVERRIDE; 69 70 // Called to transfer data to the window 71 virtual bool TransferFromWindow() wxOVERRIDE; 72 73 protected: 74 void Initialize(); 75 76 bool* m_pBool; 77 int* m_pInt; 78 wxString* m_pString; 79 wxArrayInt* m_pArrayInt; 80 #if wxUSE_DATETIME 81 wxDateTime* m_pDateTime; 82 #endif // wxUSE_DATETIME 83 wxFileName* m_pFileName; 84 float* m_pFloat; 85 double* m_pDouble; 86 87 private: 88 wxDECLARE_CLASS(wxGenericValidator); 89 wxDECLARE_NO_ASSIGN_CLASS(wxGenericValidator); 90 }; 91 92 #endif // wxUSE_VALIDATORS 93 94 #endif // _WX_VALGENH__ 95