From 541bb620741e564366187f9bbc07d30f8390d583 Mon Sep 17 00:00:00 2001 From: Martin Abente Lahaye Date: Tue, 15 Jan 2013 20:44:49 +0000 Subject: gtk DrawingArea with images --- diff --git a/011-gtk-drawingarea/example.py b/011-gtk-drawingarea/example.py new file mode 100755 index 0000000..34b52b9 --- /dev/null +++ b/011-gtk-drawingarea/example.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +import gtk +import gobject + + +class MyApp(): + + def __init__(self): + window = gtk.Window() + + drawing_area = gtk.DrawingArea() + drawing_area.set_size_request(512, 512) + + self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/tux.png') + + window.connect('destroy', self.destroy) + drawing_area.connect('configure_event', self.__configure_cb) + drawing_area.connect('expose-event', self.__expose_cb) + + window.add(drawing_area) + + window.show() + drawing_area.show() + + def destroy(self, window, data=None): + gtk.main_quit() + + def __configure_cb(self, drawing_area, data=None): + x, y, width, height = drawing_area.get_allocation() + + canvas = drawing_area.window + self.pixmap = gtk.gdk.Pixmap(canvas, width, height) + + self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + return True + + def __expose_cb(self, drawing_area, data=None): + x, y, width, height = data.area + context = drawing_area.get_style().fg_gc[gtk.STATE_NORMAL] + + canvas = drawing_area.window + canvas.draw_drawable(context, self.pixmap, x, y, x, y, width, height) + + return False + +if __name__ == "__main__": + my_app = MyApp() + gtk.main() diff --git a/011-gtk-drawingarea/images/olpc.png b/011-gtk-drawingarea/images/olpc.png new file mode 100644 index 0000000..720ed41 --- /dev/null +++ b/011-gtk-drawingarea/images/olpc.png Binary files differ diff --git a/011-gtk-drawingarea/images/tux.png b/011-gtk-drawingarea/images/tux.png new file mode 100644 index 0000000..ee1f557 --- /dev/null +++ b/011-gtk-drawingarea/images/tux.png Binary files differ -- cgit v0.9.1