diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py')
-rw-r--r-- | sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py b/sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py new file mode 100644 index 000000000..6a0e2fe62 --- /dev/null +++ b/sys/src/cmd/python/Demo/tkinter/matt/killing-window-w-wm.py @@ -0,0 +1,42 @@ +from Tkinter import * + +# This file shows how to trap the killing of a window +# when the user uses window manager menus (typ. upper left hand corner +# menu in the decoration border). + + +### ******* this isn't really called -- read the comments +def my_delete_callback(): + print "whoops -- tried to delete me!" + +class Test(Frame): + def deathHandler(self, event): + print self, "is now getting nuked. performing some save here...." + + def createWidgets(self): + # a hello button + self.hi_there = Button(self, text='Hello') + self.hi_there.pack(side=LEFT) + + def __init__(self, master=None): + Frame.__init__(self, master) + Pack.config(self) + self.createWidgets() + + ### + ### PREVENT WM kills from happening + ### + + # the docs would have you do this: + +# self.master.protocol("WM_DELETE_WINDOW", my_delete_callback) + + # unfortunately, some window managers will not send this request to a window. + # the "protocol" function seems incapable of trapping these "aggressive" window kills. + # this line of code catches everything, tho. The window is deleted, but you have a chance + # of cleaning up first. + self.bind_all("<Destroy>", self.deathHandler) + + +test = Test() +test.mainloop() |