X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03e11df5470fd64d9d9a669d0b50b84c2d714736..ba87f54c0da98e069348612a9f4bef92c6798091:/src/mac/carbon/statbrma.cpp diff --git a/src/mac/carbon/statbrma.cpp b/src/mac/carbon/statbrma.cpp index a73cfcaecf..e39e83bb81 100644 --- a/src/mac/carbon/statbrma.cpp +++ b/src/mac/carbon/statbrma.cpp @@ -1,16 +1,16 @@ /////////////////////////////////////////////////////////////////////////////// // Name: statbar.cpp // Purpose: native implementation of wxStatusBar (optional) -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR +// Copyright: (c) 1998 Stefan Csomor // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #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) + EVT_PAINT(wxStatusBarMac::OnPaint) END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY +#ifdef __WXMAC__ +#include "wx/mac/private.h" +#endif // ============================================================================ // implementation @@ -48,33 +47,38 @@ wxStatusBarMac::~wxStatusBarMac() } bool wxStatusBarMac::Create(wxWindow *parent, wxWindowID id, - long style , - const wxString& name) + long style , + const wxString& name) { - return wxStatusBarGeneric::Create( parent , id , style , name ) ; + return wxStatusBarGeneric::Create( parent , id , style , name ) ; } void wxStatusBarMac::DrawFieldText(wxDC& dc, int i) { - int leftMargin = 2; - - wxRect rect; - GetFieldRect(i, rect); - - wxString text(GetStatusText(i)); - - long x, y; - - dc.GetTextExtent(text, &x, &y); - - int xpos = rect.x + leftMargin + 1 ; - int ypos = 2 ; - - dc.SetClippingRegion(rect.x, 0, rect.width, m_height); - - dc.DrawText(text, xpos, ypos); - - dc.DestroyClippingRegion(); + int leftMargin = 2; + + wxRect rect; + GetFieldRect(i, rect); + + if ( !IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ; + } + + wxString text(GetStatusText(i)); + + long x, y; + + dc.GetTextExtent(text, &x, &y); + + int xpos = rect.x + leftMargin + 1 ; + int ypos = 2 ; + + dc.SetClippingRegion(rect.x, 0, rect.width, m_height); + + dc.DrawText(text, xpos, ypos); + + dc.DestroyClippingRegion(); } void wxStatusBarMac::DrawField(wxDC& dc, int i) @@ -82,29 +86,54 @@ void wxStatusBarMac::DrawField(wxDC& dc, int i) DrawFieldText(dc, i); } -void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) +void wxStatusBarMac::SetStatusText(const wxString& text, int number) { - wxPaintDC dc(this); - wxPen black( wxBLACK , 1 , wxSOLID ) ; - wxPen white( wxWHITE , 1 , wxSOLID ) ; - - dc.SetPen(black); - dc.DrawLine(0, 0 , - m_width , 0); - dc.SetPen(white); - dc.DrawLine(0, 1 , - m_width , 1); - - - int i; - if ( GetFont().Ok() ) - dc.SetFont(GetFont()); - dc.SetBackgroundMode(wxTRANSPARENT); + wxCHECK_RET( (number >= 0) && (number < m_nFields), + _T("invalid status bar field index") ); + + m_statusStrings[number] = text; + wxRect rect; + GetFieldRect(number, rect); + rect.y=0; + rect.height = m_height ; + Refresh( TRUE , &rect ) ; +} - for ( i = 0; i < m_nFields; i ++ ) - DrawField(dc, i); +void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) +{ + wxPaintDC dc(this); + dc.Clear() ; + + if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + { + wxPen black( wxBLACK , 1 , wxSOLID ) ; + wxPen white( wxWHITE , 1 , wxSOLID ) ; + + dc.SetPen(black); + dc.DrawLine(0, 0 , + m_width , 0); + 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() ) + dc.SetFont(GetFont()); + dc.SetBackgroundMode(wxTRANSPARENT); + + for ( i = 0; i < m_nFields; i ++ ) + DrawField(dc, i); +} -# ifdef __WXMSW__ - dc.SetFont(wxNullFont); -# endif // MSW +void wxStatusBarMac::MacSuperEnabled( bool enabled ) +{ + Refresh(FALSE) ; + wxWindow::MacSuperEnabled( enabled ) ; }