summaryrefslogtreecommitdiff
path: root/python/cat.py
blob: ec7d3b6f268c9d3a1b9f3e7a6d1eb84572d96a6f (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/python
import sys
import string
import getopt
import gtk
import vte

def main_quit(object, *args):
	gtk.main_quit()

def commit_cb(object, *args):
	(text, length) = args
	# Echo the text input by the user to stdout.  Note that the string's
	# length isn't always going to be right.
	if (0):
		sys.stdout.write(text)
		sys.stdout.flush()
	else:
	# Test the get_text() function.
		for line in (string.splitfields(object.get_text(),"\n")):
			if (line.__len__() > 0):
				print line
	# Also display it.
	object.feed(text, length)

if __name__ == '__main__':
	font = "fixed 12"
	scrollback = 100
	# Let the user override them.
	(shorts, longs) = getopt.getopt(sys.argv[1:], "f:", ["font="])
	for argpair in (shorts + longs):
		if ((argpair[0] == '-f') or (argpair[0] == '--font')):
			print "Setting font to `" + argpair[1] + "'."
			font = argpair[1]
	window = gtk.Window()
	window.connect("delete-event", main_quit)

	terminal = vte.Terminal()
	terminal.set_cursor_blinks(gtk.TRUE)
	terminal.set_emulation("xterm")
	terminal.set_font_from_string(font)
	terminal.set_scrollback_lines(1000)
	terminal.set_audible_bell(gtk.TRUE)
	terminal.set_visible_bell(gtk.FALSE)
	terminal.connect("commit", commit_cb)
	terminal.show()

	scrollbar = gtk.VScrollbar()
	scrollbar.set_adjustment(terminal.get_adjustment())

	box = gtk.HBox()
	box.pack_start(terminal)
	box.pack_start(scrollbar)

	window.add(box)
	window.show_all()
	gtk.main()