X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7619cf139403771e602c1b26a104e7773a40932..e86aa7a62cc8be79ffaeb0d07b70161cb9ea2c74:/tests/graphics/measuring.cpp diff --git a/tests/graphics/measuring.cpp b/tests/graphics/measuring.cpp index ae02d27239..bc83433dbb 100644 --- a/tests/graphics/measuring.cpp +++ b/tests/graphics/measuring.cpp @@ -46,6 +46,7 @@ public: private: CPPUNIT_TEST_SUITE( MeasuringTextTestCase ); CPPUNIT_TEST( DCGetTextExtent ); + CPPUNIT_TEST( LeadingAndDescent ); CPPUNIT_TEST( WindowGetTextExtent ); CPPUNIT_TEST( GetPartialTextExtent ); #ifdef TEST_GC @@ -54,6 +55,7 @@ private: CPPUNIT_TEST_SUITE_END(); void DCGetTextExtent(); + void LeadingAndDescent(); void WindowGetTextExtent(); void GetPartialTextExtent(); @@ -127,6 +129,30 @@ void MeasuringTextTestCase::DCGetTextExtent() #endif } +void MeasuringTextTestCase::LeadingAndDescent() +{ + wxClientDC dc(wxTheApp->GetTopWindow()); + + // Retrieving just the descent should work. + int descent = -17; + dc.GetTextExtent("foo", NULL, NULL, &descent); + CPPUNIT_ASSERT( descent != -17 ); + + // Same for external leading. + int leading = -289; + dc.GetTextExtent("foo", NULL, NULL, NULL, &leading); + CPPUNIT_ASSERT( leading != -289 ); + + // And both should also work for the empty string as they retrieve the + // values valid for the entire font and not just this string. + int descent2, + leading2; + dc.GetTextExtent("", NULL, NULL, &descent2, &leading2); + + CPPUNIT_ASSERT_EQUAL( descent, descent2 ); + CPPUNIT_ASSERT_EQUAL( leading, leading2 ); +} + void MeasuringTextTestCase::WindowGetTextExtent() { wxWindow* const win = wxTheApp->GetTopWindow();