diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2007-10-04 02:53:07 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2007-10-04 02:53:07 (GMT) |
commit | d5f4910afdd95d86f51ed53a932a4c2fd181bd43 (patch) | |
tree | bb9ce7073bfb90e92d5d6bff5cefc9140631ca51 /Lib/idlelib/textView.py | |
parent | 0b634efcbcd10d9364796e9b048f18cd4a08b88b (diff) | |
download | cpython-d5f4910afdd95d86f51ed53a932a4c2fd181bd43.zip cpython-d5f4910afdd95d86f51ed53a932a4c2fd181bd43.tar.gz cpython-d5f4910afdd95d86f51ed53a932a4c2fd181bd43.tar.bz2 |
textView cleanup. Patch 1718043 Tal Einat.
M idlelib/EditorWindow.py
M idlelib/aboutDialog.py
M idlelib/textView.py
M idlelib/NEWS.txt
Diffstat (limited to 'Lib/idlelib/textView.py')
-rw-r--r-- | Lib/idlelib/textView.py | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/Lib/idlelib/textView.py b/Lib/idlelib/textView.py index 917a6cc..0e7e663 100644 --- a/Lib/idlelib/textView.py +++ b/Lib/idlelib/textView.py @@ -6,13 +6,12 @@ from Tkinter import * import tkMessageBox class TextViewer(Toplevel): + """A simple text viewer dialog for IDLE + """ - simple text viewer dialog for idle - """ - def __init__(self, parent, title, fileName, data=None): - """If data exists, load it into viewer, otherwise try to load file. + def __init__(self, parent, title, text): + """Show the given text in a scrollable window with a 'close' button - fileName - string, should be an absoulute filename """ Toplevel.__init__(self, parent) self.configure(borderwidth=5) @@ -33,23 +32,10 @@ class TextViewer(Toplevel): #key bindings for this dialog self.bind('<Return>',self.Ok) #dismiss dialog self.bind('<Escape>',self.Ok) #dismiss dialog - if data: - self.textView.insert(0.0, data) - else: - self.LoadTextFile(fileName) + self.textView.insert(0.0, text) self.textView.config(state=DISABLED) self.wait_window() - def LoadTextFile(self, fileName): - textFile = None - try: - textFile = open(fileName, 'r') - except IOError: - tkMessageBox.showerror(title='File Load Error', - message='Unable to load file %r .' % (fileName,)) - else: - self.textView.insert(0.0,textFile.read()) - def CreateWidgets(self): frameText = Frame(self, relief=SUNKEN, height=700) frameButtons = Frame(self) @@ -70,9 +56,38 @@ class TextViewer(Toplevel): def Ok(self, event=None): self.destroy() + +def view_text(parent, title, text): + TextViewer(parent, title, text) + +def view_file(parent, title, filename, encoding=None): + try: + if encoding: + import codecs + textFile = codecs.open(filename, 'r') + else: + textFile = open(filename, 'r') + except IOError: + import tkMessageBox + tkMessageBox.showerror(title='File Load Error', + message='Unable to load file %r .' % filename, + parent=parent) + else: + return view_text(parent, title, textFile.read()) + + if __name__ == '__main__': #test the dialog root=Tk() - Button(root,text='View', - command=lambda:TextViewer(root,'Text','./textView.py')).pack() + root.title('textView test') + filename = './textView.py' + text = file(filename, 'r').read() + btn1 = Button(root, text='view_text', + command=lambda:view_text(root, 'view_text', text)) + btn1.pack(side=LEFT) + btn2 = Button(root, text='view_file', + command=lambda:view_file(root, 'view_file', filename)) + btn2.pack(side=LEFT) + close = Button(root, text='Close', command=root.destroy) + close.pack(side=RIGHT) root.mainloop() |