Version: 3.3.0
wxValidator Class Reference

#include <wx/validate.h>

+ Inheritance diagram for wxValidator:

Detailed Description

wxValidator is the base class for a family of validator classes that mediate between a class of control, and application data.

A validator has three major roles:

  1. To transfer data from a C++ variable or own storage to and from a control.
  2. To validate data in a control, and show an appropriate error message.
  3. To filter events (such as keystrokes), thereby changing the behaviour of the associated control.

Validators can be plugged into controls dynamically.

To specify a default, "null" validator, use wxDefaultValidator.

For more information, please see wxValidator Overview.

Library:  wxCore
Category:  Validators

Predefined objects/pointers: wxDefaultValidator

See also
wxValidator Overview, wxTextValidator, wxGenericValidator, wxIntegerValidator, wxFloatingPointValidator

Public Member Functions

 wxValidator ()
 Constructor. More...
 
virtual ~wxValidator ()
 Destructor. More...
 
virtual wxObjectClone () const
 All validator classes must implement the Clone() function, which returns an identical copy of itself. More...
 
wxWindowGetWindow () const
 Returns the window associated with the validator. More...
 
virtual void SetWindow (wxWindow *window)
 Associates a window with the validator. More...
 
virtual bool TransferFromWindow ()
 This overridable function is called when the value in the window must be transferred to the validator. More...
 
virtual bool TransferToWindow ()
 This overridable function is called when the value associated with the validator must be transferred to the window. More...
 
virtual bool Validate (wxWindow *parent)
 This overridable function is called when the value in the associated window must be validated. More...
 
- Public Member Functions inherited from wxEvtHandler
 wxEvtHandler ()
 Constructor. More...
 
virtual ~wxEvtHandler ()
 Destructor. More...
 
virtual void QueueEvent (wxEvent *event)
 Queue event for a later processing. More...
 
virtual void AddPendingEvent (const wxEvent &event)
 Post an event to be processed later. More...
 
template<typename T , typename T1 , ... >
void CallAfter (void(T::*method)(T1,...), T1 x1,...)
 Asynchronously call the given method. More...
 
template<typename T >
void CallAfter (const T &functor)
 Asynchronously call the given functor. More...
 
virtual bool ProcessEvent (wxEvent &event)
 Processes an event, searching event tables and calling zero or more suitable event handler function(s). More...
 
bool ProcessEventLocally (wxEvent &event)
 Try to process the event in this handler and all those chained to it. More...
 
bool SafelyProcessEvent (wxEvent &event)
 Processes an event by calling ProcessEvent() and handles any exceptions that occur in the process. More...
 
void ProcessPendingEvents ()
 Processes the pending events previously queued using QueueEvent() or AddPendingEvent(); you must call this function only if you are sure there are pending events for this handler, otherwise a wxCHECK will fail. More...
 
void DeletePendingEvents ()
 Deletes all events queued on this event handler using QueueEvent() or AddPendingEvent(). More...
 
