ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ# List a remote app's widget tree (names and classes only) import sys import string from Tkinter import * def listtree(master, app): list = Listbox(master, name='list') list.pack(expand=1, fill=BOTH) listnodes(list, app, '.', 0) return list def listnodes(list, app, widget, level): klass = list.send(app, 'winfo', 'class', widget) ## i = string.rindex(widget, '.') ## list.insert(END, '%s%s (%s)' % ((level-1)*'. ', widget[i:], klass)) list.insert(END, '%s (%s)' % (widget, klass)) children = list.tk.splitlist( list.send(app, 'winfo', 'children', widget)) for c in children: listnodes(list, app, c, level+1) def main(): if not sys.argv[1:]: sys.stderr.write('Usage: listtree appname\n') sys.exit(2) app = sys.argv[1] tk = Tk() tk.minsize(1, 1) f = Frame(tk, name='f') f.pack(expand=1, fill=BOTH) list = listtree(f, app) tk.mainloop() if __name__ == '__main__': main()