git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        testableframe.cpp
 | 
						|
// Purpose:     An improved wxFrame for unit-testing
 | 
						|
// Author:      Steven Lamerton
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) 2010 Steven Lamerton
 | 
						|
// Licence:     wxWindows licence
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
// For compilers that support precompilation, includes "wx/wx.h".
 | 
						|
#include "testprec.h"
 | 
						|
 | 
						|
#ifdef __BORLANDC__
 | 
						|
    #pragma hdrstop
 | 
						|
#endif
 | 
						|
 | 
						|
#include "wx/app.h"
 | 
						|
#include "testableframe.h"
 | 
						|
 | 
						|
wxTestableFrame::wxTestableFrame() : wxFrame(NULL, wxID_ANY, "Test Frame")
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
void wxTestableFrame::OnEvent(wxEvent& evt)
 | 
						|
{
 | 
						|
    m_count[evt.GetEventType()]++;
 | 
						|
 | 
						|
    if(! evt.IsCommandEvent() )
 | 
						|
        evt.Skip();
 | 
						|
}
 | 
						|
 | 
						|
int wxTestableFrame::GetEventCount(wxEventType type)
 | 
						|
{
 | 
						|
    return m_count[type];
 | 
						|
}
 | 
						|
 | 
						|
void wxTestableFrame::ClearEventCount(wxEventType type)
 | 
						|
{
 | 
						|
    m_count[type] = 0;
 | 
						|
}
 | 
						|
 | 
						|
EventCounter::EventCounter(wxWindow* win, wxEventType type) : m_type(type),
 | 
						|
                                                              m_win(win)
 | 
						|
 | 
						|
{
 | 
						|
    m_frame = wxStaticCast(wxTheApp->GetTopWindow(), wxTestableFrame);
 | 
						|
 | 
						|
    m_win->Connect(m_type, wxEventHandler(wxTestableFrame::OnEvent),
 | 
						|
                   NULL, m_frame);
 | 
						|
}
 | 
						|
 | 
						|
EventCounter::~EventCounter()
 | 
						|
{
 | 
						|
    m_win->Disconnect(m_type, wxEventHandler(wxTestableFrame::OnEvent),
 | 
						|
                      NULL, m_frame);
 | 
						|
 | 
						|
    //This stops spurious counts from previous tests
 | 
						|
    Clear();
 | 
						|
 | 
						|
    m_frame = NULL;
 | 
						|
    m_win = NULL;
 | 
						|
}
 |