Staging
v0.5.1
https://github.com/python/cpython
Revision 8ae56530fd7dccaf1992024f8e5185737239e42e authored by Jack Jansen on 25 March 2002, 12:24:50 UTC, committed by Jack Jansen on 25 March 2002, 12:24:50 UTC
Weaklink most toolbox modules, improving backward compatibility. Modules will no longer fail to load if a single routine is missing on the curent OS version, in stead calling the missing routine will raise an exception.

Should finally fix 531398. 2.2.1 candidate.

Also blacklisted some constants with definitions that were not Python-compatible.
1 parent 4b9fa73
Raw File
Tip revision: 8ae56530fd7dccaf1992024f8e5185737239e42e authored by Jack Jansen on 25 March 2002, 12:24:50 UTC
Backport of _Cmmodule.c 1.8 and cmsupport.py 1.6:
Tip revision: 8ae5653
killing-window-w-wm.py
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()
back to top