The CoreGraphics bindings for PyObjC introduce a couple of context manager for use with the with statement. These are simple wrappers around the basic CoreGraphics/Quartz API’s that make using the API more convenient and allow you to write easier to understand code.
Note that you’ll have to use from __future__ import with_statement to use the with-statement in Python 2.5.
CGSavedGState(context)
This wraps a block of code between CGContextSaveGState and CGContextRestoreGState.
Usage:
with CGSavedGState(context):
# Change context and use changed context
pass
# Context is restored to before the with-statement at this point.
CGTransparencyLayer(context, info, rect=None)
This wraps a block of code between CGContextBeginTransparencyLayer (or CGContextBeginTransparencyLayerWithRect if rect is not None) and CGContextEndTransparencyLayer.
Usage:
with CGTransparancyLayer(context, None):
pass
Or:
with CGTransparancyLayer(context, None, myRect):
pass
CGContextPage
This wraps a block of code between calls to CGContextBeginPage and CGContextEndPage).
Usage:
with CGContextPage(context [, mediaBox]): pass __all__ = ('CGSavedGState', 'CGTransparencyLayer', 'CGContextPage')