]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/graphics.cpp
I still think that's needed ...
[wxWidgets.git] / src / mac / carbon / graphics.cpp
index 85795be8c3c1f69760f095b5047c22935bcce1d7..616c5d4a54f8409063b15e2fa22808b89ef4f2fe 100644 (file)
@@ -12,6 +12,7 @@
 #include "wx/wxprec.h"
 
 #include "wx/graphics.h"
+#include "wx/private/graphics.h"
 
 #ifndef WX_PRECOMP
     #include "wx/dcclient.h"
@@ -264,8 +265,8 @@ public:
 
 protected :
     CGLineCap m_cap;
-    wxMacCFRefHolder<CGColorRef> m_color;
-    wxMacCFRefHolder<CGColorSpaceRef> m_colorSpace;
+    wxCFRef<CGColorRef> m_color;
+    wxCFRef<CGColorSpaceRef> m_colorSpace;
 
     CGLineJoin m_join;
     CGFloat m_width;
@@ -276,7 +277,7 @@ protected :
 
 
     bool m_isPattern;
-    wxMacCFRefHolder<CGPatternRef> m_pattern;
+    wxCFRef<CGPatternRef> m_pattern;
     CGFloat* m_patternColorComponents;
 };
 
@@ -285,9 +286,7 @@ wxMacCoreGraphicsPenData::wxMacCoreGraphicsPenData( wxGraphicsRenderer* renderer
 {
     Init();
 
-    CGFloat components[4] = { pen.GetColour().Red() / 255.0 , pen.GetColour().Green() / 255.0 ,
-            pen.GetColour().Blue() / 255.0 , pen.GetColour().Alpha() / 255.0 } ;
-    m_color.Set( CGColorCreate( wxMacGetGenericRGBColorSpace() , components ) ) ;
+    m_color.reset( pen.GetColour().CreateCGColor() ) ;
 
     // TODO: * m_dc->m_scaleX
     m_width = pen.GetWidth();
@@ -390,8 +389,8 @@ wxMacCoreGraphicsPenData::wxMacCoreGraphicsPenData( wxGraphicsRenderer* renderer
                 wxBitmap* bmp = pen.GetStipple();
                 if ( bmp && bmp->Ok() )
                 {
-                    m_colorSpace.Set( CGColorSpaceCreatePattern( NULL ) );
-                    m_pattern.Set( *( new ImagePattern( bmp , CGAffineTransformMakeScale( 1,-1 ) ) ) );
+                    m_colorSpace.reset( CGColorSpaceCreatePattern( NULL ) );
+                    m_pattern.reset( (CGPatternRef) *( new ImagePattern( bmp , CGAffineTransformMakeScale( 1,-1 ) ) ) );
                     m_patternColorComponents = new CGFloat[1] ;
                     m_patternColorComponents[0] = 1.0;
                     m_isPattern = true;
@@ -402,8 +401,8 @@ wxMacCoreGraphicsPenData::wxMacCoreGraphicsPenData( wxGraphicsRenderer* renderer
         default :
             {
                 m_isPattern = true;
-                m_colorSpace.Set( CGColorSpaceCreatePattern( wxMacGetGenericRGBColorSpace() ) );
-                m_pattern.Set( *( new HatchPattern( pen.GetStyle() , CGAffineTransformMakeScale( 1,-1 ) ) ) );
+                m_colorSpace.reset( CGColorSpaceCreatePattern( wxMacGetGenericRGBColorSpace() ) );
+                m_pattern.reset( (CGPatternRef) *( new HatchPattern( pen.GetStyle() , CGAffineTransformMakeScale( 1,-1 ) ) ) );
                 m_patternColorComponents = new CGFloat[4] ;
                 m_patternColorComponents[0] = pen.GetColour().Red() / 255.0;
                 m_patternColorComponents[1] = pen.GetColour().Green() / 255.0;
@@ -492,11 +491,11 @@ class wxMacCoreGraphicsColour
         void Apply( CGContextRef cgContext );
     protected:
         void Init();
-        wxMacCFRefHolder<CGColorRef> m_color;
-        wxMacCFRefHolder<CGColorSpaceRef> m_colorSpace;
+        wxCFRef<CGColorRef> m_color;
+        wxCFRef<CGColorSpaceRef> m_colorSpace;
         
         bool m_isPattern;
-        wxMacCFRefHolder<CGPatternRef> m_pattern;
+        wxCFRef<CGPatternRef> m_pattern;
         CGFloat* m_patternColorComponents;
 } ;
 
@@ -536,13 +535,13 @@ wxMacCoreGraphicsColour::wxMacCoreGraphicsColour( const wxBrush &brush )
     Init();
     if ( brush.GetStyle() == wxSOLID )
     {
-        m_color.Set( brush.GetColour().CreateCGColor() );
+        m_color.reset( brush.GetColour().CreateCGColor() );
     }
     else if ( brush.IsHatch() )
     {
         m_isPattern = true;
-        m_colorSpace.Set( CGColorSpaceCreatePattern( wxMacGetGenericRGBColorSpace() ) );
-        m_pattern.Set( *( new HatchPattern( brush.GetStyle() , CGAffineTransformMakeScale( 1,-1 ) ) ) );
+        m_colorSpace.reset( CGColorSpaceCreatePattern( wxMacGetGenericRGBColorSpace() ) );
+        m_pattern.reset( (CGPatternRef) *( new HatchPattern( brush.GetStyle() , CGAffineTransformMakeScale( 1,-1 ) ) ) );
 
         m_patternColorComponents = new CGFloat[4] ;
         m_patternColorComponents[0] = brush.GetColour().Red() / 255.0;
@@ -559,8 +558,8 @@ wxMacCoreGraphicsColour::wxMacCoreGraphicsColour( const wxBrush &brush )
             m_isPattern = true;
             m_patternColorComponents = new CGFloat[1] ;
             m_patternColorComponents[0] = 1.0;
-            m_colorSpace.Set( CGColorSpaceCreatePattern( NULL ) );
-            m_pattern.Set( *( new ImagePattern( bmp , CGAffineTransformMakeScale( 1,-1 ) ) ) );
+            m_colorSpace.reset( CGColorSpaceCreatePattern( NULL ) );
+            m_pattern.reset( (CGPatternRef) *( new ImagePattern( bmp , CGAffineTransformMakeScale( 1,-1 ) ) ) );
         }
     }
 }
@@ -1273,7 +1272,7 @@ private:
     wxDouble m_width;
     wxDouble m_height;
 
-    wxMacCFRefHolder<HIShapeRef> m_clipRgn;
+    wxCFRef<HIShapeRef> m_clipRgn;
 };
 
 //-----------------------------------------------------------------------------
@@ -1323,7 +1322,7 @@ void wxMacCoreGraphicsContext::Init()
     m_height = 0;
 
     HIRect r = CGRectMake(0,0,0,0);
-    m_clipRgn.Set(HIShapeCreateWithRect(&r));
+    m_clipRgn.reset(HIShapeCreateWithRect(&r));
 }
 
 wxMacCoreGraphicsContext::wxMacCoreGraphicsContext( wxGraphicsRenderer* renderer, CGContextRef cgcontext, wxDouble width, wxDouble height ) : wxGraphicsContext(renderer)
@@ -1422,8 +1421,7 @@ void wxMacCoreGraphicsContext::EnsureIsValid()
                if ( !HIShapeIsEmpty(m_clipRgn) )
                {
             // the clip region is in device coordinates, so we convert this again to user coordinates
-            wxMacCFRefHolder<HIMutableShapeRef> hishape ;
-            hishape.Set( HIShapeCreateMutableCopy( m_clipRgn ) );
+            wxCFRef<HIMutableShapeRef> hishape( HIShapeCreateMutableCopy( m_clipRgn ) );
             CGPoint transformedOrigin = CGPointApplyAffineTransform( CGPointZero,m_windowTransform);
             HIShapeOffset( hishape, -transformedOrigin.x, -transformedOrigin.y );
                        HIShapeReplacePathInCGContext( hishape, m_cgContext );
@@ -1508,7 +1506,7 @@ void wxMacCoreGraphicsContext::Clip( const wxRegion &region )
         
         CGPoint transformedOrigin = CGPointApplyAffineTransform( CGPointZero, m_windowTransform );
         HIShapeOffset( mutableShape, transformedOrigin.x, transformedOrigin.y );
-        m_clipRgn.Set(mutableShape);
+        m_clipRgn.reset(mutableShape);
     }
 }
 
