X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6a079bc1f092f865c9fd5ef37f207ab5e525c1b1..8c2654ce3d3db6e87cc0a33f3f38eb2f5bf95134:/src/common/gbsizer.cpp diff --git a/src/common/gbsizer.cpp b/src/common/gbsizer.cpp index 7d1faa5fe4..3a14dd4aa7 100644 --- a/src/common/gbsizer.cpp +++ b/src/common/gbsizer.cpp @@ -187,7 +187,7 @@ wxSizerItem* wxGridBagSizer::Add( wxWindow *window, else { delete item; - return (wxSizerItem*)NULL; + return NULL; } } @@ -201,7 +201,7 @@ wxSizerItem* wxGridBagSizer::Add( wxSizer *sizer, else { delete item; - return (wxSizerItem*)NULL; + return NULL; } } @@ -215,7 +215,7 @@ wxSizerItem* wxGridBagSizer::Add( int width, int height, else { delete item; - return (wxSizerItem*)NULL; + return NULL; } } @@ -228,6 +228,18 @@ wxSizerItem* wxGridBagSizer::Add( wxGBSizerItem *item ) if ( item->GetWindow() ) item->GetWindow()->SetContainingSizer( this ); + // extend the number of rows/columns of the underlying wxFlexGridSizer if + // necessary + int row, col; + item->GetEndPos(row, col); + row++; + col++; + + if ( row > GetRows() ) + SetRows(row); + if ( col > GetCols() ) + SetCols(col); + return item; } @@ -572,15 +584,15 @@ void wxGridBagSizer::AdjustForOverflow() { int row, col; - for (row=0; rowIsShown() ) continue; int endrow, endcol; @@ -590,7 +602,7 @@ void wxGridBagSizer::AdjustForOverflow() // just look at the whole item height if ( item->GetPos() == pos && endrow == row ) { - int itemHeight = item->GetSize().GetHeight(); + int itemHeight = item->CalcMin().GetHeight(); rowExtra = wxMin(rowExtra, rowHeight - itemHeight); continue; } @@ -599,7 +611,7 @@ void wxGridBagSizer::AdjustForOverflow() if ( endrow == row ) { // first deduct the portions of the item that are on prior rows - int itemHeight = item->GetSize().GetHeight(); + int itemHeight = item->CalcMin().GetHeight(); for (int r=item->GetPos().GetRow(); rIsShown() ) continue; int endrow, endcol; @@ -631,14 +643,14 @@ void wxGridBagSizer::AdjustForOverflow() if ( item->GetPos() == pos && endcol == col ) { - int itemWidth = item->GetSize().GetWidth(); + int itemWidth = item->CalcMin().GetWidth(); colExtra = wxMin(colExtra, colWidth - itemWidth); continue; } if ( endcol == col ) { - int itemWidth = item->GetSize().GetWidth(); + int itemWidth = item->CalcMin().GetWidth(); for (int c=item->GetPos().GetCol(); c