X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/44040e5eca3ea63fc268153df55a88e2a40cad1b..d1c063b90f4d09656f7b9b42dbad8e8f59c752b5:/tests/misc/guifuncs.cpp diff --git a/tests/misc/guifuncs.cpp b/tests/misc/guifuncs.cpp index caa38a5bc8..e63835d92f 100644 --- a/tests/misc/guifuncs.cpp +++ b/tests/misc/guifuncs.cpp @@ -28,6 +28,7 @@ #include "wx/button.h" #include "wx/clipbrd.h" #include "wx/dataobj.h" +#include "wx/panel.h" #include "asserthelper.h" @@ -206,6 +207,13 @@ void MiscGUIFuncsTestCase::FindWindowAtPoint() // assertion messages. parent->SetLabel("parent"); + wxWindow* btn1 = new TestButton(parent, "1", wxPoint(10, 10)); + wxWindow* btn2 = new TestButton(parent, "2", wxPoint(10, 90)); + wxWindow* btn3 = new TestButton(btn2, "3", wxPoint(20, 20)); + + // We need this to realize the windows created above under wxGTK. + wxYield(); + CPPUNIT_ASSERT_EQUAL_MESSAGE ( "No window for a point outside of the window", @@ -213,7 +221,6 @@ void MiscGUIFuncsTestCase::FindWindowAtPoint() GetLabelOfWindowAtPoint(parent, 900, 900) ); - wxWindow* btn1 = new TestButton(parent, "1", wxPoint(10, 10)); CPPUNIT_ASSERT_EQUAL_MESSAGE ( "Point over a child control corresponds to it", @@ -228,7 +235,6 @@ void MiscGUIFuncsTestCase::FindWindowAtPoint() GetLabelOfWindowAtPoint(parent, 5, 5) ); - wxWindow* btn2 = new TestButton(parent, "2", wxPoint(10, 90)); btn2->Disable(); CPPUNIT_ASSERT_EQUAL_MESSAGE ( @@ -246,16 +252,22 @@ void MiscGUIFuncsTestCase::FindWindowAtPoint() ); btn2->Show(); - wxWindow* btn3 = new TestButton(btn2, "3", wxPoint(0, 0)); + CPPUNIT_ASSERT_EQUAL_MESSAGE + ( + "Point over child control corresponds to the child", + btn3->GetLabel(), + GetLabelOfWindowAtPoint(parent, 31, 111) + ); + btn3->Disable(); CPPUNIT_ASSERT_EQUAL_MESSAGE ( - "Point over recursive disabled child controls corresponds to deepest child", + "Point over disabled child controls still corresponds to this child", btn3->GetLabel(), - GetLabelOfWindowAtPoint(parent, 11, 91) + GetLabelOfWindowAtPoint(parent, 31, 111) ); - wxDELETE(btn1); - wxDELETE(btn3); // delete child before parent - wxDELETE(btn2); + btn1->Destroy(); + btn2->Destroy(); + // btn3 was already deleted when its parent was }