+ if (item->GetWindow() == window)
+ {
+ item->GetWindow()->SetContainingSizer( NULL );
+ return m_children.DeleteNode( node );
+ }
+ node = node->GetNext();
+ }
+
+ return false;
+}
+
+bool wxSizer::Detach( int index )
+{
+ wxCHECK_MSG( index >= 0 && (size_t)index < m_children.GetCount(),
+ false,
+ _T("Detach index is out of range") );
+
+ wxSizerItemList::Node *node = m_children.Item( index );
+
+ wxCHECK_MSG( node, false, _T("Failed to find child node") );
+
+ wxSizerItem *item = node->GetData();
+
+ if( item->IsSizer() )
+ item->DetachSizer();
+ else if( item->IsWindow() )
+ item->GetWindow()->SetContainingSizer( NULL );
+
+ return m_children.DeleteNode( node );