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:
@@ -547,11 +547,13 @@ void wxGridBagSizer::RecalcSizes()
|
||||
|
||||
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);
|
||||
|
||||
|
@@ -1044,7 +1044,7 @@ wxSize wxGridSizer::CalcMin()
|
||||
void wxGridSizer::SetItemBounds( wxSizerItem *item, int x, int y, int w, int h )
|
||||
{
|
||||
wxPoint pt( x,y );
|
||||
wxSize sz( item->CalcMin() );
|
||||
wxSize sz( item->GetMinSizeWithBorder() );
|
||||
int flag = item->GetFlag();
|
||||
|
||||
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)
|
||||
{
|
||||
pt.x = x + (w - sz.x - m_hgap) / 2;
|
||||
pt.x = x + (w - sz.x) / 2;
|
||||
}
|
||||
else if (flag & wxALIGN_RIGHT)
|
||||
{
|
||||
pt.x = x + (w - sz.x - m_hgap);
|
||||
pt.x = x + (w - sz.x);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
pt.y = y + (h - sz.y - m_vgap);
|
||||
pt.y = y + (h - sz.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user