From f8a4fa4c990bb9f49e403c4432d02c308545747a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 2 Nov 2001 17:38:40 +0000 Subject: [PATCH] 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 --- src/generic/statusbr.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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) ) -- 2.45.2