fixed computation of status bar fields width if the total width is not divisible by the number of fields
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
3febc967a9
commit
68ab959c55
@ -222,12 +222,21 @@ wxArrayInt wxStatusBarBase::CalculateAbsWidths(wxCoord widthTotal) const
|
||||
{
|
||||
if ( m_nFields )
|
||||
{
|
||||
// default: all fields have the same width
|
||||
int nWidth = widthTotal / m_nFields;
|
||||
for ( int i = 0; i < m_nFields; i++ )
|
||||
// Default: all fields have the same width. This is not always
|
||||
// possible to do exactly (if widthTotal is not divisible by
|
||||
// m_nFields) - if that happens, we distribute the extra pixels
|
||||
// among all fields:
|
||||
int widthToUse = widthTotal;
|
||||
|
||||
for ( int i = m_nFields; i > 0; i-- )
|
||||
{
|
||||
widths.Add(nWidth);
|
||||
// divide the unassigned width evently between the
|
||||
// not yet processed fields:
|
||||
int w = widthToUse / i;
|
||||
widths.Add(w);
|
||||
widthToUse -= w;
|
||||
}
|
||||
|
||||
}
|
||||
//else: we're empty anyhow
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user