]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/statusbr.cpp
Corrected (maybe) the object.h token syntax; corrected typo in makefile.g95
[wxWidgets.git] / src / generic / statusbr.cpp
index 63f52319db41641c14f7394e8b51b58605f94702..c433a1dfde90894a2351973fb440a556865a4208 100644 (file)
 
 #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,27 @@ void wxStatusBarGeneric::SetStatusText(const wxString& text, int number)
 
     m_statusStrings[number] = text;
 
-    Refresh();
+#ifdef __WXMAC__
+    int major,minor;
+    wxGetOsVersion( &major, &minor );
+    
+    if (major >= 10)
+    {
+        Refresh();
+        return;
+    }
+#endif
+
+    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 +171,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 +194,7 @@ void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[])
     {
         m_statusWidths[i] = widths_field[i];
     }
+    Refresh();
 }
 
 void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )