#! /usr/bin/env python

import gtk
import cairo

window = gtk.Window()

def draw(window, event):
    cr = event.window.cairo_create()

    mask = cairo.ImageSurface(cairo.FORMAT_A8, 100, 100)
    sub_cr = cairo.Context(mask)
    sub_cr.set_source_rgba(0, 0, 0, 0)
    sub_cr.set_operator(cairo.OPERATOR_SOURCE)
    sub_cr.paint()
    sub_cr.rectangle(20, 20, 60, 60)
    sub_cr.set_source_rgba(1, 1, 1, 1)
    sub_cr.fill()
    
    cr.scale(2.4,2.4)
    cr.translate(0, 0)
    cr.set_source_rgb(1, 0, 0)
    cr.mask_surface(mask)

    cr.translate(250, 0)
    cr.set_source_rgb(0, 1, 0)
    cr.mask_surface(mask)

window.connect("expose-event", draw)
window.set_app_paintable(True)
window.show()

gtk.main()

