From c7619cf139403771e602c1b26a104e7773a40932 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 12 Nov 2012 15:50:13 +0000 Subject: [PATCH] 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 --- tests/graphics/measuring.cpp | 39 ++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/tests/graphics/measuring.cpp b/tests/graphics/measuring.cpp index ce59b77434..ae02d27239 100644 --- a/tests/graphics/measuring.cpp +++ b/tests/graphics/measuring.cpp @@ -53,9 +53,6 @@ private: #endif // TEST_GC CPPUNIT_TEST_SUITE_END(); - template - 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 -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 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 testPS(psdc); #endif #if wxUSE_ENH_METAFILE wxEnhMetaFileDC metadc; - DoTestGetTextExtent(metadc); + GetTextExtentTester testMF(metadc); #endif } @@ -126,7 +131,7 @@ void MeasuringTextTestCase::WindowGetTextExtent() { wxWindow* const win = wxTheApp->GetTopWindow(); - DoTestGetTextExtent(*win); + GetTextExtentTester testWin(*win); } void MeasuringTextTestCase::GetPartialTextExtent()