- Got rid of newmodule.c
[python/dscho.git] / Demo / tkinter / guido / listtree.py
blob523f2096dbd879e6d5afc8ce0d328c1dc70796c3
1 # List a remote app's widget tree (names and classes only)
3 import sys
4 import string
6 from Tkinter import *
8 def listtree(master, app):
9 list = Listbox(master, name='list')
10 list.pack(expand=1, fill=BOTH)
11 listnodes(list, app, '.', 0)
12 return list
14 def listnodes(list, app, widget, level):
15 klass = list.send(app, 'winfo', 'class', widget)
16 ## i = string.rindex(widget, '.')
17 ## list.insert(END, '%s%s (%s)' % ((level-1)*'. ', widget[i:], klass))
18 list.insert(END, '%s (%s)' % (widget, klass))
19 children = list.tk.splitlist(
20 list.send(app, 'winfo', 'children', widget))
21 for c in children:
22 listnodes(list, app, c, level+1)
24 def main():
25 if not sys.argv[1:]:
26 sys.stderr.write('Usage: listtree appname\n')
27 sys.exit(2)
28 app = sys.argv[1]
29 tk = Tk()
30 tk.minsize(1, 1)
31 f = Frame(tk, name='f')
32 f.pack(expand=1, fill=BOTH)
33 list = listtree(f, app)
34 tk.mainloop()
36 if __name__ == '__main__':
37 main()