diff options
Diffstat (limited to 'Demo/tix/samples/Balloon.py')
-rwxr-xr-x | Demo/tix/samples/Balloon.py | 67 |
1 files changed, 45 insertions, 22 deletions
diff --git a/Demo/tix/samples/Balloon.py b/Demo/tix/samples/Balloon.py index df90660..825ae6a 100755 --- a/Demo/tix/samples/Balloon.py +++ b/Demo/tix/samples/Balloon.py @@ -1,11 +1,11 @@ -#!/usr/local/bin/python -# +# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- +# # $Id$ # # Tix Demostration Program # # This sample program is structured in such a way so that it can be -# executed from the Tix demo program "tixwidgets": it must have a +# executed from the Tix demo program "tixwidgets.py": it must have a # procedure called "RunSample". It should also have the "if" statment # at the end of this file so that it can be run as a standalone # program. @@ -17,29 +17,52 @@ import Tix -def RunSample(w): - status = Tix.Label(w, width=40, relief=Tix.SUNKEN, bd=1) - status.pack(side=Tix.BOTTOM, fill=Tix.Y, padx=2, pady=1) +TCL_ALL_EVENTS = 0 + +def RunSample (root): + balloon = DemoBalloon(root) + balloon.mainloop() + balloon.destroy() + +class DemoBalloon: + def __init__(self, w): + self.root = w + self.exit = -1 + + z = w.winfo_toplevel() + z.wm_protocol("WM_DELETE_WINDOW", lambda self=self: self.quitcmd()) + + status = Tix.Label(w, width=40, relief=Tix.SUNKEN, bd=1) + status.pack(side=Tix.BOTTOM, fill=Tix.Y, padx=2, pady=1) - # Create two mysterious widgets that need balloon help - button1 = Tix.Button(w, text='Something Unexpected', - command=lambda w=w: w.destroy()) - button2 = Tix.Button(w, text='Something Else Unexpected') - button2['command'] = lambda w=button2: w.destroy() - button1.pack(side=Tix.TOP, expand=1) - button2.pack(side=Tix.TOP, expand=1) + # Create two mysterious widgets that need balloon help + button1 = Tix.Button(w, text='Something Unexpected', + command=self.quitcmd) + button2 = Tix.Button(w, text='Something Else Unexpected') + button2['command'] = lambda w=button2: w.destroy() + button1.pack(side=Tix.TOP, expand=1) + button2.pack(side=Tix.TOP, expand=1) - # Create the balloon widget and associate it with the widgets that we want - # to provide tips for: - b = Tix.Balloon(w, statusbar=status) + # Create the balloon widget and associate it with the widgets that we want + # to provide tips for: + b = Tix.Balloon(w, statusbar=status) - b.bind_widget(button1, balloonmsg='Close Window', - statusmsg='Press this button to close this window') - b.bind_widget(button2, balloonmsg='Self-destruct button', - statusmsg='Press this button and it will destroy itself') + b.bind_widget(button1, balloonmsg='Close Window', + statusmsg='Press this button to close this window') + b.bind_widget(button2, balloonmsg='Self-destruct button', + statusmsg='Press this button and it will destroy itself') + + def quitcmd (self): + self.exit = 0 + + def mainloop(self): + foundEvent = 1 + while self.exit < 0 and foundEvent > 0: + foundEvent = self.root.tk.dooneevent(TCL_ALL_EVENTS) + + def destroy (self): + self.root.destroy() if __name__ == '__main__': root = Tix.Tk() - RunSample(root) - root.mainloop() |