- int *pWidths = new int[m_nFields];
-
- int nWindowWidth, y;
- GetClientSize(&nWindowWidth, &y);
-
- if ( m_statusWidths == NULL ) {
- // default: all fields have the same width
- int nWidth = nWindowWidth / m_nFields;
- for ( int i = 0; i < m_nFields; i++ )
- pWidths[i] = (i + 1) * nWidth;
- }
- else {
- // -1 doesn't mean the same thing for wxWindows and Win32, recalc
- int nTotalWidth = 0,
- nVarCount = 0,
- i;
- for ( i = 0; i < m_nFields; i++ ) {
- if ( m_statusWidths[i] == -1 )
- nVarCount++;
- else
- nTotalWidth += m_statusWidths[i] + extraWidth;
- }
-
- if ( nVarCount == 0 ) {
- wxFAIL_MSG( _T("at least one field must be of variable width") );