X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84f68c21f4a20d2b99d79f25bac63c2aec4e3d47..092f753690cec1f4ee3a7ad2df53afc70caaa2f3:/src/mac/statbrma.cpp?ds=sidebyside diff --git a/src/mac/statbrma.cpp b/src/mac/statbrma.cpp index 5179971e24..139b505f8e 100644 --- a/src/mac/statbrma.cpp +++ b/src/mac/statbrma.cpp @@ -25,6 +25,10 @@ BEGIN_EVENT_TABLE(wxStatusBarMac, wxStatusBarGeneric) EVT_PAINT(wxStatusBarMac::OnPaint) END_EVENT_TABLE() +#ifdef __WXMAC__ +#include "wx/mac/private.h" +#endif + // ============================================================================ // implementation // ============================================================================ @@ -55,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)); @@ -77,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); @@ -89,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() ) @@ -103,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