uma versions for tiger only calls

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2007-06-07 05:34:42 +00:00
parent f619081d63
commit 876da30ac3
2 changed files with 71 additions and 0 deletions

View File

@@ -104,6 +104,11 @@ OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState ) ;
#define GetWindowUpdateRgn( inWindow , updateRgn ) GetWindowRegion( inWindow , kWindowUpdateRgn, updateRgn )
// Quartz
CGDataProviderRef UMACGDataProviderCreateWithCFData( CFDataRef data );
CGDataConsumerRef UMACGDataConsumerCreateWithCFData( CFDataRef data );
#endif // wxUSE_GUI
#endif

View File

@@ -742,6 +742,72 @@ Rect * UMAGetControlBoundsInWindowCoords( ControlRef theControl, Rect *bounds )
return bounds ;
}
size_t UMAPutBytesCFRefCallback( void *info, const void *bytes, size_t count )
{
CFMutableDataRef data = (CFMutableDataRef) info;
if ( data )
{
CFDataAppendBytes( data, (const UInt8*) bytes, count );
}
return count;
}
void UMAReleaseCFDataProviderCallback( void *info, const void *data, size_t count )
{
if ( info )
CFRelease( (CFDataRef) info );
}
void UMAReleaseCFDataConsumerCallback( void *info )
{
if ( info )
CFRelease( (CFDataRef) info );
}
CGDataProviderRef UMACGDataProviderCreateWithCFData( CFDataRef data )
{
if ( data == NULL )
return NULL;
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
if( &CGDataProviderCreateWithCFData != NULL )
{
return CGDataProviderCreateWithCFData( data );
}
#endif
// make sure we keep it until done
CFRetain( data );
CGDataProviderRef provider = CGDataProviderCreateWithData( (void*) data , CFDataGetBytePtr( data ) ,
CFDataGetLength( data ), UMAReleaseCFDataProviderCallback );
// if provider couldn't be created, release the data again
if ( provider == NULL )
CFRelease( data );
return provider;
}
CGDataConsumerRef UMACGDataConsumerCreateWithCFData( CFMutableDataRef data )
{
if ( data == NULL )
return NULL;
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
if( &CGDataConsumerCreateWithCFData != NULL )
{
return CGDataConsumerCreateWithCFData( data );
}
#endif
// make sure we keep it until done
CFRetain( data );
CGDataConsumerCallbacks callbacks;
callbacks.putBytes = UMAPutBytesCFRefCallback;
callbacks.releaseConsumer = UMAReleaseCFDataConsumerCallback;
CGDataConsumerRef consumer = CGDataConsumerCreate( data , &callbacks );
// if consumer couldn't be created, release the data again
if ( consumer == NULL )
CFRelease( data );
return consumer;
}
#endif // wxUSE_GUI
#if wxUSE_BASE