1. MSW message handling simplifications

2. wxDC split into wxDC and wxDCBase
3. Several minor bug fixes, many major new bugs


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-05-13 21:21:04 +00:00
parent 60a040b3bb
commit a23fd0e1d1
50 changed files with 3606 additions and 4719 deletions

View File

@@ -178,7 +178,7 @@ wxWindowBase::~wxWindowBase()
// Just in case we've loaded a top-level window via LoadNativeDialog but
// we weren't a dialog class
wxTopLevelWindows.DeleteObject(this);
wxASSERT_MSG( GetChildren().GetCount() == 0, "children not destroyed" );
if ( m_windowValidator )
@@ -244,15 +244,21 @@ bool wxWindowBase::Close(bool force)
bool wxWindowBase::DestroyChildren()
{
wxWindowList::Node *node;
while ( (node = GetChildren().GetFirst()) )
for ( ;; )
{
// we iterate until the list becomes empty
node = GetChildren().GetFirst();
if ( !node )
break;
wxWindow *child = node->GetData();
wxASSERT_MSG( child, "m_children contains empty nodes" );
wxASSERT_MSG( child, "children list contains empty nodes" );
delete child;
wxASSERT_MSG( !GetChildren().Find(child), "child didn't remove itself using RemoveChild()" );
wxASSERT_MSG( !GetChildren().Find(child),
"child didn't remove itself using RemoveChild()" );
}
return TRUE;