The gaps should *not* be included in the space given to the item, and

so should also not be accounted for in the alignment adjustmanets


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-06-30 23:43:02 +00:00
parent 17b7cac5e8
commit 559b747dc0
2 changed files with 9 additions and 7 deletions

View File

@@ -547,11 +547,13 @@ void wxGridBagSizer::RecalcSizes()
height = 0; height = 0;
for(idx=row; idx <= endrow; idx++) 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; width = 0;
for (idx=col; idx <= endcol; idx++) 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); SetItemBounds(item, colpos[col], rowpos[row], width, height);

View File

@@ -1044,7 +1044,7 @@ wxSize wxGridSizer::CalcMin()
void wxGridSizer::SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ) void wxGridSizer::SetItemBounds( wxSizerItem *item, int x, int y, int w, int h )
{ {
wxPoint pt( x,y ); wxPoint pt( x,y );
wxSize sz( item->CalcMin() ); wxSize sz( item->GetMinSizeWithBorder() );
int flag = item->GetFlag(); int flag = item->GetFlag();
if ((flag & wxEXPAND) || (flag & wxSHAPED)) if ((flag & wxEXPAND) || (flag & wxSHAPED))
@@ -1055,20 +1055,20 @@ void wxGridSizer::SetItemBounds( wxSizerItem *item, int x, int y, int w, int h )
{ {
if (flag & wxALIGN_CENTER_HORIZONTAL) if (flag & wxALIGN_CENTER_HORIZONTAL)
{ {
pt.x = x + (w - sz.x - m_hgap) / 2; pt.x = x + (w - sz.x) / 2;
} }
else if (flag & wxALIGN_RIGHT) else if (flag & wxALIGN_RIGHT)
{ {
pt.x = x + (w - sz.x - m_hgap); pt.x = x + (w - sz.x);
} }
if (flag & wxALIGN_CENTER_VERTICAL) if (flag & wxALIGN_CENTER_VERTICAL)
{ {
pt.y = y + (h - sz.y - m_vgap) / 2; pt.y = y + (h - sz.y) / 2;
} }
else if (flag & wxALIGN_BOTTOM) else if (flag & wxALIGN_BOTTOM)
{ {
pt.y = y + (h - sz.y - m_vgap); pt.y = y + (h - sz.y);
} }
} }