From ca243008b3e8f951f36e5fc5fe94c68475e3d629 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 26 Jun 2006 00:11:59 +0000 Subject: [PATCH] remove the item from proportions arrays as well as from m_growableCols/Rows in wxFlexGridSizer::RemoveGrowableCol/Row(); also added an assert in case the item to remove is not growable git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/sizer.cpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 81c2031157..6038dcf18f 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -1481,20 +1481,38 @@ void wxFlexGridSizer::AddGrowableRow( size_t idx, int proportion ) m_growableRowsProportions.Add( proportion ); } -void wxFlexGridSizer::RemoveGrowableRow( size_t idx ) -{ - m_growableRows.Remove( idx ); -} - void wxFlexGridSizer::AddGrowableCol( size_t idx, int proportion ) { m_growableCols.Add( idx ); m_growableColsProportions.Add( proportion ); } +// helper function for RemoveGrowableCol/Row() +static void +DoRemoveFromArrays(size_t idx, wxArrayInt& items, wxArrayInt& proportions) +{ + const size_t count = items.size(); + for ( size_t n = 0; n < count; n++ ) + { + if ( (size_t)items[n] == idx ) + { + items.RemoveAt(n); + proportions.RemoveAt(n); + return; + } + } + + wxFAIL_MSG( _T("column/row is already not growable") ); +} + void wxFlexGridSizer::RemoveGrowableCol( size_t idx ) { - m_growableCols.Remove( idx ); + DoRemoveFromArrays(idx, m_growableCols, m_growableColsProportions); +} + +void wxFlexGridSizer::RemoveGrowableRow( size_t idx ) +{ + DoRemoveFromArrays(idx, m_growableRows, m_growableRowsProportions); } //--------------------------------------------------------------------------- -- 2.47.2