]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/python/contrib/Demo/tkinter/matt/killing-window-w-wm.py
Inital import
[l4.git] / l4 / pkg / python / contrib / Demo / tkinter / matt / killing-window-w-wm.py
1 from Tkinter import *
2
3 # This file shows how to trap the killing of a window
4 # when the user uses window manager menus (typ. upper left hand corner
5 # menu in the decoration border).
6
7
8 ### ******* this isn't really called -- read the comments
9 def my_delete_callback():
10     print "whoops -- tried to delete me!"
11
12 class Test(Frame):
13     def deathHandler(self, event):
14         print self, "is now getting nuked. performing some save here...."
15
16     def createWidgets(self):
17         # a hello button
18         self.hi_there = Button(self, text='Hello')
19         self.hi_there.pack(side=LEFT)
20
21     def __init__(self, master=None):
22         Frame.__init__(self, master)
23         Pack.config(self)
24         self.createWidgets()
25
26         ###
27         ###  PREVENT WM kills from happening
28         ###
29
30         # the docs would have you do this:
31
32 #       self.master.protocol("WM_DELETE_WINDOW", my_delete_callback)
33
34         # unfortunately, some window managers will not send this request to a window.
35         # the "protocol" function seems incapable of trapping these "aggressive" window kills.
36         # this line of code catches everything, tho. The window is deleted, but you have a chance
37         # of cleaning up first.
38         self.bind_all("<Destroy>", self.deathHandler)
39
40
41 test = Test()
42 test.mainloop()