#!/usr/bin/python
# script to compare fonts by Davyd Madeley
# http://davyd.livejournal.com/234143.html

import pygtk
pygtk.require ('2.0')
import gtk, pango
import sys

model = gtk.ListStore (pango.FontDescription, str, str)

window = gtk.Window ()
sw = gtk.ScrolledWindow ()
sw.set_policy (gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
treeview = gtk.TreeView (model)

window.add (sw)
sw.add (treeview)

renderer = gtk.CellRendererText ()
renderer.set_property ('text', sys.argv[1])
treeview.insert_column_with_attributes (-1, "Preview", renderer, font_desc = 0)

renderer = gtk.CellRendererText ()
treeview.insert_column_with_attributes (-1, "Fontname", renderer, text = 1)

context = window.create_pango_context ()

layout = pango.Layout (context)
layout.set_markup ('<span fallback="false">%s</span>' % sys.argv[1])

for family in context.list_families ():
	face = family.list_faces ()[0]
	name = "%s %s" % (family.get_name (), face.get_face_name ())

	desc = face.describe ()
	desc.set_size (pango.SCALE * 50)

	layout.set_font_description (desc)
	if layout.get_unknown_glyphs_count () > 0: continue
	model.append ((desc, name))

window.set_default_size (400, 600)
window.connect ('destroy', lambda *q: gtk.main_quit ())
window.show_all ()
gtk.main ()
