add a unit test checking that events are really propagated as they're supposed to

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-16 16:21:50 +00:00
parent 29de6f400c
commit 1649d2886b
13 changed files with 290 additions and 0 deletions

View File

@@ -92,6 +92,13 @@ public:
virtual int OnRun();
virtual int OnExit();
// used by events propagation test
virtual int FilterEvent(wxEvent& event);
virtual bool ProcessEvent(wxEvent& event);
void SetFilterEventFunc(FilterEventFunc f) { m_filterEventFunc = f; }
void SetProcessEventFunc(ProcessEventFunc f) { m_processEventFunc = f; }
#ifdef __WXDEBUG__
virtual void OnAssertFailure(const wxChar *,
int,
@@ -112,6 +119,10 @@ private:
bool m_detail;
bool m_timing;
vector<string> m_registries;
// event handling hooks
FilterEventFunc m_filterEventFunc;
ProcessEventFunc m_processEventFunc;
};
IMPLEMENT_APP_CONSOLE(TestApp)
@@ -120,6 +131,8 @@ TestApp::TestApp()
: m_list(false),
m_longlist(false)
{
m_filterEventFunc = NULL;
m_processEventFunc = NULL;
}
// Init
@@ -185,6 +198,33 @@ bool TestApp::OnCmdLineParsed(wxCmdLineParser& parser)
return TestAppBase::OnCmdLineParsed(parser);
}
// Event handling
int TestApp::FilterEvent(wxEvent& event)
{
if ( m_filterEventFunc )
return (*m_filterEventFunc)(event);
return TestAppBase::FilterEvent(event);
}
bool TestApp::ProcessEvent(wxEvent& event)
{
if ( m_processEventFunc )
return (*m_processEventFunc)(event);
return TestAppBase::ProcessEvent(event);
}
extern void SetFilterEventFunc(FilterEventFunc func)
{
wxGetApp().SetFilterEventFunc(func);
}
extern void SetProcessEventFunc(ProcessEventFunc func)
{
wxGetApp().SetProcessEventFunc(func);
}
// Run
//
int TestApp::OnRun()