| 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()
|
|---|