1/////////////////////////////////////////////////////////////////////////////
2// Name:        valgen.h
3// Purpose:     wxGenericValidator class
4// Author:      Kevin Smith
5// Modified by:
6// Created:     Jan 22 1999
7// RCS-ID:
8// Copyright:   (c) 1999 Julian Smart (assigned from Kevin)
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_VALGENH__
13#define _WX_VALGENH__
14
15#include "wx/validate.h"
16
17#if wxUSE_VALIDATORS
18
19class WXDLLEXPORT wxGenericValidator: public wxValidator
20{
21DECLARE_CLASS(wxGenericValidator)
22public:
23  wxGenericValidator(bool* val);
24  wxGenericValidator(int* val);
25  wxGenericValidator(wxString* val);
26  wxGenericValidator(wxArrayInt* val);
27  wxGenericValidator(const wxGenericValidator& copyFrom);
28
29  virtual ~wxGenericValidator(){}
30
31  // Make a clone of this validator (or return NULL) - currently necessary
32  // if you're passing a reference to a validator.
33  // Another possibility is to always pass a pointer to a new validator
34  // (so the calling code can use a copy constructor of the relevant class).
35  virtual wxObject *Clone() const { return new wxGenericValidator(*this); }
36  bool Copy(const wxGenericValidator& val);
37
38  // Called when the value in the window must be validated.
39  // This function can pop up an error message.
40  virtual bool Validate(wxWindow * WXUNUSED(parent)) { return true; }
41
42  // Called to transfer data to the window
43  virtual bool TransferToWindow();
44
45  // Called to transfer data to the window
46  virtual bool TransferFromWindow();
47
48protected:
49  void Initialize();
50
51  bool*       m_pBool;
52  int*        m_pInt;
53  wxString*   m_pString;
54  wxArrayInt* m_pArrayInt;
55
56private:
57// Cannot use
58//  DECLARE_NO_COPY_CLASS(wxGenericValidator)
59// because copy constructor is explicitly declared above;
60// but no copy assignment operator is defined, so declare
61// it private to prevent the compiler from defining it:
62    wxGenericValidator& operator=(const wxGenericValidator&);
63};
64
65#endif
66  // wxUSE_VALIDATORS
67
68#endif
69  // _WX_VALGENH__
70