X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ee6b1d97e741fda8d579fa21cbc89f0c91615cef..cd5e9298159e58f57e05f3b76c9d4a45e1eefe12:/src/mac/statbrma.cpp diff --git a/src/mac/statbrma.cpp b/src/mac/statbrma.cpp index d3c0e102dd..139b505f8e 100644 --- a/src/mac/statbrma.cpp +++ b/src/mac/statbrma.cpp @@ -10,30 +10,31 @@ /////////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ -#pragma implementation "statusbr.h" +#pragma implementation "statbrma.h" #endif // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- -#include "wx/mac/statusbr.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBarMac, wxStatusBarGeneric); +#include "wx/statusbr.h" +#include "wx/dc.h" +#include "wx/dcclient.h" 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 // ============================================================================ // ---------------------------------------------------------------------------- -// wxStatusBarXX class +// wxStatusBarMac class // ---------------------------------------------------------------------------- wxStatusBarMac::wxStatusBarMac() @@ -58,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)); @@ -80,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); @@ -92,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() ) @@ -105,4 +141,10 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) # ifdef __WXMSW__ dc.SetFont(wxNullFont); # endif // MSW +} + +void wxStatusBarMac::MacSuperEnabled( bool enabled ) +{ + Refresh(FALSE) ; + wxWindow::MacSuperEnabled( enabled ) ; } \ No newline at end of file