make wxStatusBarPane a 'full class' with getters and protected data; document it; provide more accessors in wxStatusBar (closes #10574)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -37,19 +37,33 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[];
|
||||
|
||||
class 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; }
|
||||
|
||||
int nStyle;
|
||||
int nWidth; // the width maybe negative, indicating a variable-width field
|
||||
// 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 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:
|
||||
|
Reference in New Issue
Block a user