mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	Much has changed -- too much, in fact, to write down. The big news is that there's a standard way to write IDLE extensions; see extend.txt. Some sample extensions have been provided, and some existing code has been converted to extensions. Probably the biggest new user feature is a new search dialog with more options, search and replace, and even search in files (grep). This is exactly as downloaded from my laptop after returning from the holidays -- it hasn't even been tested on Unix yet.
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from repr import Repr
 | 
						|
from Tkinter import *
 | 
						|
 | 
						|
class FrameViewer:
 | 
						|
 | 
						|
    def __init__(self, root, frame):
 | 
						|
        self.root = root
 | 
						|
        self.frame = frame
 | 
						|
        self.top = Toplevel(self.root)
 | 
						|
        self.repr = Repr()
 | 
						|
        self.repr.maxstring = 60
 | 
						|
        self.load_variables()
 | 
						|
 | 
						|
    def load_variables(self):
 | 
						|
        row = 0
 | 
						|
        if self.frame.f_locals is not self.frame.f_globals:
 | 
						|
            l = Label(self.top, text="Local Variables",
 | 
						|
                      borderwidth=2, relief="raised")
 | 
						|
            l.grid(row=row, column=0, columnspan=2, sticky="ew")
 | 
						|
            row = self.load_names(self.frame.f_locals, row+1)
 | 
						|
        l = Label(self.top, text="Global Variables",
 | 
						|
                  borderwidth=2, relief="raised")
 | 
						|
        l.grid(row=row, column=0, columnspan=2, sticky="ew")
 | 
						|
        row = self.load_names(self.frame.f_globals, row+1)
 | 
						|
 | 
						|
    def load_names(self, dict, row):
 | 
						|
        names = dict.keys()
 | 
						|
        names.sort()
 | 
						|
        for name in names:
 | 
						|
            value = dict[name]
 | 
						|
            svalue = self.repr.repr(value)
 | 
						|
            l = Label(self.top, text=name)
 | 
						|
            l.grid(row=row, column=0, sticky="w")
 | 
						|
            l = Entry(self.top, width=60, borderwidth=0)
 | 
						|
            l.insert(0, svalue)
 | 
						|
            l.grid(row=row, column=1, sticky="w")
 | 
						|
            row = row+1
 | 
						|
        return row
 |