+// style flags for fields
+#define wxSB_NORMAL 0x0000
+#define wxSB_FLAT 0x0001
+#define wxSB_RAISED 0x0002
+
+// ----------------------------------------------------------------------------
+// wxStatusBarPane: an helper for wxStatusBar
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxStatusBarPane
+{
+ // only wxStatusBarBase can access our internal members and modify them:
+ friend class WXDLLIMPEXP_FWD_CORE wxStatusBarBase;
+
+public:
+ wxStatusBarPane(int style = wxSB_NORMAL, size_t width = 0)
+ : m_nStyle(style), m_nWidth(width) { m_arrStack.Add(wxEmptyString); }
+
+ int GetWidth() const
+ { return m_nWidth; }
+ int GetStyle() const
+ { return m_nStyle; }
+
+ const wxArrayString& GetStack() const
+ { return m_arrStack; }
+
+ // use wxStatusBar setter functions to modify a wxStatusBarPane
+
+protected:
+ int m_nStyle;
+ int m_nWidth; // the width maybe negative, indicating a variable-width field
+
+ // this is the array of the stacked strings of this pane; note that this
+ // stack does include also the string currently displayed in this pane
+ // as the version stored in the native status bar control is possibly
+ // ellipsized; note that arrStack.Last() is the top of the stack
+ // (i.e. the string shown in the status bar)
+ wxArrayString m_arrStack;
+};
+
+WX_DECLARE_OBJARRAY(wxStatusBarPane, wxStatusBarPaneArray);