X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/34138703c3997ce676a1e713d9ff9eb020640da7..1ccabb813a537c2541f88eb39a83f964d2d42f00:/include/wx/validate.h diff --git a/include/wx/validate.h b/include/wx/validate.h index deb5d79856..0cd221045c 100644 --- a/include/wx/validate.h +++ b/include/wx/validate.h @@ -6,19 +6,29 @@ // Created: 29/01/98 // RCS-ID: $Id$ // Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_VALIDATEH__ #define _WX_VALIDATEH__ #ifdef __GNUG__ -#pragma interface "validate.h" + #pragma interface "validate.h" #endif +#if defined(wxUSE_VALIDATORS) && !wxUSE_VALIDATORS + // wxWindows is compiled without support for wxValidator, but we still + // want to be able to pass wxDefaultValidator to the functions which take + // a wxValidator parameter to avoid using "#if wxUSE_VALIDATORS" + // everywhere + class WXDLLEXPORT wxValidator; + #define wxDefaultValidator (*((wxValidator *)NULL)) +#else // wxUSE_VALIDATORS + #include "wx/event.h" class WXDLLEXPORT wxWindow; +class WXDLLEXPORT wxWindowBase; /* A validator has up to three purposes: @@ -30,41 +40,54 @@ class WXDLLEXPORT wxWindow; to intercept e.g. OnChar. Note that wxValidator and derived classes use reference counting. - */ +*/ -class WXDLLEXPORT wxValidator: public wxEvtHandler +class WXDLLEXPORT wxValidator : public wxEvtHandler { -DECLARE_DYNAMIC_CLASS(wxValidator) public: - wxValidator(void); - ~wxValidator(); + wxValidator(); + virtual ~wxValidator(); + + // 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 (wxValidator *)NULL; } + bool Copy(const wxValidator& val) + { m_validatorWindow = val.m_validatorWindow; return TRUE; } - // 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 wxValidator *Clone(void) const { return NULL; } - inline bool Copy(const wxValidator& val) { m_validatorWindow = val.m_validatorWindow; return TRUE; } + // 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 FALSE; }; - // 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 FALSE; }; + // Called to transfer data to the window + virtual bool TransferToWindow() { return FALSE; } - // Called to transfer data to the window - virtual bool TransferToWindow(void) { return FALSE; } + // Called to transfer data from the window + virtual bool TransferFromWindow() { return FALSE; }; - // Called to transfer data from the window - virtual bool TransferFromWindow(void) { return FALSE; }; + // accessors + wxWindow *GetWindow() const { return (wxWindow *)m_validatorWindow; } + void SetWindow(wxWindowBase *win) { m_validatorWindow = win; } - // ACCESSORS - inline wxWindow *GetWindow(void) const { return m_validatorWindow; } - inline void SetWindow(wxWindow *win) { m_validatorWindow = win; } + // validators beep by default if invalid key is pressed, these functions + // allow to change it + static bool IsSilent() { return ms_isSilent; } + static void SetBellOnError(bool doIt = TRUE) { ms_isSilent = doIt; } protected: - wxWindow *m_validatorWindow; + wxWindowBase *m_validatorWindow; + +private: + static bool ms_isSilent; + + DECLARE_DYNAMIC_CLASS(wxValidator) }; WXDLLEXPORT_DATA(extern const wxValidator) wxDefaultValidator; +#endif // wxUSE_VALIDATORS + #endif // _WX_VALIDATEH__