void Connect (int id, int lastId, wxEventType eventType, wxObjectEventFunction function, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 Connects the given function dynamically with the event handler, id and event type. More...
 
void Connect (int id, wxEventType eventType, wxObjectEventFunction function, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 See the Connect(int, int, wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More...
 
void Connect (wxEventType eventType, wxObjectEventFunction function, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 See the Connect(int, int, wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More...
 
bool Disconnect (wxEventType eventType, wxObjectEventFunction function, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 Disconnects the given function dynamically from the event handler, using the specified parameters as search criteria and returning true if a matching function has been found and removed. More...
 
bool Disconnect (int id=wxID_ANY, wxEventType eventType=wxEVT_NULL, wxObjectEventFunction function=nullptr, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 See the Disconnect(wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More...
 
bool Disconnect (int id, int lastId, wxEventType eventType, wxObjectEventFunction function=nullptr, wxObject *userData=nullptr, wxEvtHandler *eventSink=nullptr)
 See the Disconnect(wxEventType, wxObjectEventFunction, wxObject*, wxEvtHandler*) overload for more info. More...
 
template<typename EventTag , typename Functor >
void Bind (const EventTag &eventType, Functor functor, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=nullptr)
 Binds the given function, functor or method dynamically with the event. More...
 
template<typename EventTag , typename Class , typename EventArg , typename EventHandler >
void Bind (const EventTag &eventType, void(Class::*method)(EventArg &), EventHandler *handler, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=nullptr)
 See the Bind<>(const EventTag&, Functor, int, int, wxObject*) overload for more info. More...
 
template<typename EventTag , typename Functor >
bool Unbind (const EventTag &eventType, Functor functor, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=nullptr)
 Unbinds the given function, functor or method dynamically from the event handler, using the specified parameters as search criteria and returning true if a matching function has been found and removed. More...
 
template<typename EventTag , typename Class , typename EventArg , typename EventHandler >
bool Unbind (const EventTag &eventType, void(Class::*method)(EventArg &), EventHandler *handler, int id=wxID_ANY, int lastId=wxID_ANY, wxObject *userData=nullptr)
 See the Unbind<>(const EventTag&, Functor, int, int, wxObject*) overload for more info. More...
 
void * GetClientData () const
 Returns user-supplied client data. More...
 
wxClientDataGetClientObject () const
 Returns a pointer to the user-supplied client data object. More...
 
void SetClientData (void *data)
 Sets user-supplied client data. More...
 
void SetClientObject (wxClientData *data)
 Set the client data object. More...
 
bool GetEvtHandlerEnabled () const
 Returns true if the event handler is enabled, false otherwise. More...
 
wxEvtHandlerGetNextHandler () const
 Returns the pointer to the next handler in the chain. More...
 
wxEvtHandlerGetPreviousHandler () const
 Returns the pointer to the previous handler in the chain. More...
 
void SetEvtHandlerEnabled (bool enabled)
 Enables or disables the event handler. More...
 
virtual void SetNextHandler (wxEvtHandler *handler)
 Sets the pointer to the next handler. More...
 
virtual void SetPreviousHandler (wxEvtHandler *handler)
 Sets the pointer to the previous handler. More...
 
void Unlink ()
 Unlinks this event handler from the chain it's part of (if any); then links the "previous" event handler to the "next" one (so that the chain won't be interrupted). More...
 
bool IsUnlinked () const
 Returns true if the next and the previous handler pointers of this event handler instance are nullptr. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to nullptr the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class. More...
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj. More...
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone. More...
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer. More...
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public. More...
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 
void * operator new (size_t size, const wxString &filename=nullptr, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 

Static Public Member Functions

static void SuppressBellOnError (bool suppress=true)
 This functions switches on or turns off the error sound produced by the validators if an invalid key is pressed. More...
 
static bool IsSilent ()
 Returns if the error sound is currently disabled. More...
 
- Static Public Member Functions inherited from wxEvtHandler
static void AddFilter (wxEventFilter *filter)
 Add an event filter whose FilterEvent() method will be called for each and every event processed by wxWidgets. More...
 
static void RemoveFilter (wxEventFilter *filter)
 Remove a filter previously installed with AddFilter(). More...
 

Additional Inherited Members

- Protected Member Functions inherited from wxEvtHandler
virtual bool TryBefore (wxEvent &event)
 Method called by ProcessEvent() before examining this object event tables. More...
 
virtual bool TryAfter (wxEvent &event)
 Method called by ProcessEvent() as last resort. More...
 
- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object. More...
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
 
- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data. More...
 

Constructor & Destructor Documentation

◆ wxValidator()

wxValidator::wxValidator ( )

Constructor.

◆ ~wxValidator()

virtual wxValidator::~wxValidator ( )
virtual

Destructor.

Member Function Documentation

◆ Clone()

virtual wxObject* wxValidator::Clone ( ) const
virtual

All validator classes must implement the Clone() function, which returns an identical copy of itself.

This is because validators are passed to control constructors as references which must be copied. Unlike objects such as pens and brushes, it does not make sense to have a reference counting scheme to do this cloning because all validators should have separate data.

Returns
This base function returns nullptr.

Reimplemented in wxTextValidator, and wxGenericValidator.

◆ GetWindow()

wxWindow* wxValidator::GetWindow ( ) const

Returns the window associated with the validator.

◆ IsSilent()

static bool wxValidator::IsSilent ( )
static

Returns if the error sound is currently disabled.

◆ SetWindow()

virtual void wxValidator::SetWindow ( wxWindow window)
virtual

Associates a window with the validator.

This function is automatically called by wxWidgets when creating a wxWindow-derived class instance which takes a wxValidator reference. Since wxWidgets 3.1.1, it can be overridden in custom validators in order to perform any one-time initialization or checks of the window when the validator is associated with it.

E.g.

wxTextValidator(wxFILTER_ALPHA, &g_data.m_string));
A text control allows text to be displayed and edited.
Definition: textctrl.h:1580
wxTextValidator validates text controls, providing a variety of filtering behaviours.
Definition: valtext.h:105
@ wxID_ANY
Any id: means that we don't care about the id, whether when installing an event handler or when creat...
Definition: defs.h:590
const wxSize wxDefaultSize
Global instance of a wxSize object initialized to (-1,-1).
Definition: gdicmn.h:1149
const wxPoint wxDefaultPosition
Global instance of a wxPoint initialized with values (-1,-1).
Definition: gdicmn.h:808
wxString wxEmptyString
The global wxString instance of an empty string.
Definition: string.h:2062
@ wxFILTER_ALPHA
Non-alpha characters are filtered out.
Definition: valtext.h:34

will automatically link the wxTextValidator instance with the wxTextCtrl instance and call SetWindow() method on the wxTextValidator object.

◆ SuppressBellOnError()

static void wxValidator::SuppressBellOnError ( bool  suppress = true)
static

This functions switches on or turns off the error sound produced by the validators if an invalid key is pressed.

Since
2.9.1
Parameters
suppressIf true, error sound is not played when a validator detects an error. If false, error sound is enabled.

◆ TransferFromWindow()

virtual bool wxValidator::TransferFromWindow ( )
virtual

This overridable function is called when the value in the window must be transferred to the validator.

Returns
false if there is a problem.

Reimplemented in wxTextValidator, wxNumValidator< T >, and wxGenericValidator.

◆ TransferToWindow()

virtual bool wxValidator::TransferToWindow ( )
virtual

This overridable function is called when the value associated with the validator must be transferred to the window.

Returns
false if there is a problem.

Reimplemented in wxTextValidator, wxNumValidator< T >, and wxGenericValidator.

◆ Validate()

virtual bool wxValidator::Validate ( wxWindow parent)
virtual

This overridable function is called when the value in the associated window must be validated.

Parameters
parentThe parent of the window associated with the validator.
Returns
false if the value in the window is not valid; you may pop up an error dialog.

Reimplemented in wxTextValidator, and wxNumericPropertyValidator.