X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed2fbeb835854c97d176f8bdfd6f06a84273f5d7..6d7b547184bfdcdf67790755deb0122050b1d728:/src/common/sizer.cpp?ds=sidebyside diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 81c2031157..02ca47f8f8 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -1153,7 +1153,7 @@ wxSize wxGridSizer::CalcMin() { int nrows, ncols; if ( CalcRowsCols(nrows, ncols) == 0 ) - return wxSize(10, 10); + return wxSize(); // Find the max width and height for any component int w = 0; @@ -1278,7 +1278,7 @@ wxSize wxFlexGridSizer::CalcMin() // Number of rows/columns can change as items are added or removed. if ( !CalcRowsCols(nrows, ncols) ) - return wxSize(10, 10); + return wxSize(); m_rowHeights.SetCount(nrows); m_colWidths.SetCount(ncols); @@ -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); } //--------------------------------------------------------------------------- @@ -1592,7 +1610,7 @@ void wxBoxSizer::RecalcSizes() wxSize wxBoxSizer::CalcMin() { if (m_children.GetCount() == 0) - return wxSize(10,10); + return wxSize(); m_stretchable = 0; m_minWidth = 0;