Added a simple unit test for wxWindow::ClientToScreen().

Check that this function works consistently for the TLW and its children and
grand-children.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2012-10-03 00:16:30 +00:00
parent ab45fb147b
commit 44040e5eca

View File

@ -29,6 +29,8 @@
#include "wx/clipbrd.h"
#include "wx/dataobj.h"
#include "asserthelper.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
@ -43,12 +45,14 @@ private:
CPPUNIT_TEST( DisplaySize );
CPPUNIT_TEST( URLDataObject );
CPPUNIT_TEST( ParseFileDialogFilter );
CPPUNIT_TEST( ClientToScreen );
CPPUNIT_TEST( FindWindowAtPoint );
CPPUNIT_TEST_SUITE_END();
void DisplaySize();
void URLDataObject();
void ParseFileDialogFilter();
void ClientToScreen();
void FindWindowAtPoint();
DECLARE_NO_COPY_CLASS(MiscGUIFuncsTestCase)
@ -134,6 +138,39 @@ void MiscGUIFuncsTestCase::ParseFileDialogFilter()
);
}
void MiscGUIFuncsTestCase::ClientToScreen()
{
wxWindow* const tlw = wxTheApp->GetTopWindow();
CPPUNIT_ASSERT( tlw );
wxPanel* const
p1 = new wxPanel(tlw, wxID_ANY, wxPoint(0, 0), wxSize(100, 50));
wxPanel* const
p2 = new wxPanel(tlw, wxID_ANY, wxPoint(0, 50), wxSize(100, 50));
wxWindow* const
b = new wxWindow(p2, wxID_ANY, wxPoint(10, 10), wxSize(30, 10));
// We need this to realize the windows created above under wxGTK.
wxYield();
const wxPoint tlwOrig = tlw->ClientToScreen(wxPoint(0, 0));
CPPUNIT_ASSERT_EQUAL
(
tlwOrig + wxPoint(0, 50),
p2->ClientToScreen(wxPoint(0, 0))
);
CPPUNIT_ASSERT_EQUAL
(
tlwOrig + wxPoint(10, 60),
b->ClientToScreen(wxPoint(0, 0))
);
p1->Destroy();
p2->Destroy();
}
namespace
{