X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0cd159592e4d9c979aa5a626627cdd9158fcc34f..9b49405777342458dc1666001865eef7309b6c30:/include/wx/statusbr.h diff --git a/include/wx/statusbr.h b/include/wx/statusbr.h index 66ec068c96..3dd21052a1 100644 --- a/include/wx/statusbr.h +++ b/include/wx/statusbr.h @@ -35,21 +35,35 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[]; // wxStatusBarPane: an helper for wxStatusBar // ---------------------------------------------------------------------------- -class wxStatusBarPane +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) - : nStyle(style), nWidth(width) { arrStack.Add(wxEmptyString); } + : 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 - int nStyle; - int nWidth; // the width maybe negative, indicating a variable-width field +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 arrStack; + wxArrayString m_arrStack; }; WX_DECLARE_OBJARRAY(wxStatusBarPane, wxStatusBarPaneArray); @@ -77,9 +91,11 @@ public: // ---------- virtual void SetStatusText(const wxString& text, int number = 0) - { m_panes[number].arrStack.Last() = text; } + { m_panes[number].GetStack().Last() = text; } virtual wxString GetStatusText(int number = 0) const - { return m_panes[number].arrStack.Last(); } + { return m_panes[number].GetStack().Last(); } + const wxArrayString& GetStatusStack(int n) const + { return m_panes[n].GetStack(); } void PushStatusText(const wxString& text, int number = 0); void PopStatusText(int number = 0); @@ -94,6 +110,9 @@ public: // negative width according to the abs value of the width (field with width // -2 grows twice as much as one with width -1 &c) virtual void SetStatusWidths(int n, const int widths[]); + + int GetStatusWidth(int n) const + { return m_panes[n].GetWidth(); } // field styles // ------------ @@ -103,6 +122,9 @@ public: // appears flat or wxSB_POPOUT to make the field appear raised. // Setting field styles only works on wxMSW virtual void SetStatusStyles(int n, const int styles[]); + + int GetStatusStyle(int n) const + { return m_panes[n].GetStyle(); } // geometry // -------- @@ -117,9 +139,18 @@ public: virtual int GetBorderX() const = 0; virtual int GetBorderY() const = 0; + // miscellaneous + // ------------- + + const wxStatusBarPane& GetField(int n) const + { return m_panes[n]; } + + // wxWindow overrides: + // don't want status bars to accept the focus at all virtual bool AcceptsFocus() const { return false; } + // the client size of a toplevel window doesn't include the status bar virtual bool CanBeOutsideClientArea() const { return true; } protected: