- if (provider != NULL)
- {
- M_METAFILEDATA->m_qdPictRef = QDPictCreateWithProvider( provider );
- CGDataProviderRelease( provider );
- }
-#endif
-#endif
+void wxMetafile::SetPICT(void* pictHandle)
+{
+ UnRef();
+
+ Handle picHandle = (Handle) pictHandle;
+ HLock(picHandle);
+ CFDataRef data = CFDataCreateWithBytesNoCopy( kCFAllocatorDefault, (const UInt8*) *picHandle, GetHandleSize(picHandle), kCFAllocatorNull);
+ wxCFRef<CGDataProviderRef> provider(UMACGDataProviderCreateWithCFData(data));
+ QDPictRef pictRef = QDPictCreateWithProvider(provider);
+ CGRect rect = QDPictGetBounds(pictRef);
+ m_refData = new wxMetafileRefData(wx_static_cast(int, rect.size.width),
+ wx_static_cast(int, rect.size.height));
+ QDPictDrawToCGContext( ((wxMetafileRefData*) m_refData)->GetContext(), rect, pictRef );
+ CFRelease( data );
+ QDPictRelease( pictRef );
+ ((wxMetafileRefData*) m_refData)->Close();