X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03e11df5470fd64d9d9a669d0b50b84c2d714736..6d9022fe3bb50a75b9b5eaf5cf32558e518ba310:/src/mac/statbrma.cpp diff --git a/src/mac/statbrma.cpp b/src/mac/statbrma.cpp index a73cfcaecf..139b505f8e 100644 --- a/src/mac/statbrma.cpp +++ b/src/mac/statbrma.cpp @@ -10,7 +10,7 @@ /////////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ -#pragma implementation "statusbr.h" +#pragma implementation "statbrma.h" #endif // ---------------------------------------------------------------------------- @@ -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 ) ; +} \ No newline at end of file