Replace a template function with template class to fix VC6 build.
VC6 doesn't like template methods, so use a helper template class instead, hopefully this will finally allow it to compile the test suite again. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
484b442f3a
commit
c7619cf139
@ -53,9 +53,6 @@ private:
|
||||
#endif // TEST_GC
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
template <typename T>
|
||||
void DoTestGetTextExtent(const T& obj);
|
||||
|
||||
void DCGetTextExtent();
|
||||
void WindowGetTextExtent();
|
||||
|
||||
@ -75,28 +72,36 @@ CPPUNIT_TEST_SUITE_REGISTRATION( MeasuringTextTestCase );
|
||||
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MeasuringTextTestCase, "MeasuringTextTestCase" );
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// tests themselves
|
||||
// helper for XXXTextExtent() methods
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
template <typename T>
|
||||
void MeasuringTextTestCase::DoTestGetTextExtent(const T& obj)
|
||||
struct GetTextExtentTester
|
||||
{
|
||||
// Test that getting the height only doesn't crash.
|
||||
int y;
|
||||
obj.GetTextExtent("H", NULL, &y);
|
||||
// Constructor runs a couple of simple tests for GetTextExtent().
|
||||
GetTextExtentTester(const T& obj)
|
||||
{
|
||||
// Test that getting the height only doesn't crash.
|
||||
int y;
|
||||
obj.GetTextExtent("H", NULL, &y);
|
||||
|
||||
CPPUNIT_ASSERT( y > 1 );
|
||||
CPPUNIT_ASSERT( y > 1 );
|
||||
|
||||
wxSize size = obj.GetTextExtent("Hello");
|
||||
CPPUNIT_ASSERT( size.x > 1 );
|
||||
CPPUNIT_ASSERT_EQUAL( y, size.y );
|
||||
}
|
||||
wxSize size = obj.GetTextExtent("Hello");
|
||||
CPPUNIT_ASSERT( size.x > 1 );
|
||||
CPPUNIT_ASSERT_EQUAL( y, size.y );
|
||||
}
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// tests themselves
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void MeasuringTextTestCase::DCGetTextExtent()
|
||||
{
|
||||
wxClientDC dc(wxTheApp->GetTopWindow());
|
||||
|
||||
DoTestGetTextExtent(dc);
|
||||
GetTextExtentTester<wxClientDC> testDC(dc);
|
||||
|
||||
int w;
|
||||
dc.GetMultiLineTextExtent("Good\nbye", &w, NULL);
|
||||
@ -113,12 +118,12 @@ void MeasuringTextTestCase::DCGetTextExtent()
|
||||
// should set the default font in it implicitly but for now just work
|
||||
// around it.
|
||||
psdc.SetFont(*wxNORMAL_FONT);
|
||||
DoTestGetTextExtent(psdc);
|
||||
GetTextExtentTester<wxPostScriptDC> testPS(psdc);
|
||||
#endif
|
||||
|
||||
#if wxUSE_ENH_METAFILE
|
||||
wxEnhMetaFileDC metadc;
|
||||
DoTestGetTextExtent(metadc);
|
||||
GetTextExtentTester<wxEnhMetaFileDC> testMF(metadc);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -126,7 +131,7 @@ void MeasuringTextTestCase::WindowGetTextExtent()
|
||||
{
|
||||
wxWindow* const win = wxTheApp->GetTopWindow();
|
||||
|
||||
DoTestGetTextExtent(*win);
|
||||
GetTextExtentTester<wxWindow> testWin(*win);
|
||||
}
|
||||
|
||||
void MeasuringTextTestCase::GetPartialTextExtent()
|
||||
|
Loading…
Reference in New Issue
Block a user