//---------------------------------------------------------------------------
-IMPLEMENT_ABSTRACT_CLASS(wxSizerItem, wxObject)
-IMPLEMENT_ABSTRACT_CLASS(wxSizer, wxObject)
-IMPLEMENT_ABSTRACT_CLASS(wxGridSizer, wxSizer)
-IMPLEMENT_ABSTRACT_CLASS(wxFlexGridSizer, wxGridSizer)
-IMPLEMENT_ABSTRACT_CLASS(wxBoxSizer, wxSizer)
+IMPLEMENT_CLASS(wxSizerItem, wxObject)
+IMPLEMENT_CLASS(wxSizer, wxObject)
+IMPLEMENT_CLASS(wxGridSizer, wxSizer)
+IMPLEMENT_CLASS(wxFlexGridSizer, wxGridSizer)
+IMPLEMENT_CLASS(wxBoxSizer, wxSizer)
#if wxUSE_STATBOX
-IMPLEMENT_ABSTRACT_CLASS(wxStaticBoxSizer, wxBoxSizer)
+IMPLEMENT_CLASS(wxStaticBoxSizer, wxBoxSizer)
#endif
#if wxUSE_NOTEBOOK
-IMPLEMENT_ABSTRACT_CLASS(wxNotebookSizer, wxSizer)
+IMPLEMENT_CLASS(wxNotebookSizer, wxSizer)
#endif
WX_DEFINE_EXPORTED_LIST( wxSizerItemList );
}
-wxSize wxSizerItem::GetSize()
+wxSize wxSizerItem::GetSize() const
{
wxSize ret;
if (IsSizer())
m_sizer->DeleteWindows();
}
-bool wxSizerItem::IsWindow()
+bool wxSizerItem::IsWindow() const
{
return (m_window != NULL);
}
-bool wxSizerItem::IsSizer()
+bool wxSizerItem::IsSizer() const
{
return (m_sizer != NULL);
}
-bool wxSizerItem::IsSpacer()
+bool wxSizerItem::IsSpacer() const
{
return (m_window == NULL) && (m_sizer == NULL);
}
wxCHECK_MSG( node, false, _T("Failed to find child node") );
+ wxSizerItem *item = node->GetData();
+
+ if( item->IsWindow() )
+ item->GetWindow()->SetContainingSizer( NULL );
+
return m_children.DeleteNode( node );
}
wxCHECK_MSG( node, false, _T("Failed to find child node") );
- node->GetData()->DetachSizer();
+ wxSizerItem *item = node->GetData();
+
+ if( item->IsSizer() )
+ item->DetachSizer();
+ else if( item->IsWindow() )
+ item->GetWindow()->SetContainingSizer( NULL );
return m_children.DeleteNode( node );
}
window->GetMaxHeight() );
}
-wxSize wxSizer::GetMaxWindowSize( wxWindow *window )
+wxSize wxSizer::GetMaxWindowSize( wxWindow *window ) const
{
return window->GetMaxSize();
}
return size;
}
-wxSize wxSizer::GetMaxClientSize( wxWindow *window )
+wxSize wxSizer::GetMaxClientSize( wxWindow *window ) const
{
wxSize maxSize( window->GetMaxSize() );
}
}
-bool wxSizer::IsShown( wxWindow *window )
+bool wxSizer::IsShown( wxWindow *window ) const
{
wxSizerItemList::Node *node = m_children.GetFirst();
while (node)
return false;
}
-bool wxSizer::IsShown( wxSizer *sizer )
+bool wxSizer::IsShown( wxSizer *sizer ) const
{
wxSizerItemList::Node *node = m_children.GetFirst();
while (node)
return false;
}
-bool wxSizer::IsShown( size_t index )
+bool wxSizer::IsShown( size_t index ) const
{
wxCHECK_MSG( index < m_children.GetCount(),
false,