From: Vadim Zeitlin Date: Fri, 2 Nov 2001 17:38:40 +0000 (+0000) Subject: more efficient SetStatusText for the generic wxStatusBar (patch 469976) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f8a4fa4c990bb9f49e403c4432d02c308545747a more efficient SetStatusText for the generic wxStatusBar (patch 469976) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index 16e9246509..d8fb78c69d 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -127,7 +127,16 @@ void wxStatusBarGeneric::SetStatusText(const wxString& text, int number) m_statusStrings[number] = text; - Refresh(); + wxRect rect; + GetFieldRect(number, rect); + wxClientDC dc(this); + + dc.SetBackground( wxBrush(GetBackgroundColour(), wxSOLID) ); + dc.SetClippingRegion( rect.x+1, rect.y+1, rect.width-1, rect.height-1 ); + dc.Clear(); + dc.DestroyClippingRegion(); + + DrawFieldText( dc, number ); } wxString wxStatusBarGeneric::GetStatusText(int n) const @@ -151,7 +160,7 @@ void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[]) { // not an error, see the comment above m_statusWidths = (int *)NULL; - + Refresh(); return; } @@ -174,6 +183,7 @@ void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[]) { m_statusWidths[i] = widths_field[i]; } + Refresh(); } void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )