# CocoaDrawingShell

- `Download example`

A PyObjC Example without documentation

## Sources

### MyView.py

    import math

    import Cocoa
    import Quartz

    def doAlphaRects(context):
        # ***** Part 1 *****
        ourRect = Quartz.CGRectMake(0.0, 0.0, 130.0, 100.0)
        numRects = 6
        rotateAngle = 2 * math.pi / numRects
        tintAdjust = 1.0 / numRects

        # ***** Part 2 *****
        Quartz.CGContextTranslateCTM(
            context, 2 * ourRect.size.width, 2 * ourRect.size.height
        )

        # ***** Part 3 *****
        tint = 1.0
        for _ in range(numRects):
            Quartz.CGContextSetRGBFillColor(context, tint, 0.0, 0.0, tint)
            Quartz.CGContextFillRect(context, ourRect)
            Quartz.CGContextRotateCTM(context, rotateAngle)  # cumulative
            tint -= tintAdjust

    class MyView(Cocoa.NSView):
        def drawRect_(self, rect):
            nsctx = Cocoa.NSGraphicsContext.currentContext()
            context = nsctx.graphicsPort()

            Quartz.CGContextSetLineWidth(context, 5.0)
            # Draw the coordinate axes.
            Quartz.CGContextBeginPath(context)
            # First draw the x axis.
            Quartz.CGContextMoveToPoint(context, -2000.0, 0.0)
            Quartz.CGContextAddLineToPoint(context, 2000.0, 0.0)
            Quartz.CGContextDrawPath(context, Quartz.kCGPathStroke)
            # Next draw the y axis.
            Quartz.CGContextMoveToPoint(context, 0.0, -2000.0)
            Quartz.CGContextAddLineToPoint(context, 0.0, 2000.0)
            Quartz.CGContextDrawPath(context, Quartz.kCGPathStroke)

            doAlphaRects(context)

### main.py

    import MyView  # noqa: F401
    from PyObjCTools import AppHelper

    AppHelper.runEventLoop()

### setup.py

    """
    Script for building the example.

    Usage:
        python3 setup.py py2app
    """

    from setuptools import setup

    setup(
        name="CocoaDrawingShell",
        app=["main.py"],
        data_files=["English.lproj"],
        setup_requires=["py2app", "pyobjc-framework-Cocoa", "pyobjc-framework-Quartz"],
    )