Ticket #3428: testdpi.py

File testdpi.py, 1.5 KB (added by manuq, 12 years ago)
Line 
1from gi.repository import WebKit
2from gi.repository import Gtk
3from gi.repository import Gdk
4import cairo
5
6WINDOW_WIDTH, WINDOW_HEIGHT = 400, 300
7
8def _destroy_cb(widget, data=None):
9    Gtk.main_quit()
10
11# The following two callbacks are never called:
12
13def _attributes_changed_cb(webview, viewport_attrs):
14    print "changed!"
15    print viewport_attrs
16
17def _attributes_recompute_cb(webview, viewport_attrs):
18    print "requested!"
19    print viewport_attrs
20
21window = Gtk.Window()
22window.resize(WINDOW_WIDTH, WINDOW_HEIGHT)
23window.connect("destroy", _destroy_cb)
24window.show()
25
26s = Gtk.ScrolledWindow()
27window.add(s)
28s.show()
29v = WebKit.WebView()
30v.connect('viewport-attributes-changed', _attributes_changed_cb)
31v.connect('viewport-attributes-recompute-requested', _attributes_recompute_cb)
32s.add(v)
33
34# Trying to change enforce-96-dpi setting:
35
36settings = v.get_settings()
37print "Previous enforce-96-dpi:", settings.get_property('enforce-96-dpi')
38settings.set_property('enforce-96-dpi', False)
39print "New enforce-96-dpi:", settings.get_property('enforce-96-dpi')
40
41# Trying to change some attributes:
42
43attributes = v.get_viewport_attributes()
44print "current dpi", attributes.props.device_dpi
45attributes.props.device_dpi = 134  # XO device DPI is 134
46print "current pixel ratio", attributes.props.device_pixel_ratio
47attributes.props.device_width = 1200
48attributes.props.device_height = 900
49print "new dpi", attributes.props.device_dpi
50
51v.load_uri('http://google.com')
52
53# Changing the zoom level works:
54#v.set_zoom_level(0.4)
55
56v.show()
57
58Gtk.main()