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:
@@ -29,6 +29,8 @@
|
|||||||
#include "wx/clipbrd.h"
|
#include "wx/clipbrd.h"
|
||||||
#include "wx/dataobj.h"
|
#include "wx/dataobj.h"
|
||||||
|
|
||||||
|
#include "asserthelper.h"
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// test class
|
// test class
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -43,12 +45,14 @@ private:
|
|||||||
CPPUNIT_TEST( DisplaySize );
|
CPPUNIT_TEST( DisplaySize );
|
||||||
CPPUNIT_TEST( URLDataObject );
|
CPPUNIT_TEST( URLDataObject );
|
||||||
CPPUNIT_TEST( ParseFileDialogFilter );
|
CPPUNIT_TEST( ParseFileDialogFilter );
|
||||||
|
CPPUNIT_TEST( ClientToScreen );
|
||||||
CPPUNIT_TEST( FindWindowAtPoint );
|
CPPUNIT_TEST( FindWindowAtPoint );
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
void DisplaySize();
|
void DisplaySize();
|
||||||
void URLDataObject();
|
void URLDataObject();
|
||||||
void ParseFileDialogFilter();
|
void ParseFileDialogFilter();
|
||||||
|
void ClientToScreen();
|
||||||
void FindWindowAtPoint();
|
void FindWindowAtPoint();
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(MiscGUIFuncsTestCase)
|
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
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user