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;
|
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);
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user