mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 15:11:34 +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
 |