1#!/usr/bin/env python
2"""Display a png file
3"""
4
5import sys
6
7import cairo
8import gi
9gi.require_version("Gtk", "3.0")
10from gi.repository import Gtk
11
12
13def draw_event(widget, ctx, surface):
14    ctx.set_source_surface(surface, 0, 0)
15    ctx.paint()
16
17
18if len(sys.argv) != 2:
19    raise SystemExit('usage: png_view.py png_file')
20
21filename = sys.argv[1]
22
23surface = cairo.ImageSurface.create_from_png(filename)
24width = surface.get_width()
25height = surface.get_height()
26
27win = Gtk.Window()
28win.connect('destroy', Gtk.main_quit)
29
30drawingarea = Gtk.DrawingArea()
31win.add(drawingarea)
32drawingarea.connect('draw', draw_event, surface)
33drawingarea.set_size_request(width, height)
34
35win.show_all()
36Gtk.main()
37