- const wxEventTable *table = GetEventTable();
-
-#if wxUSE_GUI && wxUSE_VALIDATORS
- // Try the associated validator first, if this is a window.
- // Problem: if the event handler of the window has been replaced,
- // this wxEvtHandler may no longer be a window.
- // Therefore validators won't be processed if the handler
- // has been replaced with SetEventHandler.
- // THIS CAN BE CURED if PushEventHandler is used instead of
- // SetEventHandler, and then processing will be passed down the
- // chain of event handlers.
- if (m_isWindow)
- {
- wxWindow *win = (wxWindow *)this;
-
- // Can only use the validator of the window which
- // is receiving the event
- if ( win == event.GetEventObject() )
- {
- wxValidator *validator = win->GetValidator();
- if ( validator && validator->ProcessEvent(event) )
- {
- return TRUE;
- }
- }
- }
-#endif
-
- // Search upwards through the inheritance hierarchy
- while (table)
- {
- if ( SearchEventTable((wxEventTable&)*table, event) )
- return TRUE;
- table = table->baseTable;
- }