- int m_nFields; // the current number of fields
- int *m_statusWidths; // the width (if !NULL) of the fields
+ // set the widths array to NULL
+ void InitWidths();
+
+ // free the status widths arrays
+ void FreeWidths();
+
+ // reset the widths
+ void ReinitWidths() { FreeWidths(); InitWidths(); }
+
+ // same, for text stacks
+ void InitStacks();
+ void FreeStacks();
+ void ReinitStacks() { FreeStacks(); InitStacks(); }
+
+ // calculate the real field widths for the given total available size
+ wxArrayInt CalculateAbsWidths(wxCoord widthTotal) const;
+
+ // use these functions to access the stacks of field strings
+ wxListString *GetStatusStack(int i) const;
+ wxListString *GetOrCreateStatusStack(int i);
+
+ // the current number of fields
+ int m_nFields;
+
+ // the widths of the fields in pixels if !NULL, all fields have the same
+ // width otherwise
+ int *m_statusWidths;
+
+ // stacks of previous values for PushStatusText/PopStatusText
+ // this is created on demand, use GetStatusStack/GetOrCreateStatusStack
+ wxListString **m_statusTextStacks;
+
+ DECLARE_NO_COPY_CLASS(wxStatusBarBase)