]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/graphics.cpp
Fix recurring typo in "theming".
[wxWidgets.git] / src / osx / carbon / graphics.cpp
index 27a04247883acfa1a1514862c1f304c5e4ab83ad..d5f4f7e7045c24073ba2bd87f2090ef49b11d77d 100644 (file)
@@ -72,10 +72,12 @@ int UMAGetSystemVersion()
 #endif
 
 #if wxOSX_USE_COCOA_OR_IPHONE
-extern CGContextRef wxOSXGetContextFromCurrentNSContext() ;
+extern CGContextRef wxOSXGetContextFromCurrentContext() ;
+#if wxOSX_USE_COCOA
 extern bool wxOSXLockFocus( WXWidget view) ;
 extern void wxOSXUnlockFocus( WXWidget view) ;
 #endif
+#endif
 
 #if 1 // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
 
@@ -96,7 +98,7 @@ typedef enum CGCompositeOperation {
    kCGCompositeOperationDestinationAtop = 9,
    kCGCompositeOperationXOR             = 10,
    kCGCompositeOperationPlusDarker      = 11,
-// NS only, unsupported by CG : Highlight 
+// NS only, unsupported by CG : Highlight
    kCGCompositeOperationPlusLighter     = 12
 } CGCompositeOperation ;
 
