| 
									
										
										
										
											2008-05-17 18:39:55 +00:00
										 |  |  | # dialog.py -- Tkinter interface to the tk_dialog script. | 
					
						
							| 
									
										
										
										
											1995-07-14 15:29:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-26 03:30:33 +02:00
										 |  |  | from tkinter import _cnfmerge, Widget, TclError, Button, Pack | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __all__ = ["Dialog"] | 
					
						
							| 
									
										
										
										
											1994-06-27 08:00:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-25 13:49:11 +03:00
										 |  |  | DIALOG_ICON = 'questhead' | 
					
						
							| 
									
										
										
										
											1995-07-14 15:29:10 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-06-27 08:00:16 +00:00
										 |  |  | class Dialog(Widget): | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |     def __init__(self, master=None, cnf={}, **kw): | 
					
						
							|  |  |  |         cnf = _cnfmerge((cnf, kw)) | 
					
						
							|  |  |  |         self.widgetName = '__dialog__' | 
					
						
							| 
									
										
										
										
											2022-09-27 14:05:05 +03:00
										 |  |  |         self._setup(master, cnf) | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |         self.num = self.tk.getint( | 
					
						
							| 
									
										
										
										
											2003-04-06 09:01:11 +00:00
										 |  |  |                 self.tk.call( | 
					
						
							|  |  |  |                       'tk_dialog', self._w, | 
					
						
							|  |  |  |                       cnf['title'], cnf['text'], | 
					
						
							|  |  |  |                       cnf['bitmap'], cnf['default'], | 
					
						
							|  |  |  |                       *cnf['strings'])) | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |         try: Widget.destroy(self) | 
					
						
							|  |  |  |         except TclError: pass | 
					
						
							| 
									
										
										
										
											2018-10-12 19:01:00 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |     def destroy(self): pass | 
					
						
							| 
									
										
										
										
											1994-06-27 08:00:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-12 19:01:00 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-06-27 08:00:16 +00:00
										 |  |  | def _test(): | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |     d = Dialog(None, {'title': 'File Modified', | 
					
						
							|  |  |  |                       'text': | 
					
						
							|  |  |  |                       'File "Python.h" has been modified' | 
					
						
							|  |  |  |                       ' since the last time it was saved.' | 
					
						
							|  |  |  |                       ' Do you want to save it before' | 
					
						
							|  |  |  |                       ' exiting the application.', | 
					
						
							|  |  |  |                       'bitmap': DIALOG_ICON, | 
					
						
							|  |  |  |                       'default': 0, | 
					
						
							|  |  |  |                       'strings': ('Save File', | 
					
						
							|  |  |  |                                   'Discard Changes', | 
					
						
							|  |  |  |                                   'Return to Editor')}) | 
					
						
							| 
									
										
										
										
											2007-02-09 05:37:30 +00:00
										 |  |  |     print(d.num) | 
					
						
							| 
									
										
										
										
											1994-06-27 08:00:16 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							| 
									
										
										
										
											2000-10-23 18:31:14 +00:00
										 |  |  |     t = Button(None, {'text': 'Test', | 
					
						
							|  |  |  |                       'command': _test, | 
					
						
							|  |  |  |                       Pack: {}}) | 
					
						
							|  |  |  |     q = Button(None, {'text': 'Quit', | 
					
						
							|  |  |  |                       'command': t.quit, | 
					
						
							|  |  |  |                       Pack: {}}) | 
					
						
							|  |  |  |     t.mainloop() |