Antoine Cailliau wrote:
> Dear all,
>
> First of all, a short presentation since I'm new on the ML. I'm student
> in Belgium (UCLouvain) in Computer Science (especially computer langages
> and software engineering). I just started a small project (a game for
> gnome) to get familiar with Cairo and Pango libs.
>
> I need two distinct drawing area in a gtk window. I tried a naive way
> but I only get one working area (the first is accordingly filled with a
> black rectangle, the other seems to be not displayed). I presume this is
> not the right way to do it.
>
> Here is the code:
>
> #!/usr/bin/env python
> #
>
> import gtk, cairo
>
> class DA(gtk.DrawingArea):
>
>       def __init__(self):
>               gtk.DrawingArea.__init__(self)
>               self.connect("expose_event", self.expose)
>
>       def expose(self, widget, event):
>               self.context = widget.window.cairo_create()
>               
>               # set a clip region for the expose event
>               self.context.rectangle(event.area.x, event.area.y,
>                                                       event.area.width, 
> event.area.height)
>               self.context.clip()
>               
>               self.draw(self.context)
>               
>               return False
>               
>       def draw(self, context):
>               rect = self.get_allocation()
>   
don't use this since it returns the allocation within the Window not 
within the DA. Use self.window.get_size() to get the width and height 
and use 0, 0 for the x and y in the following.
>               context.rectangle(rect.x, rect.y, rect.width, rect.height)
>               context.fill()
>               return False
>
> def main():
>       window = gtk.Window()
>       da1 = DA()
>       da2 = DA()
>       
>       vbox = gtk.VBox()
>       vbox.add(da1)
>       vbox.add(da2)
>       window.add(vbox)
>
>       window.connect("destroy", gtk.main_quit)
>       window.show_all()
>       gtk.main()
>       
> if __name__ == "__main__":
>       main()
>
>   

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to