@@ -171,7 +173,7 @@ CGColorRef wxMacCreateCGColor( const wxColour& col )
 CTFontRef wxMacCreateCTFont( const wxFont& font )
 {
 #ifdef __WXMAC__
-    return wxCFRetain((CTFontRef) font.GetCTFont());
+    return wxCFRetain((CTFontRef) font.OSXGetCTFont());
 #else
     return CTFontCreateWithName( wxCFStringRef( font.GetFaceName(), wxLocale::GetSystemEncoding() ) , font.GetPointSize() , NULL );
 #endif
@@ -815,7 +817,7 @@ public:
     virtual ATSUStyle GetATSUStyle() { return m_macATSUIStyle; }
 #endif
 #if wxOSX_USE_CORE_TEXT
-    CTFontRef GetCTFont() const { return m_ctFont ; }
+    CTFontRef OSXGetCTFont() const { return m_ctFont ; }
 #endif
     wxColour GetColour() const { return m_colour ; }
 
@@ -867,19 +869,19 @@ wxMacCoreGraphicsFontData::wxMacCoreGraphicsFontData(wxGraphicsRenderer* rendere
             kATSUSizeTag ,
             kATSUColorTag ,
     };
-    ByteCount atsuSizes[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+    ByteCount atsuSizes[WXSIZEOF(atsuTags)] =
     {
             sizeof( Fixed ) ,
             sizeof( RGBColor ) ,
     };
-    ATSUAttributeValuePtr atsuValues[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+    ATSUAttributeValuePtr atsuValues[WXSIZEOF(atsuTags)] =
     {
             &atsuSize ,
             &atsuColor ,
     };
 
     status = ::ATSUSetAttributes(
-        m_macATSUIStyle, sizeof(atsuTags) / sizeof(ATSUAttributeTag) ,
+        m_macATSUIStyle, WXSIZEOF(atsuTags),
         atsuTags, atsuSizes, atsuValues);
 
     wxASSERT_MSG( status == noErr , wxT("couldn't modify ATSU style") );
@@ -1347,7 +1349,7 @@ public:
     virtual void BeginLayer(wxDouble opacity);
 
     virtual void EndLayer();
-    
+
     //
     // transformation
     //
@@ -1519,12 +1521,14 @@ wxMacCoreGraphicsContext::wxMacCoreGraphicsContext( wxGraphicsRenderer* renderer
 #if wxOSX_USE_COCOA_OR_IPHONE
     m_view = window->GetHandle();
 
-    if ( !((wxWidgetCocoaImpl*) window->GetPeer())->IsFlipped() )
+#if wxOSX_USE_COCOA
+    if ( ! window->GetPeer()->IsFlipped() )
     {
         m_windowTransform = CGAffineTransformMakeTranslation( 0 , m_height );
         m_windowTransform = CGAffineTransformScale( m_windowTransform , 1 , -1 );
     }
     else
+#endif
     {
         m_windowTransform = CGAffineTransformIdentity;
     }
@@ -1593,18 +1597,25 @@ bool wxMacCoreGraphicsContext::EnsureIsValid()
     {
         if (m_invisible)
             return false;
-            
-#if wxOSX_USE_COCOA_OR_IPHONE
+
+#if wxOSX_USE_COCOA
         if ( wxOSXLockFocus(m_view) )
         {
-            m_cgContext = wxOSXGetContextFromCurrentNSContext();
-            wxASSERT_MSG( m_cgContext != NULL, _T("Unable to retrieve drawing context from View"));
+            m_cgContext = wxOSXGetContextFromCurrentContext();
+            wxASSERT_MSG( m_cgContext != NULL, wxT("Unable to retrieve drawing context from View"));
         }
         else
         {
             m_invisible = true;
         }
 #endif
+#if wxOSX_USE_IPHONE
+        m_cgContext = wxOSXGetContextFromCurrentContext();
+        if ( m_cgContext == NULL )
+        {
+            m_invisible = true;
+        }
+#endif
 #if wxOSX_USE_CARBON
         OSStatus status = QDBeginCGContext( GetWindowPort( m_windowRef ) , &m_cgContext );
         if ( status != noErr )
@@ -1617,6 +1628,7 @@ bool wxMacCoreGraphicsContext::EnsureIsValid()
             CGContextConcatCTM( m_cgContext, m_windowTransform );
             CGContextSaveGState( m_cgContext );
             m_contextSynthesized = true;
+#if wxOSX_USE_COCOA_OR_CARBON
             if ( m_clipRgn.get() )
             {
                 // the clip region is in device coordinates, so we convert this again to user coordinates
@@ -1635,8 +1647,9 @@ bool wxMacCoreGraphicsContext::EnsureIsValid()
                     CGContextClip( m_cgContext );
                 }
             }
+#endif
             CGContextSaveGState( m_cgContext );
-            
+
 #if 0 // turn on for debugging of clientdc
             static float color = 0.5 ;
             static int channel = 0 ;
@@ -1665,9 +1678,9 @@ bool wxMacCoreGraphicsContext::SetAntialiasMode(wxAntialiasMode antialias)
 
     if (m_antialias == antialias)
         return true;
-    
+
     m_antialias = antialias;
-    
+
     bool antialiasMode;
     switch (antialias)
     {
@@ -1691,12 +1704,12 @@ bool wxMacCoreGraphicsContext::SetCompositionMode(wxCompositionMode op)
 
     if ( m_composition == op )
         return true;
-        
+
     m_composition = op;
-    
+
     if (m_composition == wxCOMPOSITION_DEST)
         return true;
-        
+
 #if wxOSX_USE_COCOA_OR_CARBON
     if ( UMAGetSystemVersion() < 0x1060 )
     {
@@ -1705,37 +1718,37 @@ bool wxMacCoreGraphicsContext::SetCompositionMode(wxCompositionMode op)
         switch( op )
         {
         case wxCOMPOSITION_CLEAR:
-            cop = kCGCompositeOperationClear; 
+            cop = kCGCompositeOperationClear;
             break;
         case wxCOMPOSITION_SOURCE:
-            cop = kCGCompositeOperationCopy; 
+            cop = kCGCompositeOperationCopy;
             break;
         case wxCOMPOSITION_OVER:
-            mode = kCGBlendModeNormal; 
+            mode = kCGBlendModeNormal;
             break;
         case wxCOMPOSITION_IN:
-            cop = kCGCompositeOperationSourceIn; 
+            cop = kCGCompositeOperationSourceIn;
             break;
         case wxCOMPOSITION_OUT:
-            cop = kCGCompositeOperationSourceOut; 
+            cop = kCGCompositeOperationSourceOut;
             break;
         case wxCOMPOSITION_ATOP:
-            cop = kCGCompositeOperationSourceAtop; 
+            cop = kCGCompositeOperationSourceAtop;
             break;
         case wxCOMPOSITION_DEST_OVER:
-            cop = kCGCompositeOperationDestinationOver; 
+            cop = kCGCompositeOperationDestinationOver;
             break;
         case wxCOMPOSITION_DEST_IN:
-            cop = kCGCompositeOperationDestinationIn; 
+            cop = kCGCompositeOperationDestinationIn;
             break;
         case wxCOMPOSITION_DEST_OUT:
-            cop = kCGCompositeOperationDestinationOut; 
+            cop = kCGCompositeOperationDestinationOut;
             break;
         case wxCOMPOSITION_DEST_ATOP:
-           cop = kCGCompositeOperationDestinationAtop; 
+           cop = kCGCompositeOperationDestinationAtop;
             break;
         case wxCOMPOSITION_XOR:
-            cop = kCGCompositeOperationXOR; 
+            cop = kCGCompositeOperationXOR;
             break;
 #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
         case wxCOMPOSITION_ADD:
@@ -1758,39 +1771,39 @@ bool wxMacCoreGraphicsContext::SetCompositionMode(wxCompositionMode op)
         switch( op )
         {
         case wxCOMPOSITION_CLEAR:
-            mode = kCGBlendModeClear; 
+            mode = kCGBlendModeClear;
             break;
         case wxCOMPOSITION_SOURCE:
-            mode = kCGBlendModeCopy; 
+            mode = kCGBlendModeCopy;
             break;
         case wxCOMPOSITION_OVER:
-            mode = kCGBlendModeNormal; 
+            mode = kCGBlendModeNormal;
             break;
         case wxCOMPOSITION_IN:
-            mode = kCGBlendModeSourceIn; 
+            mode = kCGBlendModeSourceIn;
             break;
         case wxCOMPOSITION_OUT:
-            mode = kCGBlendModeSourceOut; 
+            mode = kCGBlendModeSourceOut;
             break;
         case wxCOMPOSITION_ATOP:
-            mode = kCGBlendModeSourceAtop; 
+            mode = kCGBlendModeSourceAtop;
             break;
         case wxCOMPOSITION_DEST_OVER:
-            mode = kCGBlendModeDestinationOver; 
+            mode = kCGBlendModeDestinationOver;
             break;
         case wxCOMPOSITION_DEST_IN:
-            mode = kCGBlendModeDestinationIn; 
+            mode = kCGBlendModeDestinationIn;
             break;
         case wxCOMPOSITION_DEST_OUT:
-            mode = kCGBlendModeDestinationOut; 
+            mode = kCGBlendModeDestinationOut;
             break;
         case wxCOMPOSITION_DEST_ATOP:
-           mode = kCGBlendModeDestinationAtop; 
+           mode = kCGBlendModeDestinationAtop;
             break;
         case wxCOMPOSITION_XOR:
-            mode = kCGBlendModeXOR; 
+            mode = kCGBlendModeXOR;
             break;
-            
+
         case wxCOMPOSITION_ADD:
             mode = kCGBlendModePlusLighter ;
             break;
@@ -1806,7 +1819,7 @@ bool wxMacCoreGraphicsContext::SetCompositionMode(wxCompositionMode op)
 void wxMacCoreGraphicsContext::BeginLayer(wxDouble opacity)
 {
     CGContextSaveGState(m_cgContext);
-    CGContextSetAlpha(m_cgContext, opacity);
+    CGContextSetAlpha(m_cgContext, (CGFloat) opacity);
     CGContextBeginTransparencyLayer(m_cgContext, 0);
 }
 
@@ -1905,7 +1918,7 @@ void wxMacCoreGraphicsContext::StrokePath( const wxGraphicsPath &path )
 
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -1920,7 +1933,7 @@ void wxMacCoreGraphicsContext::DrawPath( const wxGraphicsPath &path , wxPolygonF
 {
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -1976,7 +1989,7 @@ void wxMacCoreGraphicsContext::FillPath( const wxGraphicsPath &path , wxPolygonF
 
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -2010,13 +2023,13 @@ void wxMacCoreGraphicsContext::SetNativeContext( CGContextRef cg )
         CGContextRestoreGState( m_cgContext );
         if ( m_contextSynthesized )
         {
-            // TODO: in case of performance problems, try issuing this not too 
+            // TODO: in case of performance problems, try issuing this not too
             // frequently (half of refresh rate)
             CGContextFlush(m_cgContext);
 #if wxOSX_USE_CARBON
             QDEndCGContext( GetWindowPort( m_windowRef ) , &m_cgContext);
 #endif
-#if wxOSX_USE_COCOA_OR_IPHONE
+#if wxOSX_USE_COCOA
             wxOSXUnlockFocus(m_view);
 #endif
         }
@@ -2080,7 +2093,7 @@ void wxMacCoreGraphicsContext::DrawBitmap( const wxGraphicsBitmap &bmp, wxDouble
 
     if (m_composition == wxCOMPOSITION_DEST)
         return;
-        
+
 #ifdef __WXMAC__
     wxMacCoreGraphicsBitmapData* refdata  =static_cast<wxMacCoreGraphicsBitmapData*>(bmp.GetRefData());
     CGImageRef image = refdata->GetBitmap();
@@ -2119,7 +2132,7 @@ void wxMacCoreGraphicsContext::DrawIcon( const wxIcon &icon, wxDouble x, wxDoubl
 {
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -2138,7 +2151,7 @@ void wxMacCoreGraphicsContext::PushState()
 {
     if (EnsureIsValid()==false)
         return;
-        
+
     CGContextSaveGState( m_cgContext );
 }
 
@@ -2146,7 +2159,7 @@ void wxMacCoreGraphicsContext::PopState()
 {
     if (EnsureIsValid()==false)
         return;
-        
+
     CGContextRestoreGState( m_cgContext );
 }
 
@@ -2156,7 +2169,7 @@ void wxMacCoreGraphicsContext::DoDrawText( const wxString &str, wxDouble x, wxDo
 
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -2165,7 +2178,7 @@ void wxMacCoreGraphicsContext::DoDrawText( const wxString &str, wxDouble x, wxDo
     {
         wxMacCoreGraphicsFontData* fref = (wxMacCoreGraphicsFontData*)m_font.GetRefData();
         wxCFStringRef text(str, wxLocale::GetSystemEncoding() );
-        CTFontRef font = fref->GetCTFont();
+        CTFontRef font = fref->OSXGetCTFont();
         CGColorRef col = wxMacCreateCGColor( fref->GetColour() );
         CTUnderlineStyle ustyle = fref->GetUnderlined() ? kCTUnderlineStyleSingle : kCTUnderlineStyleNone ;
         wxCFRef<CFNumberRef> underlined( CFNumberCreate(NULL, kCFNumberSInt32Type, &ustyle) );
@@ -2179,7 +2192,7 @@ void wxMacCoreGraphicsContext::DoDrawText( const wxString &str, wxDouble x, wxDo
         y += CTFontGetAscent(font);
 
         CGContextSaveGState(m_cgContext);
-        CGContextTranslateCTM(m_cgContext, x, y);
+        CGContextTranslateCTM(m_cgContext, (CGFloat) x, (CGFloat) y);
         CGContextScaleCTM(m_cgContext, 1, -1);
         CGContextSetTextPosition(m_cgContext, 0, 0);
         CTLineDraw( line, m_cgContext );
@@ -2219,7 +2232,7 @@ void wxMacCoreGraphicsContext::DoDrawRotatedText(const wxString &str,
 
     if (EnsureIsValid()==false)
         return;
-        
+
     if (m_composition == wxCOMPOSITION_DEST)
         return;
 
@@ -2255,15 +2268,15 @@ void wxMacCoreGraphicsContext::DoDrawRotatedText(const wxString &str,
             {
                 kATSULineRotationTag ,
             };
-            ByteCount atsuSizes[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+            ByteCount atsuSizes[WXSIZEOF(atsuTags)] =
             {
                 sizeof( Fixed ) ,
             };
-            ATSUAttributeValuePtr    atsuValues[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+            ATSUAttributeValuePtr    atsuValues[WXSIZEOF(atsuTags)] =
             {
                 &atsuAngle ,
             };
-            status = ::ATSUSetLayoutControls(atsuLayout , sizeof(atsuTags) / sizeof(ATSUAttributeTag),
+            status = ::ATSUSetLayoutControls(atsuLayout , WXSIZEOF(atsuTags),
                                              atsuTags, atsuSizes, atsuValues );
         }
 
@@ -2272,15 +2285,15 @@ void wxMacCoreGraphicsContext::DoDrawRotatedText(const wxString &str,
             {
                 kATSUCGContextTag ,
             };
-            ByteCount atsuSizes[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+            ByteCount atsuSizes[WXSIZEOF(atsuTags)] =
             {
                 sizeof( CGContextRef ) ,
             };
-            ATSUAttributeValuePtr    atsuValues[sizeof(atsuTags) / sizeof(ATSUAttributeTag)] =
+            ATSUAttributeValuePtr    atsuValues[WXSIZEOF(atsuTags)] =
             {
                 &m_cgContext ,
             };
-            status = ::ATSUSetLayoutControls(atsuLayout , sizeof(atsuTags) / sizeof(ATSUAttributeTag),
+            status = ::ATSUSetLayoutControls(atsuLayout , WXSIZEOF(atsuTags),
                                              atsuTags, atsuSizes, atsuValues );
         }
 
@@ -2342,7 +2355,7 @@ void wxMacCoreGraphicsContext::GetTextExtent( const wxString &str, wxDouble *wid
     if ( UMAGetSystemVersion() >= 0x1050 )
     {
         wxMacCoreGraphicsFontData* fref = (wxMacCoreGraphicsFontData*)m_font.GetRefData();
-        CTFontRef font = fref->GetCTFont();
+        CTFontRef font = fref->OSXGetCTFont();
 
         wxCFStringRef text(str, wxLocale::GetSystemEncoding() );
         CFStringRef keys[] = { kCTFontAttributeName  };
@@ -2352,7 +2365,8 @@ void wxMacCoreGraphicsContext::GetTextExtent( const wxString &str, wxDouble *wid
         wxCFRef<CFAttributedStringRef> attrtext( CFAttributedStringCreate(kCFAllocatorDefault, text, attributes) );
         wxCFRef<CTLineRef> line( CTLineCreateWithAttributedString(attrtext) );
 
-        CGFloat w, a, d, l;
+        double w;
+        CGFloat a, d, l;
 
         w = CTLineGetTypographicBounds(line, &a, &d, &l) ;
 
@@ -2436,7 +2450,7 @@ void wxMacCoreGraphicsContext::GetPartialTextExtents(const wxString& text, wxArr
 #if wxOSX_USE_CORE_TEXT
     {
         wxMacCoreGraphicsFontData* fref = (wxMacCoreGraphicsFontData*)m_font.GetRefData();
-        CTFontRef font = fref->GetCTFont();
+        CTFontRef font = fref->OSXGetCTFont();
 
         wxCFStringRef t(text, wxLocale::GetSystemEncoding() );
         CFStringRef keys[] = { kCTFontAttributeName  };
@@ -2703,6 +2717,7 @@ wxGraphicsContext * wxMacCoreGraphicsRenderer::CreateContextFromNativeWindow( vo
 #if wxOSX_USE_CARBON
     return new wxMacCoreGraphicsContext(this,(WindowRef)window);
 #else
+    wxUnusedVar(window);
     return NULL;
 #endif
 }