]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/statbrma.cpp
corrected wake up code
[wxWidgets.git] / src / mac / carbon / statbrma.cpp
index 29131affcd0bef46111b659e081dae41ec346a42..95a4f258f6f0b4e5c5217de75926ec6e321ee7f5 100644 (file)
@@ -9,14 +9,12 @@
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation "statbrma.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
 
+#include "wx/wxprec.h"
+
 #include "wx/statusbr.h"
 #include "wx/dc.h"
 #include "wx/dcclient.h"
@@ -27,6 +25,7 @@ END_EVENT_TABLE()
 
 #ifdef __WXMAC__
 #include "wx/mac/private.h"
+#include "wx/toplevel.h"
 #endif
 
 // ============================================================================
@@ -56,6 +55,9 @@ bool wxStatusBarMac::Create(wxWindow *parent, wxWindowID id,
     if ( parent->MacGetTopLevelWindow()->MacGetMetalAppearance() )
         MacSetBackgroundBrush( wxNullBrush ) ;    
     
+    // normal system font is too tall for fitting into the standard height
+    SetWindowVariant( wxWINDOW_VARIANT_SMALL ) ;
+    
     return TRUE ;
 }
 
@@ -67,7 +69,7 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i)
     wxRect rect;
     GetFieldRect(i, rect);
     
-    if ( !MacGetTopLevelWindow()->MacGetMetalAppearance() && !IsWindowHilited( MAC_WXHWND( MacGetTopLevelWindowRef() ) ) )
+    if ( !MacIsReallyHilited()  )
     {
         dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ;
     }
@@ -79,8 +81,11 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i)
     dc.GetTextExtent(text, &x, &y);
     
     int xpos = rect.x + leftMargin + 1 ;
-    int ypos = 2 ;
+    int ypos = 1 ;
     
+    if ( MacGetTopLevelWindow()->MacGetMetalAppearance()  )
+        ypos++ ;
+        
     dc.SetClippingRegion(rect.x, 0, rect.width, h);
     
     dc.DrawText(text, xpos, ypos);
@@ -98,6 +103,9 @@ void wxStatusBarMac::SetStatusText(const wxString& text, int number)
     wxCHECK_RET( (number >= 0) && (number < m_nFields),
         _T("invalid status bar field index") );
     
+    if ( m_statusStrings[number] == text )
+        return ;
+    
     m_statusStrings[number] = text;
     wxRect rect;
     GetFieldRect(number, rect);
@@ -119,9 +127,9 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) )
     int w, h ;
     GetSize( &w , &h ) ;
 
-       if ( IsWindowHilited( MAC_WXHWND( MacGetTopLevelWindowRef() ) ) || MacGetTopLevelWindow()->MacGetMetalAppearance() )
+       if ( MacIsReallyHilited() )
        {
-               wxPen white( wxWHITE , 1 , wxSOLID ) ;
+               wxPen white( *wxWHITE , 1 , wxSOLID ) ;
         if (major >= 10 ) 
         {
             //Finder statusbar border color: (Project builder similar is 9B9B9B)
@@ -132,7 +140,7 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) )
         }
         else
         {
-            wxPen black( wxBLACK , 1 , wxSOLID ) ;
+            wxPen black( *wxBLACK , 1 , wxSOLID ) ;
             dc.SetPen(black);
        }
                dc.DrawLine(0, 0 ,
@@ -161,3 +169,9 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) )
        for ( i = 0; i < m_nFields; i ++ )
                DrawField(dc, i);
 }
+
+void wxStatusBarMac::MacHiliteChanged()
+{
+    Refresh() ;
+    Update() ;
+}