// Name: valgen.h
// Purpose: wxGenericValidator class
// Author: Kevin Smith
-// Modified by:
// Created: Jan 22 1999
-// RCS-ID:
-// Copyright: (c) 1999 Kevin Smith
+// RCS-ID: $Id:$
+// Copyright: (c) 1999 Julian Smart (assigned from Kevin)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_VALGENH__
#define _WX_VALGENH__
-#ifdef __GNUG__
-#pragma interface "valgen.h"
-#endif
-
#include "wx/validate.h"
+#if wxUSE_VALIDATORS
+
+class WXDLLIMPEXP_FWD_BASE wxDateTime;
+
+// ----------------------------------------------------------------------------
+// wxGenericValidator performs data transfer between many standard controls and
+// variables of the type corresponding to their values.
+//
+// It doesn't do any validation so its name is a slight misnomer.
+// ----------------------------------------------------------------------------
+
class WXDLLEXPORT wxGenericValidator: public wxValidator
{
public:
- wxGenericValidator(bool* val);
- wxGenericValidator(int* val);
- wxGenericValidator(wxString* val);
- wxGenericValidator(wxArrayInt* val);
- wxGenericValidator(const wxGenericValidator& copyFrom);
+ // Different constructors: each of them creates a validator which can only
+ // be used with some controls, the comments before each constructor
+ // indicate which ones:
+ // wxCheckBox, wxRadioButton, wx(Bitmap)ToggleButton
+ wxGenericValidator(bool* val);
+ // wxChoice, wxGauge, wxRadioBox, wxScrollBar, wxSlider, wxSpinButton
+ wxGenericValidator(int* val);
+ // wxComboBox, wxTextCtrl, wxButton, wxStaticText (read-only)
+ wxGenericValidator(wxString* val);
+ // wxListBox, wxCheckListBox
+ wxGenericValidator(wxArrayInt* val);
+#if wxUSE_DATETIME
+ // wxDatePickerCtrl
+ wxGenericValidator(wxDateTime* val);
+#endif // wxUSE_DATETIME
+ wxGenericValidator(const wxGenericValidator& copyFrom);
- ~wxGenericValidator();
+ virtual ~wxGenericValidator(){}
- // Make a clone of this validator (or return NULL) - currently necessary
- // if you're passing a reference to a validator.
- // Another possibility is to always pass a pointer to a new validator
- // (so the calling code can use a copy constructor of the relevant class).
- virtual wxObject *Clone() const { return new wxGenericValidator(*this); }
- bool Copy(const wxGenericValidator& val);
+ // Make a clone of this validator (or return NULL) - currently necessary
+ // if you're passing a reference to a validator.
+ // Another possibility is to always pass a pointer to a new validator
+ // (so the calling code can use a copy constructor of the relevant class).
+ virtual wxObject *Clone() const { return new wxGenericValidator(*this); }
+ bool Copy(const wxGenericValidator& val);
- // Called when the value in the window must be validated.
- // This function can pop up an error message.
- virtual bool Validate(wxWindow * WXUNUSED(parent)) { return TRUE; }
+ // Called when the value in the window must be validated: this is not used
+ // by this class
+ virtual bool Validate(wxWindow * WXUNUSED(parent)) { return true; }
- // Called to transfer data to the window
- virtual bool TransferToWindow();
+ // Called to transfer data to the window
+ virtual bool TransferToWindow();
- // Called to transfer data to the window
- virtual bool TransferFromWindow();
+ // Called to transfer data to the window
+ virtual bool TransferFromWindow();
protected:
- void Initialize();
+ void Initialize();
+
+ bool* m_pBool;
+ int* m_pInt;
+ wxString* m_pString;
+ wxArrayInt* m_pArrayInt;
+#if wxUSE_DATETIME
+ wxDateTime* m_pDateTime;
+#endif // wxUSE_DATETIME
- bool* m_pBool;
- int* m_pInt;
- wxString* m_pString;
- wxArrayInt* m_pArrayInt;
+private:
+ DECLARE_CLASS(wxGenericValidator)
+ DECLARE_NO_ASSIGN_CLASS(wxGenericValidator)
};
-#endif // _WX_VALGENH__
+#endif // wxUSE_VALIDATORS
+
+#endif // _WX_VALGENH__