X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/649cfca1ce8728fee1161377f714680de2e00df4..06d4c4d65aa052a7586dd42bf0d558c46699b564:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 92377a0d0a..6038dcf18f 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -17,16 +17,17 @@ #pragma hdrstop #endif +#include "wx/sizer.h" + #ifndef WX_PRECOMP #include "wx/string.h" #include "wx/intl.h" #include "wx/math.h" #include "wx/utils.h" #include "wx/settings.h" + #include "wx/statbox.h" #endif // WX_PRECOMP -#include "wx/sizer.h" -#include "wx/statbox.h" #include "wx/listimpl.cpp" #if WXWIN_COMPATIBILITY_2_4 @@ -1480,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); } //---------------------------------------------------------------------------