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:
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user