| 
									
										
										
										
											2001-07-31 06:59:02 +00:00
										 |  |  | ##---------------------------------------------------------------------------## | 
					
						
							|  |  |  | ## | 
					
						
							|  |  |  | ## idle - simple text view dialog  | 
					
						
							|  |  |  | ## elguavas | 
					
						
							|  |  |  | ##  | 
					
						
							|  |  |  | ##---------------------------------------------------------------------------## | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | simple text browser for idle | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | from Tkinter import * | 
					
						
							|  |  |  | import tkMessageBox | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TextViewer(Toplevel): | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2001-07-31 10:46:53 +00:00
										 |  |  |     simple text viewer dialog for idle | 
					
						
							|  |  |  |     """ 
 | 
					
						
							|  |  |  |     def __init__(self,parent,title,fileName): | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         fileName - string,should be an absoulute filename | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         Toplevel.__init__(self, parent) | 
					
						
							|  |  |  |         self.configure(borderwidth=5) | 
					
						
							|  |  |  |         self.geometry("+%d+%d" % (parent.winfo_rootx()+10, | 
					
						
							|  |  |  |                 parent.winfo_rooty()+10)) | 
					
						
							|  |  |  |         #elguavas - config placeholders til config stuff completed | 
					
						
							|  |  |  |         self.bg=None | 
					
						
							|  |  |  |         self.fg=None | 
					
						
							| 
									
										
										
										
											2001-07-31 06:59:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-31 10:46:53 +00:00
										 |  |  |         self.CreateWidgets() | 
					
						
							|  |  |  |         self.title(title) | 
					
						
							|  |  |  |         self.transient(parent) | 
					
						
							|  |  |  |         self.grab_set() | 
					
						
							|  |  |  |         self.protocol("WM_DELETE_WINDOW", self.Ok) | 
					
						
							|  |  |  |         self.parent = parent | 
					
						
							|  |  |  |         self.textView.focus_set() | 
					
						
							|  |  |  |         #key bindings for this dialog | 
					
						
							|  |  |  |         self.bind('<Return>',self.Ok) #dismiss dialog | 
					
						
							|  |  |  |         self.bind('<Escape>',self.Ok) #dismiss dialog | 
					
						
							|  |  |  |         self.LoadTextFile(fileName) | 
					
						
							|  |  |  |         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 '+`fileName`+' .') | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.textView.insert(0.0,textFile.read()) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |     def CreateWidgets(self): | 
					
						
							|  |  |  |         frameText = Frame(self) | 
					
						
							|  |  |  |         frameButtons = Frame(self) | 
					
						
							|  |  |  |         self.buttonOk = Button(frameButtons,text='Ok', | 
					
						
							|  |  |  |                 command=self.Ok,takefocus=FALSE,default=ACTIVE) | 
					
						
							|  |  |  |         self.scrollbarView = Scrollbar(frameText,orient=VERTICAL, | 
					
						
							|  |  |  |                 takefocus=FALSE,highlightthickness=0) | 
					
						
							|  |  |  |         self.textView = Text(frameText,wrap=WORD,highlightthickness=0) | 
					
						
							|  |  |  |         self.scrollbarView.config(command=self.textView.yview) | 
					
						
							|  |  |  |         self.textView.config(yscrollcommand=self.scrollbarView.set) | 
					
						
							|  |  |  |         self.buttonOk.pack(padx=5,pady=5) | 
					
						
							|  |  |  |         self.scrollbarView.pack(side=RIGHT,fill=Y) | 
					
						
							|  |  |  |         self.textView.pack(side=LEFT,expand=TRUE,fill=BOTH) | 
					
						
							|  |  |  |         frameButtons.pack(side=BOTTOM,fill=X) | 
					
						
							|  |  |  |         frameText.pack(side=TOP,expand=TRUE,fill=BOTH) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |     def Ok(self, event=None): | 
					
						
							|  |  |  |         self.destroy() | 
					
						
							| 
									
										
										
										
											2001-07-31 06:59:02 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							| 
									
										
										
										
											2001-07-31 10:46:53 +00:00
										 |  |  |     #test the dialog | 
					
						
							|  |  |  |     root=Tk() | 
					
						
							|  |  |  |     Button(root,text='View', | 
					
						
							|  |  |  |             command=lambda:TextViewer(root,'Text','./textView.py')).pack() | 
					
						
							|  |  |  |     root.mainloop() |