for (idx=0; idx < m_rows; idx++)
height += m_rowHeights[idx] + ( idx == m_rows-1 ? 0 : m_vgap );
- return wxSize(width, height);
+ m_calculatedMinSize = wxSize(width, height);
+ return m_calculatedMinSize;
}
if (m_children.GetCount() == 0)
return;
- // Calculates minsize and populates m_rowHeights and m_colWidths
- wxSize minsz( CalcMin() );
-
wxPoint pt( GetPosition() );
wxSize sz( GetSize() );
m_cols = m_colWidths.GetCount();
int idx, width, height;
- AdjustForGrowables(sz, minsz, m_rows, m_cols);
+ AdjustForGrowables(sz, m_calculatedMinSize, m_rows, m_cols);
// Find the start positions on the window of the rows and columns
wxArrayInt rowpos;
height = 0;
for(idx=row; idx <= endrow; idx++)
- height += m_rowHeights[idx] + m_vgap;
+ height += m_rowHeights[idx];
+ height += (endrow - row) * m_vgap; // add a vgap for every row spanned
width = 0;
for (idx=col; idx <= endcol; idx++)
- width += m_colWidths[idx] + m_hgap;
+ width += m_colWidths[idx];
+ width += (endcol - col) * m_hgap; // add a hgap for every col spanned
SetItemBounds(item, colpos[col], rowpos[row], width, height);