summaryrefslogtreecommitdiff
path: root/examples/gtk/png_view.py
blob: 1100c7502c0969e29bdd28ee44e2a9260e129b17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
"""Display a png file
"""

import sys

import cairo
import gtk


def expose_event(widget, event, surface):
    ctx = widget.window.cairo_create()
    ctx.set_source_surface(surface, 0,0)
    ctx.paint()


if len(sys.argv) != 2:
    raise SystemExit('usage: png_view.py png_file')

filename = sys.argv[1]

surface = cairo.ImageSurface.create_from_png(filename)
Width  = surface.get_width()
Height = surface.get_height()

win = gtk.Window()
win.connect('destroy', gtk.main_quit)

drawingarea = gtk.DrawingArea()
win.add(drawingarea)
drawingarea.connect('expose_event', expose_event, surface)
drawingarea.set_size_request(Width,Height)

win.show_all()
gtk.main()