@@ -1525,7 +1523,7 @@ void wxMacCoreGraphicsContext::Clip( wxDouble x, wxDouble y, wxDouble w, wxDoubl
         // the clipping itself must be stored as device coordinates, otherwise 
         // we cannot apply it back correctly
         r.origin= CGPointApplyAffineTransform( r.origin, m_windowTransform );
-        m_clipRgn.Set(HIShapeCreateWithRect(&r));
+        m_clipRgn.reset(HIShapeCreateWithRect(&r));
     }
 }
 
@@ -1547,7 +1545,7 @@ void wxMacCoreGraphicsContext::ResetClip()
     else
     {
         HIRect r = CGRectMake(0,0,0,0);
-        m_clipRgn.Set(HIShapeCreateWithRect(&r));
+        m_clipRgn.reset(HIShapeCreateWithRect(&r));
     }
 }
 
@@ -1781,7 +1779,7 @@ void wxMacCoreGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDoub
         CGColorRef col = fref->GetColour().GetPixel();
         CTUnderlineStyle ustyle = fref->GetUnderlined() ? kCTUnderlineStyleSingle : kCTUnderlineStyleNone ;
         wxCFRef<CFNumberRef> underlined( CFNumberCreate(NULL, kCFNumberSInt32Type, &ustyle) ); 
-        CFStringRef keys[] = { kCTFontAttributeName , kCTForegroundColorAttributeName, kCTUnderlineStyleAttributeName };
+         CFStringRef keys[] = { kCTFontAttributeName , kCTForegroundColorAttributeName, kCTUnderlineStyleAttributeName };
         CFTypeRef values[] = { font, col, underlined };
         wxCFRef<CFDictionaryRef> attributes( CFDictionaryCreate(kCFAllocatorDefault, (const void**) &keys, (const void**) &values, 
                                                         WXSIZEOF( keys ), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks) );