- if (!dc->Ok() )
- return FALSE;
-
- {
- wxMacPortSetter helper( dc ) ;
- PicHandle pict = GetHMETAFILE() ;
- DrawPicture( pict , &(**pict).picFrame ) ;
- }
- return TRUE;
+ if (!dc->Ok() )
+ return false;
+
+ {
+#if wxMAC_USE_CORE_GRAPHICS
+ QDPictRef cgPictRef = M_METAFILEDATA->m_qdPictRef ;
+ CGContextRef cg = ((wxMacCGContext*)(dc->GetGraphicContext()))->GetNativeContext() ;
+ CGRect bounds = QDPictGetBounds( cgPictRef ) ;
+
+ CGContextSaveGState(cg);
+ CGContextTranslateCTM(cg, 0 , bounds.size.width );
+ CGContextScaleCTM(cg, 1, -1);
+ QDPictDrawToCGContext( cg , bounds , cgPictRef ) ;
+ CGContextRestoreGState( cg ) ;
+#else
+ PicHandle pict = (PicHandle) GetHMETAFILE() ;
+ wxMacPortSetter helper( dc ) ;
+ DrawPicture( pict , &(**pict).picFrame ) ;
+#endif
+ }
+ return true;
+}
+
+wxSize wxMetaFile::GetSize() const
+{
+ wxSize size = wxDefaultSize ;
+ if ( Ok() )
+ {
+ PicHandle pict = (PicHandle) GetHMETAFILE() ;
+ Rect &r = (**pict).picFrame ;
+ size.x = r.right - r.left ;
+ size.y = r.bottom - r.top ;
+ }
+
+ return size;