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