X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b142515e79888988bf22c532c8c0da175fb59aca..82e5f91bffab96d859244bdc2f53b7c6163d0b40:/src/mac/statbrma.cpp diff --git a/src/mac/statbrma.cpp b/src/mac/statbrma.cpp index ee0c59a422..59f6573dae 100644 --- a/src/mac/statbrma.cpp +++ b/src/mac/statbrma.cpp @@ -21,14 +21,13 @@ #include "wx/dc.h" #include "wx/dcclient.h" -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBarMac, wxStatusBarGeneric); - BEGIN_EVENT_TABLE(wxStatusBarMac, wxStatusBarGeneric) EVT_PAINT(wxStatusBarMac::OnPaint) END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY +#ifdef __WXMAC__ +#include "wx/mac/private.h" +#endif // ============================================================================ // implementation @@ -60,6 +59,11 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i) wxRect rect; GetFieldRect(i, rect); + + if ( !IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ; + } wxString text(GetStatusText(i)); @@ -82,10 +86,34 @@ void wxStatusBarMac::DrawField(wxDC& dc, int i) DrawFieldText(dc, i); } +void wxStatusBarMac::SetStatusText(const wxString& text, int number) +{ + wxCHECK_RET( (number >= 0) && (number < m_nFields), + _T("invalid status bar field index") ); + + m_statusStrings[number] = text; + wxRect rect; + GetFieldRect(number, rect); + Refresh( TRUE , &rect ) ; + /* + // TODO make clear work again also when using themes + 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 ); + */ + +} + void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) { wxPaintDC dc(this); - wxPen black( wxBLACK , 1 , wxSOLID ) ; + + if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + wxPen black( wxBLACK , 1 , wxSOLID ) ; wxPen white( wxWHITE , 1 , wxSOLID ) ; dc.SetPen(black); @@ -94,7 +122,13 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) dc.SetPen(white); dc.DrawLine(0, 1 , m_width , 1); - + } + else + { + dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); + dc.DrawLine(0, 0 , + m_width , 0); + } int i; if ( GetFont().Ok() ) @@ -108,3 +142,9 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) dc.SetFont(wxNullFont); # endif // MSW } + +void wxStatusBarMac::MacSuperEnabled( bool enabled ) +{ + Refresh(FALSE) ; + wxWindow::MacSuperEnabled( enabled ) ; +}