X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/11d1adbfda13e56736ef62d07a7220134e62c5e5..9c4e5c709e53aa5508930a3b363326625bdf99b3:/src/mac/carbon/statbrma.cpp diff --git a/src/mac/carbon/statbrma.cpp b/src/mac/carbon/statbrma.cpp index b2dba2135d..094c4a081d 100644 --- a/src/mac/carbon/statbrma.cpp +++ b/src/mac/carbon/statbrma.cpp @@ -27,6 +27,7 @@ END_EVENT_TABLE() #ifdef __WXMAC__ #include "wx/mac/private.h" +#include "wx/toplevel.h" #endif // ============================================================================ @@ -50,17 +51,27 @@ bool wxStatusBarMac::Create(wxWindow *parent, wxWindowID id, long style , const wxString& name) { - return wxStatusBarGeneric::Create( parent , id , style , name ) ; + if( !wxStatusBarGeneric::Create( parent , id , style , name ) ) + return FALSE ; + + if ( parent->MacGetTopLevelWindow()->MacGetMetalAppearance() ) + MacSetBackgroundBrush( wxNullBrush ) ; + + // normal system font is too tall for fitting into the standard height + SetWindowVariant( wxWINDOW_VARIANT_SMALL ) ; + + return TRUE ; } void wxStatusBarMac::DrawFieldText(wxDC& dc, int i) { int leftMargin = 2; - + int w, h ; + GetSize( &w , &h ) ; wxRect rect; GetFieldRect(i, rect); - if ( !IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + if ( !MacIsReallyHilited() ) { dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ; } @@ -74,7 +85,10 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i) int xpos = rect.x + leftMargin + 1 ; int ypos = 1 ; - dc.SetClippingRegion(rect.x, 0, rect.width, m_height); + if ( MacGetTopLevelWindow()->MacGetMetalAppearance() ) + ypos++ ; + + dc.SetClippingRegion(rect.x, 0, rect.width, h); dc.DrawText(text, xpos, ypos); @@ -94,8 +108,10 @@ void wxStatusBarMac::SetStatusText(const wxString& text, int number) m_statusStrings[number] = text; wxRect rect; GetFieldRect(number, rect); + int w, h ; + GetSize( &w , &h ) ; rect.y=0; - rect.height = m_height ; + rect.height = h ; Refresh( TRUE , &rect ) ; Update(); } @@ -107,14 +123,19 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) int major,minor; wxGetOsVersion( &major, &minor ); + int w, h ; + GetSize( &w , &h ) ; - if ( IsWindowHilited( MAC_WXHWND( MacGetRootWindow() ) ) ) + if ( MacIsReallyHilited() ) { wxPen white( wxWHITE , 1 , wxSOLID ) ; - if (major >= 10) + if (major >= 10 ) { //Finder statusbar border color: (Project builder similar is 9B9B9B) - dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); + if ( MacGetTopLevelWindow()->MacGetMetalAppearance() ) + dc.SetPen(wxPen(wxColour(0x40,40,40) ,1,wxSOLID)) ; + else + dc.SetPen(wxPen(wxColour(0xB1,0xB1,0xB1),1,wxSOLID)); } else { @@ -122,10 +143,10 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) dc.SetPen(black); } dc.DrawLine(0, 0 , - m_width , 0); + w , 0); dc.SetPen(white); dc.DrawLine(0, 1 , - m_width , 1); + w , 1); } else { @@ -136,7 +157,7 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) dc.SetPen(wxPen(wxColour(0x80,0x80,0x80),1,wxSOLID)); dc.DrawLine(0, 0 , - m_width , 0); + w , 0); } int i; @@ -148,8 +169,8 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) ) DrawField(dc, i); } -void wxStatusBarMac::MacSuperEnabled( bool enabled ) +void wxStatusBarMac::MacHiliteChanged() { - Refresh(FALSE) ; - wxWindow::MacSuperEnabled( enabled ) ; + Refresh() ; + Update() ; }