X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b64a84736d45bd571b7f66a5f32269d577eba17e..d728116a27b358e5b002337d96268fb51be128eb:/src/generic/statusbr.cpp diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp index 63f52319db..d8fb78c69d 100644 --- a/src/generic/statusbr.cpp +++ b/src/generic/statusbr.cpp @@ -31,8 +31,12 @@ #include "wx/statusbr.h" -// if !wxUSE_NATIVE_STATUSBAR, this is already done in common/statbar.cpp -#if defined(wxUSE_NATIVE_STATUSBAR) && wxUSE_NATIVE_STATUSBAR +// we only have to do it here when we use wxStatusBarGeneric in addition to the +// standard wxStatusBar class, if wxStatusBarGeneric is the same as +// wxStatusBar, then the corresponding IMPLEMENT_DYNAMIC_CLASS is already in +// common/statbar.cpp +#if defined(__WXMAC__) || \ + (defined(wxUSE_NATIVE_STATUSBAR) && wxUSE_NATIVE_STATUSBAR) #include "wx/generic/statusbr.h" IMPLEMENT_DYNAMIC_CLASS(wxStatusBarGeneric, wxWindow) @@ -123,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 @@ -147,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; } @@ -170,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) )