- if (m_statusWidths[i] > 0) sum_of_nonvar += m_statusWidths[i];
- else num_of_var++;
- }
- if (sum_of_nonvar > (width - 20*num_of_var)) do_same_width = TRUE;
- }
- else do_same_width = TRUE;
- if (do_same_width)
- {
- for (i = 0; i < m_nFields; i++)
- {
- fieldWidth = (int)(width/m_nFields);
- fieldPosition = i*fieldWidth;
- if ( i == n )
- break;
- }
- }
- else // no_same_width
- {
- int *tempwidth = new int[m_nFields];
- int temppos = 0;
- for (i = 0; i < m_nFields; i++)
- {
- if (m_statusWidths[i] > 0) tempwidth[i] = m_statusWidths[i];
- else tempwidth[i] = (width - sum_of_nonvar) / num_of_var;
+ wxConstCast(this, wxStatusBarGeneric)->
+ m_widthsAbs = CalculateAbsWidths(width);