diff options
author | Georg Brandl <georg@python.org> | 2008-05-20 06:58:21 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-05-20 06:58:21 +0000 |
commit | 33cece05b918dff706a4298e33f84d8e8a0391d2 (patch) | |
tree | c78da9213928978586e3e5259195a6be2d580648 /Lib/lib-tk/tkCommonDialog.py | |
parent | 248e3a8b7f7868e72a056609605bc1e7d84b1393 (diff) | |
download | cpython-git-33cece05b918dff706a4298e33f84d8e8a0391d2.tar.gz |
Tkinter renaming reversal: move modules back in their place.
Diffstat (limited to 'Lib/lib-tk/tkCommonDialog.py')
-rw-r--r-- | Lib/lib-tk/tkCommonDialog.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Lib/lib-tk/tkCommonDialog.py b/Lib/lib-tk/tkCommonDialog.py new file mode 100644 index 0000000000..f61eb45d1e --- /dev/null +++ b/Lib/lib-tk/tkCommonDialog.py @@ -0,0 +1,60 @@ +# 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 +# + +from tkinter import * + +class Dialog: + + command = None + + def __init__(self, master=None, **options): + + # FIXME: should this be placed on the module level instead? + if TkVersion < 4.2: + raise TclError, "this module requires Tk 4.2 or newer" + + self.master = master + self.options = options + if not master and options.get('parent'): + self.master = options['parent'] + + 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() + + # we need a dummy widget to properly process the options + # (at least as long as we use Tkinter 1.63) + w = Frame(self.master) + + try: + + s = w.tk.call(self.command, *w._options(self.options)) + + s = self._fixresult(w, s) + + finally: + + try: + # get rid of the widget + w.destroy() + except: + pass + + return s |