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:
@@ -222,12 +222,21 @@ wxArrayInt wxStatusBarBase::CalculateAbsWidths(wxCoord widthTotal) const
|
|||||||
{
|
{
|
||||||
if ( m_nFields )
|
if ( m_nFields )
|
||||||
{
|
{
|
||||||
// default: all fields have the same width
|
// Default: all fields have the same width. This is not always
|
||||||
int nWidth = widthTotal / m_nFields;
|
// possible to do exactly (if widthTotal is not divisible by
|
||||||
for ( int i = 0; i < m_nFields; i++ )
|
// 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
|
//else: we're empty anyhow
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user