Home | History | Annotate | Download | only in lib-tk
      1 # dialog.py -- Tkinter interface to the tk_dialog script.
      2 
      3 from Tkinter import *
      4 from Tkinter import _cnfmerge
      5 
      6 if TkVersion <= 3.6:
      7     DIALOG_ICON = 'warning'
      8 else:
      9     DIALOG_ICON = 'questhead'
     10 
     11 
     12 class Dialog(Widget):
     13     def __init__(self, master=None, cnf={}, **kw):
     14         cnf = _cnfmerge((cnf, kw))
     15         self.widgetName = '__dialog__'
     16         Widget._setup(self, master, cnf)
     17         self.num = self.tk.getint(
     18                 self.tk.call(
     19                       'tk_dialog', self._w,
     20                       cnf['title'], cnf['text'],
     21                       cnf['bitmap'], cnf['default'],
     22                       *cnf['strings']))
     23         try: Widget.destroy(self)
     24         except TclError: pass
     25     def destroy(self): pass
     26 
     27 def _test():
     28     d = Dialog(None, {'title': 'File Modified',
     29                       'text':
     30                       'File "Python.h" has been modified'
     31                       ' since the last time it was saved.'
     32                       ' Do you want to save it before'
     33                       ' exiting the application.',
     34                       'bitmap': DIALOG_ICON,
     35                       'default': 0,
     36                       'strings': ('Save File',
     37                                   'Discard Changes',
     38                                   'Return to Editor')})
     39     print d.num
     40 
     41 
     42 if __name__ == '__main__':
     43     t = Button(None, {'text': 'Test',
     44                       'command': _test,
     45                       Pack: {}})
     46     q = Button(None, {'text': 'Quit',
     47                       'command': t.quit,
     48                       Pack: {}})
     49     t.mainloop()
     50