mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # base class for tk common dialogues
 | |
| #
 | |
| # this module provides a base class for accessing the common
 | |
| # dialogues available in Tk 4.2 and newer.  use filedialog,
 | |
| # colorchooser, and messagebox to access the individual
 | |
| # dialogs.
 | |
| #
 | |
| # written by Fredrik Lundh, May 1997
 | |
| #
 | |
| 
 | |
| __all__ = ["Dialog"]
 | |
| 
 | |
| from tkinter import _get_temp_root, _destroy_temp_root
 | |
| 
 | |
| 
 | |
| class Dialog:
 | |
| 
 | |
|     command = None
 | |
| 
 | |
|     def __init__(self, master=None, **options):
 | |
|         if master is None:
 | |
|             master = options.get('parent')
 | |
|         self.master = master
 | |
|         self.options = options
 | |
| 
 | |
|     def _fixoptions(self):
 | |
|         pass # hook
 | |
| 
 | |
|     def _fixresult(self, widget, result):
 | |
|         return result # hook
 | |
| 
 | |
|     def show(self, **options):
 | |
| 
 | |
|         # update instance options
 | |
|         for k, v in options.items():
 | |
|             self.options[k] = v
 | |
| 
 | |
|         self._fixoptions()
 | |
| 
 | |
|         master = self.master
 | |
|         if master is None:
 | |
|             master = _get_temp_root()
 | |
|         try:
 | |
|             self._test_callback(master)  # The function below is replaced for some tests.
 | |
|             s = master.tk.call(self.command, *master._options(self.options))
 | |
|             s = self._fixresult(master, s)
 | |
|         finally:
 | |
|             _destroy_temp_root(master)
 | |
| 
 | |
|         return s
 | |
| 
 | |
|     def _test_callback(self, master):
 | |
|         pass
 | 
