X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..f47db8f0676be7807693de8bc38c4851c37f56a2:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 3686b3978a..410aac2bd8 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -232,6 +232,15 @@ void wxSizerItem::SetDimension( wxPoint pos, wxSize size ) m_size = size; } +void wxSizerItem::DeleteWindows() +{ + if (m_window) + m_window->Destroy(); + + if (m_sizer) + m_sizer->DeleteWindows(); +} + bool wxSizerItem::IsWindow() { return (m_window != NULL); @@ -355,6 +364,25 @@ bool wxSizer::Remove( int pos ) return TRUE; } +void wxSizer::Clear( bool delete_windows ) +{ + if (delete_windows) + DeleteWindows(); + + m_children.Clear(); +} + +void wxSizer::DeleteWindows() +{ + wxNode *node = m_children.First(); + while (node) + { + wxSizerItem *item = (wxSizerItem*)node->Data(); + item->DeleteWindows(); + node = node->Next(); + } +} + void wxSizer::Fit( wxWindow *window ) { wxSize size; @@ -383,6 +411,9 @@ wxSize wxSizer::GetMaxWindowSize( wxWindow *WXUNUSED(window) ) wxRect rect = wxGetClientDisplayRect(); wxSize sizeMax (rect.width,rect.height); + // Sorry, but this bit is wrong -- it makes a window that should just be + // able to fit onto the screen, not fit on the screen. -- JACS +#if 0 // Make the max size a bit smaller than the visible portion of // the screen. A window which takes the entire screen doesn't // look very nice either @@ -391,6 +422,7 @@ wxSize wxSizer::GetMaxWindowSize( wxWindow *WXUNUSED(window) ) sizeMax.y *= 9; sizeMax.y /= 10; +#endif return sizeMax; }