From dc862c435880fe415c53b534b09ccdb802075ce9 Mon Sep 17 00:00:00 2001 From: jmpc Date: Tue, 27 Oct 2009 05:07:54 +0000 Subject: Dibujamos en el interior del widget. --- diff --git a/cake.py b/cake.py index 8abf1dc..8e2b967 100755 --- a/cake.py +++ b/cake.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # -*- encoding: utf8 -*- +import math import gtk @@ -10,9 +11,26 @@ class Cake(gtk.DrawingArea): def expose(self, widget, event): + context = widget.window.cairo_create() + # set a clip region for the expose event + context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) + context.clip() + self.draw(context) return False + def draw(self, context): + rect = self.get_allocation() + x = rect.x + rect.width / 2 + y = rect.y + rect.height / 2 + radius = min(rect.width / 2, rect.height / 2) - 5 + context.arc(x, y, radius, 0, 2 * math.pi) + context.set_source_rgb(1, 1, 1) + context.fill_preserve() + context.set_source_rgb(0, 0, 0) + context.stroke() + + def main(): window = gtk.Window() cake = Cake() -- cgit v0.9.1