diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h index 8568f88cd4..6b49e345d7 100644 --- a/include/wx/generic/statusbr.h +++ b/include/wx/generic/statusbr.h @@ -44,20 +44,9 @@ public: long style = wxSTB_DEFAULT_STYLE, const wxString& name = wxStatusBarNameStr); - // Create status line - virtual void SetFieldsCount(int number = 1, - const int *widths = (const int *) NULL); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths + // implement base class methods virtual void SetStatusWidths(int n, const int widths_field[]); - - // Get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); virtual int GetBorderX() const { return m_borderX; } @@ -68,8 +57,10 @@ public: int GetFieldFromPoint(const wxPoint& point) const; -protected: // event handlers +protected: + virtual void DoUpdateStatusText(int number); + // event handlers void OnPaint(wxPaintEvent& event); void OnSize(wxSizeEvent& event); diff --git a/include/wx/msw/statusbar.h b/include/wx/msw/statusbar.h index 4d148481b5..14e65d47af 100644 --- a/include/wx/msw/statusbar.h +++ b/include/wx/msw/statusbar.h @@ -40,28 +40,17 @@ public: virtual ~wxStatusBar(); - // a status line can have several (<256) fields numbered from 0 + // implement base class methods virtual void SetFieldsCount(int number = 1, const int *widths = NULL); - - // each field of status line has it's own text - virtual void SetStatusText(const wxString& text, int number = 0); - - // set status line fields' widths virtual void SetStatusWidths(int n, const int widths_field[]); - - // set status line fields' styles virtual void SetStatusStyles(int n, const int styles[]); - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); - - // get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - // get the border size virtual int GetBorderX() const; virtual int GetBorderY() const; + // override some wxWindow virtual methods too virtual bool SetFont(const wxFont& font); virtual WXLRESULT MSWWindowProc(WXUINT nMsg, @@ -69,9 +58,8 @@ public: WXLPARAM lParam); protected: - void CopyFieldsWidth(const int widths[]); - void SetFieldsWidth(); - void UpdateFieldText(int nField); + // implement base class pure virtual method + virtual void DoUpdateStatusText(int number); // override some base class virtuals virtual wxSize DoGetBestSize() const; @@ -81,7 +69,10 @@ protected: virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result); #endif - // used by UpdateFieldText + // implementation of the public SetStatusWidths() + void MSWUpdateFieldsWidths(); + + // used by DoUpdateStatusText() wxClientDC *m_pDC; // the tooltips used when wxSTB_SHOW_TIPS is given diff --git a/include/wx/osx/statusbr.h b/include/wx/osx/statusbr.h index f2630b862a..184bb7a4b2 100644 --- a/include/wx/osx/statusbr.h +++ b/include/wx/osx/statusbr.h @@ -31,13 +31,13 @@ class WXDLLIMPEXP_CORE wxStatusBarMac : public wxStatusBarGeneric virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight); virtual void DrawField(wxDC& dc, int i, int textHeight); - virtual void SetStatusText(const wxString& text, int number = 0); - // Implementation virtual void MacHiliteChanged(); void OnPaint(wxPaintEvent& event); protected: + virtual void DoUpdateStatusText(int number = 0); + DECLARE_EVENT_TABLE() }; diff --git a/include/wx/palmos/statusbr.h b/include/wx/palmos/statusbr.h index 273dbb928b..1a866993cd 100644 --- a/include/wx/palmos/statusbr.h +++ b/include/wx/palmos/statusbr.h @@ -41,26 +41,19 @@ public: // a status line can have several (<256) fields numbered from 0 virtual void SetFieldsCount(int number = 1, const int *widths = NULL); - // each field of status line has it's own text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // set status line fields' widths + // implement base class methods virtual void SetStatusWidths(int n, const int widths_field[]); - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); - - // get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - // get the border size virtual int GetBorderX() const; virtual int GetBorderY() const; void DrawStatusBar(); protected: + virtual void DoUpdateStatusText(int nField); + void CopyFieldsWidth(const int widths[]); void SetFieldsWidth(); /* diff --git a/include/wx/statusbr.h b/include/wx/statusbr.h index 19d2d3a8f5..aaaba6607c 100644 --- a/include/wx/statusbr.h +++ b/include/wx/statusbr.h @@ -52,41 +52,51 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[]; 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); m_bEllipsized=false; } + { m_bEllipsized = false; } - int GetWidth() const - { return m_nWidth; } - int GetStyle() const - { return m_nStyle; } + int GetWidth() const { return m_nWidth; } + int GetStyle() const { return m_nStyle; } + wxString GetText() const { return m_text; } - const wxArrayString& GetStack() const - { return m_arrStack; } - // implementation-only getter: + // implementation-only from now on + // ------------------------------- + bool IsEllipsized() const { return m_bEllipsized; } + void SetIsEllipsized(bool isEllipsized) { m_bEllipsized = isEllipsized; } - // NOTE: there are no setters in wxStatusBarPane; - // use wxStatusBar functions to modify a wxStatusBarPane + void SetWidth(int width) { m_nWidth = width; } + void SetStyle(int style) { m_nStyle = style; } -protected: + // set text, return true if it changed or false if it was already set to + // this value + bool SetText(const wxString& text); + + // save the existing text on top of our stack and make the new text + // current; return true if the text really changed + bool PushText(const wxString& text); + + // restore the message saved by the last call to Push() (unless it was + // changed by an intervening call to SetText()) and return true if we + // really restored anything + bool PopText(); + +private: int m_nStyle; - int m_nWidth; // the width maybe negative, indicating a variable-width field + int m_nWidth; // may be negative, indicating a variable-width field + wxString m_text; - // 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 m_arrStack.Last() is the top of the stack - // (i.e. the string shown in the status bar) + // the array used to keep the previous values of this pane after a + // PushStatusText() call, its top element is the value to restore after the + // next PopStatusText() call while the currently shown value is always in + // m_text wxArrayString m_arrStack; - // was the m_arrStack.Last() string shown in the status bar control ellipsized? + // is the currently shown value shown with ellipsis in the status bar? bool m_bEllipsized; }; @@ -114,15 +124,12 @@ public: // field text // ---------- - // NOTE: even if it is not pure virtual, SetStatusText() must be overloaded by - // the derived classes to update the given text in the native control - virtual void SetStatusText(const wxString& text, int number = 0) - { m_panes[number].GetStack().Last() = text; } - virtual wxString GetStatusText(int number = 0) const - { return m_panes[number].GetStack().Last(); } - const wxArrayString& GetStatusStack(int n) const - { return m_panes[n].GetStack(); } + // just change or get the currently shown text + void SetStatusText(const wxString& text, int number = 0); + wxString GetStatusText(int number = 0) const; + // change the currently shown text to the new one and save the current + // value to be restored by the next call to PopStatusText() void PushStatusText(const wxString& text, int number = 0); void PopStatusText(int number = 0); @@ -183,6 +190,10 @@ public: virtual bool CanBeOutsideClientArea() const { return true; } protected: + // called after the status bar pane text changed and should update its + // display + virtual void DoUpdateStatusText(int number) = 0; + // wxWindow overrides: @@ -193,8 +204,7 @@ protected: "Do not set tooltip(s) manually when using wxSTB_SHOW_TIPS!"); wxWindow::DoSetToolTip(tip); } -#endif - +#endif // wxUSE_TOOLTIPS virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } @@ -203,10 +213,10 @@ protected: // calculate the real field widths for the given total available size wxArrayInt CalculateAbsWidths(wxCoord widthTotal) const; - // an internal utility used to keep track of which panes have labels - // which were last rendered as ellipsized... - void SetEllipsizedFlag(int n, bool ellipsized) - { m_panes[n].m_bEllipsized = ellipsized; } + // should be called to remember if the pane text is currently being show + // ellipsized or not + void SetEllipsizedFlag(int n, bool isEllipsized); + // the array with the pane infos: wxStatusBarPaneArray m_panes; diff --git a/include/wx/univ/statusbr.h b/include/wx/univ/statusbr.h index f9ee1261b1..52dc440acf 100644 --- a/include/wx/univ/statusbr.h +++ b/include/wx/univ/statusbr.h @@ -40,20 +40,13 @@ public: long style = wxSTB_DEFAULT_STYLE, const wxString& name = wxPanelNameStr); - // set field count/widths + // implement base class methods virtual void SetFieldsCount(int number = 1, const int *widths = NULL); virtual void SetStatusWidths(int n, const int widths[]); - // get/set the text of the given field - virtual void SetStatusText(const wxString& text, int number = 0); - - // Get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); - // get the dimensions of the horizontal and vertical borders virtual int GetBorderX() const; virtual int GetBorderY() const; @@ -62,6 +55,8 @@ public: { return const_cast(this); } protected: + virtual void DoUpdateStatusText(int i); + // recalculate the field widths void OnSize(wxSizeEvent& event); @@ -87,9 +82,6 @@ protected: // get the rect for this field without ani side effects (see code) wxRect DoGetFieldRect(int n) const; - // refresh the given field - void RefreshField(int i); - // common part of all ctors void Init(); diff --git a/interface/wx/statusbr.h b/interface/wx/statusbr.h index 4e99cdfecc..10ac248b5b 100644 --- a/interface/wx/statusbr.h +++ b/interface/wx/statusbr.h @@ -35,15 +35,9 @@ public: int GetStyle() const; /** - Returns the stack of strings pushed on 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. - - Also note that GetStack().Last() is the top of the stack (i.e. the string shown - in the status bar). - */ - const wxArrayString& GetStack() const; + Returns the text currently shown in this pane. + */ + wxString GetText() const; }; /** @@ -177,14 +171,6 @@ public: */ virtual wxString GetStatusText(int i = 0) const; - /** - Returns the stack of strings pushed (see PushStatusText()) on the - @a n-th field. - - See wxStatusBarPane::GetStack() for more info. - */ - const wxArrayString& GetStatusStack(int n) const; - /** Returns the width of the @a n-th field. @@ -200,16 +186,21 @@ public: int GetStatusStyle(int n) const; /** - Sets the field text to the top of the stack, and pops the stack of saved - strings. + Restores the text to the value it had before the last call to + PushStatusText(). + + Notice that if SetStatusText() had been called in the meanwhile, + PopStatusText() will not change the text, i.e. it does not override + explicit changes to status text but only restores the saved text if it + hadn't been changed since. @see PushStatusText() */ void PopStatusText(int field = 0); /** - Saves the current field text in a per-field stack, and sets the field text - to the string passed as argument. + Saves the current field text in a per-field stack, and sets the field + text to the string passed as argument. @see PopStatusText() */ @@ -254,9 +245,12 @@ public: /** Sets the status text for the @a i-th field. - The given text will replace the current text. Note that unlike PushStatusText() - this function won't save the current text (and calling PopStatusText() won't - restore it!). + The given text will replace the current text. + + Note that if PushStatusText() had been called before the new text will + also replace the last saved value to make sure that the next call to + PopStatusText() doesn't restore the old value, which was overwritten by + the call to this function. @param text The text to be set. Use an empty string ("") to clear the field. diff --git a/src/common/statbar.cpp b/src/common/statbar.cpp index c2dc115f02..1faad5d0e3 100644 --- a/src/common/statbar.cpp +++ b/src/common/statbar.cpp @@ -34,6 +34,74 @@ const char wxStatusBarNameStr[] = "statusBar"; +// ============================================================================ +// wxStatusBarPane implementation +// ============================================================================ + +bool wxStatusBarPane::SetText(const wxString& text) +{ + if ( text == m_text ) + return false; + + /* + If we have a message to restore on the stack, we update it to + correspond to the current one so that a sequence of calls such as + + 1. SetStatusText("foo") + 2. PushStatusText("bar") + 3. SetStatusText("new foo") + 4. PopStatusText() + + doesn't overwrite the "new foo" which should be shown at the end with + the old value "foo". This would be unexpected and hard to avoid, + especially when PushStatusText() is used internally by wxWidgets + without knowledge of the user program, as it is for showing the menu + and toolbar help strings. + + By updating the top of the stack we ensure that the next call to + PopStatusText() basically becomes a NOP without breaking the balance + between the calls to push and pop as we would have done if we really + called PopStatusText() here. + */ + if ( !m_arrStack.empty() ) + { + m_arrStack.back() = text; + } + + m_text = text; + + return true; +} + +bool wxStatusBarPane::PushText(const wxString& text) +{ + // save the currently shown text + m_arrStack.push_back(m_text); + + // and update the new one if necessary + if ( text == m_text ) + return false; + + m_text = text; + + return true; +} + +bool wxStatusBarPane::PopText() +{ + wxCHECK_MSG( !m_arrStack.empty(), false, "no status message to pop" ); + + const wxString text = m_arrStack.back(); + + m_arrStack.pop_back(); + + if ( text == m_text ) + return false; + + m_text = text; + + return true; +} // ============================================================================ // wxStatusBarBase implementation @@ -104,7 +172,7 @@ void wxStatusBarBase::SetStatusWidths(int WXUNUSED_UNLESS_DEBUG(n), else { for ( size_t i = 0; i < m_panes.GetCount(); i++ ) - m_panes[i].m_nWidth = widths[i]; + m_panes[i].SetWidth(widths[i]); m_bSameWidthForAllPanes = false; } @@ -121,7 +189,7 @@ void wxStatusBarBase::SetStatusStyles(int WXUNUSED_UNLESS_DEBUG(n), wxASSERT_MSG( (size_t)n == m_panes.GetCount(), wxT("field number mismatch") ); for ( size_t i = 0; i < m_panes.GetCount(); i++ ) - m_panes[i].m_nStyle = styles[i]; + m_panes[i].SetStyle(styles[i]); // update the display after the widths changed Refresh(); @@ -186,48 +254,54 @@ wxArrayInt wxStatusBarBase::CalculateAbsWidths(wxCoord widthTotal) const } // ---------------------------------------------------------------------------- -// status text stacks +// setting/getting status text +// ---------------------------------------------------------------------------- + +void wxStatusBarBase::SetStatusText(const wxString& text, int number) +{ + wxCHECK_RET( (unsigned)number < m_panes.size(), + "invalid status bar field index" ); + + if ( m_panes[number].SetText(text) ) + DoUpdateStatusText(number); +} + +wxString wxStatusBarBase::GetStatusText(int number) const +{ + wxCHECK_MSG( (unsigned)number < m_panes.size(), wxString(), + "invalid status bar field index" ); + + return m_panes[number].GetText(); +} + +void wxStatusBarBase::SetEllipsizedFlag(int number, bool isEllipsized) +{ + wxCHECK_RET( (unsigned)number < m_panes.size(), + "invalid status bar field index" ); + + m_panes[number].SetIsEllipsized(isEllipsized); +} + +// ---------------------------------------------------------------------------- +// pushing/popping status text // ---------------------------------------------------------------------------- void wxStatusBarBase::PushStatusText(const wxString& text, int number) { - // save the new text (in non-ellipsized form) in the stack - m_panes[number].m_arrStack.push_back(text); + wxCHECK_RET( (unsigned)number < m_panes.size(), + "invalid status bar field index" ); - SetStatusText(text, number); - // update current status text (which will possibly be ellipsized) - // also in the native control - - // SetStatusText() typically has an optimization built-in to avoid flickering - // which won't refresh the status bar pane if the current top of the stack - // is identic to the text passed to that function. - // Since this optimization however cannot detect push/pop operations on the stack - // we need to explicitely refresh the status bar pane ourselves: - wxRect rect; - GetFieldRect(number, rect); - Refresh(true, &rect); - Update(); + if ( m_panes[number].PushText(text) ) + DoUpdateStatusText(number); } void wxStatusBarBase::PopStatusText(int number) { - wxASSERT_MSG(m_panes[number].m_arrStack.GetCount() > 1, - "can't pop any further string"); + wxCHECK_RET( (unsigned)number < m_panes.size(), + "invalid status bar field index" ); - // the top of the stack is the status text currently shown in the native control; - // remove it - m_panes[number].m_arrStack.pop_back(); - - // restore the previous status text in the native control - const wxString& text = m_panes[number].m_arrStack.back(); - SetStatusText(text, number); - - // see comment in wxStatusBarBase::PushStatusText about why we need to explicitely - // refresh the status bar pane - wxRect rect; - GetFieldRect(number, rect); - Refresh(true, &rect); - Update(); + if ( m_panes[number].PopText() ) + DoUpdateStatusText(number); } #endif // wxUSE_STATUSBAR diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index e41f988488..3169ef6612 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -160,35 +160,17 @@ wxSize wxStatusBarGeneric::DoGetBestSize() const return wxSize(width, height); } -void wxStatusBarGeneric::SetFieldsCount(int number, const int *widths) +void wxStatusBarGeneric::DoUpdateStatusText(int number) { - wxASSERT_MSG( number >= 0, wxT("negative number of fields in wxStatusBar?") ); + wxRect rect; + GetFieldRect(number, rect); - // this will result in a call to SetStatusWidths() and thus an update to our - // m_widthsAbs cache - wxStatusBarBase::SetFieldsCount(number, widths); -} + Refresh(true, &rect); -void wxStatusBarGeneric::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( (number >= 0) && ((size_t)number < m_panes.GetCount()), - wxT("invalid status bar field index") ); - - wxString oldText = GetStatusText(number); - if (oldText != text) - { - wxStatusBarBase::SetStatusText(text, number); - - wxRect rect; - GetFieldRect(number, rect); - - Refresh(true, &rect); - - // it's common to show some text in the status bar before starting a - // relatively lengthy operation, ensure that the text is shown to the - // user immediately and not after the lengthy operation end - Update(); - } + // it's common to show some text in the status bar before starting a + // relatively lengthy operation, ensure that the text is shown to the + // user immediately and not after the lengthy operation end + Update(); } void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[]) diff --git a/src/msw/statusbar.cpp b/src/msw/statusbar.cpp index 72da7d9980..8b58819757 100644 --- a/src/msw/statusbar.cpp +++ b/src/msw/statusbar.cpp @@ -126,7 +126,7 @@ bool wxStatusBar::Create(wxWindow *parent, SetFieldsCount(1); SubclassWin(m_hWnd); - // cache the DC instance used by UpdateFieldText: + // cache the DC instance used by DoUpdateStatusText: // NOTE: create the DC before calling InheritAttributes() since // it may result in a call to our SetFont() m_pDC = new wxClientDC(this); @@ -182,7 +182,7 @@ void wxStatusBar::SetFieldsCount(int nFields, const int *widths) wxStatusBarBase::SetFieldsCount(nFields, widths); - SetFieldsWidth(); + MSWUpdateFieldsWidths(); // keep in synch also our m_tooltips array @@ -204,10 +204,10 @@ void wxStatusBar::SetStatusWidths(int n, const int widths[]) { wxStatusBarBase::SetStatusWidths(n, widths); - SetFieldsWidth(); + MSWUpdateFieldsWidths(); } -void wxStatusBar::SetFieldsWidth() +void wxStatusBar::MSWUpdateFieldsWidths() { if ( m_panes.IsEmpty() ) return; @@ -243,26 +243,10 @@ void wxStatusBar::SetFieldsWidth() delete [] pWidths; - // FIXME: we may want to call UpdateFieldText() here since we may need to (de)ellipsize status texts + // FIXME: we may want to call DoUpdateStatusText() here since we may need to (de)ellipsize status texts } -void wxStatusBar::SetStatusText(const wxString& strText, int nField) -{ - wxCHECK_RET( (nField >= 0) && ((size_t)nField < m_panes.GetCount()), - "invalid statusbar field index" ); - - if ( strText == GetStatusText(nField) ) - { - // don't call StatusBar_SetText() to avoid flicker - return; - } - - wxStatusBarBase::SetStatusText(strText, nField); - - UpdateFieldText(nField); -} - -void wxStatusBar::UpdateFieldText(int nField) +void wxStatusBar::DoUpdateStatusText(int nField) { if (!m_pDC) return; @@ -482,7 +466,7 @@ void wxStatusBar::DoMoveWindow(int x, int y, int width, int height) } // adjust fields widths to the new size - SetFieldsWidth(); + MSWUpdateFieldsWidths(); // we have to trigger wxSizeEvent if there are children window in status // bar because GetFieldRect returned incorrect (not updated) values up to @@ -580,7 +564,7 @@ wxStatusBar::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) if ( nMsg == WM_SIZE && needsEllipsization ) { for (int i=0; i= 0) && ((size_t)number < m_panes.GetCount()), - wxT("invalid status bar field index") ); - - if ( GetStatusText(number) == text ) - return; - - wxStatusBarGeneric::SetStatusText(text, number); - wxRect rect; GetFieldRect(number, rect); diff --git a/src/palmos/statbrpalm.cpp b/src/palmos/statbrpalm.cpp index 8c0b2f03cb..ff3ea0af13 100644 --- a/src/palmos/statbrpalm.cpp +++ b/src/palmos/statbrpalm.cpp @@ -127,24 +127,12 @@ void wxStatusBarPalm::SetFieldsWidth() DeleteStatusBuffer(); } -void wxStatusBarPalm::SetStatusText(const wxString& strText, int nField) +void wxStatusBarPalm::DoUpdateStatusText(int nField) { - wxCHECK_RET( (nField >= 0) && (nField < m_nFields), - wxT("invalid statusbar field index") ); - SetStatusBufferText(strText,nField); DrawStatusBar(); } -wxString wxStatusBarPalm::GetStatusText(int nField) const -{ - wxCHECK_MSG( (nField >= 0) && (nField < m_nFields), wxEmptyString, - wxT("invalid statusbar field index") ); - - wxString text; - return text; -} - void wxStatusBarPalm::DrawStatusBar() { #if 0 diff --git a/src/univ/statusbr.cpp b/src/univ/statusbr.cpp index 4a1d7203ed..ac0dbc3fa9 100644 --- a/src/univ/statusbr.cpp +++ b/src/univ/statusbr.cpp @@ -141,7 +141,7 @@ void wxStatusBarUniv::DoDraw(wxControlRenderer *renderer) } } -void wxStatusBarUniv::RefreshField(int i) +void wxStatusBarUniv::DoUpdateStatusText(int i) { wxRect rect; if ( GetFieldRect(i, rect) ) @@ -150,27 +150,6 @@ void wxStatusBarUniv::RefreshField(int i) } } -// ---------------------------------------------------------------------------- -// fields text -// ---------------------------------------------------------------------------- - -void wxStatusBarUniv::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( number >= 0 && (size_t)number < m_panes.GetCount(), - wxT("invalid status bar field index in SetStatusText()") ); - - if ( text == GetStatusText(number) ) - { - // nothing changed - return; - } - - wxStatusBarBase::SetStatusText(text, number); - - RefreshField(number); -} - - // ---------------------------------------------------------------------------- // fields count/widths // ----------------------------------------------------------------------------