mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Get rid of PopUp menu.
Create a simple Windows menu. (Imperfect when Untitled windows exist.) Add wakeup() method: deiconify, raise, focus.
This commit is contained in:
		
							parent
							
								
									e7b2e651df
								
							
						
					
					
						commit
						82e44b10b8
					
				
					 1 changed files with 30 additions and 10 deletions
				
			
		|  | @ -18,7 +18,10 @@ def open(self, event): | |||
| class MultiEditorWindow(EditorWindow): | ||||
| 
 | ||||
|     IOBinding = MultiIOBinding | ||||
|     from PopupMenu import PopupMenu | ||||
|      | ||||
|     # Override menu bar specs | ||||
|     menu_specs = EditorWindow.menu_specs[:] | ||||
|     menu_specs.insert(len(menu_specs)-1, ("windows", "Windows")) | ||||
| 
 | ||||
|     def __init__(self, flist, filename, key): | ||||
|         self.flist = flist | ||||
|  | @ -28,7 +31,6 @@ def __init__(self, flist, filename, key): | |||
|         EditorWindow.__init__(self, flist.root, filename) | ||||
|         self.io.flist = flist | ||||
|         self.io.edit = self | ||||
|         self.popup = self.PopupMenu(self.text, self.flist) | ||||
|         self.text.bind("<<open-new-window>>", self.flist.new_callback) | ||||
|         self.text.bind("<<close-all-windows>>", self.flist.close_all_callback) | ||||
| 
 | ||||
|  | @ -39,9 +41,31 @@ def filename_change_hook(self): | |||
|         self.flist.filename_changed_edit(self) | ||||
|         EditorWindow.filename_change_hook(self) | ||||
|      | ||||
|     def wakeup(self): | ||||
|         self.top.tkraise() | ||||
|         self.top.wm_deiconify() | ||||
|         self.text.focus_set() | ||||
| 
 | ||||
|     def createmenubar(self): | ||||
|         EditorWindow.createmenubar(self) | ||||
|         self.menudict['windows'].configure(postcommand=self.postwindowsmenu) | ||||
|      | ||||
|     def postwindowsmenu(self): | ||||
|         wmenu = self.menudict['windows'] | ||||
|         wmenu.delete(0, 'end') | ||||
|         self.fixedwindowsmenu(wmenu) | ||||
|         files = self.flist.dict.keys() | ||||
|         files.sort() | ||||
|         for file in files: | ||||
|             def openit(self=self, file=file): | ||||
|                 self.flist.open(file) | ||||
|             wmenu.add_command(label=file, command=openit) | ||||
| 
 | ||||
| 
 | ||||
| class FileList: | ||||
|      | ||||
|     EditorWindow = MultiEditorWindow | ||||
|      | ||||
|     def __init__(self, root): | ||||
|         self.root = root | ||||
|         self.dict = {} | ||||
|  | @ -62,9 +86,7 @@ def open(self, filename, edit=None): | |||
|             key = os.path.normcase(filename) | ||||
|             if self.dict.has_key(key): | ||||
|                 edit = self.dict[key] | ||||
|                 edit.top.tkraise() | ||||
|                 edit.top.wm_deiconify() | ||||
|                 edit.text.focus_set() | ||||
|                 edit.wakeup() | ||||
|                 return edit | ||||
|             if not os.path.exists(filename): | ||||
|                 tkMessageBox.showinfo( | ||||
|  | @ -76,13 +98,11 @@ def open(self, filename, edit=None): | |||
|                 edit.io.loadfile(filename) | ||||
|                 self.dict[key] = edit | ||||
|                 self.inversedict[edit] = key | ||||
|                 edit.top.tkraise() | ||||
|                 edit.top.wm_deiconify() | ||||
|                 edit.text.focus_set() | ||||
|                 edit.wakeup() | ||||
|                 return edit | ||||
|         else: | ||||
|             key = None | ||||
|         edit = MultiEditorWindow(self, filename, key) | ||||
|         edit = self.EditorWindow(self, filename, key) | ||||
|         return edit | ||||
| 
 | ||||
|     def new_callback(self, event): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum