PageRenderTime 24ms CodeModel.GetById 14ms app.highlight 6ms RepoModel.GetById 2ms app.codeStats 0ms

/Demo/tix/samples/Balloon.py

http://unladen-swallow.googlecode.com/
Python | 68 lines | 36 code | 14 blank | 18 comment | 3 complexity | 78969d70ac0689d065d2d33dc86dd0a8 MD5 | raw file
 1# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
 2#
 3# $Id: Balloon.py 36560 2004-07-18 06:16:08Z tim_one $
 4#
 5# Tix Demostration Program
 6#
 7# This sample program is structured in such a way so that it can be
 8# executed from the Tix demo program "tixwidgets.py": it must have a
 9# procedure called "RunSample". It should also have the "if" statment
10# at the end of this file so that it can be run as a standalone
11# program.
12
13# This file demonstrates the use of the tixBalloon widget, which provides
14# a interesting way to give help tips about elements in your user interface.
15# Your can display the help message in a "balloon" and a status bar widget.
16#
17
18import Tix
19
20TCL_ALL_EVENTS          = 0
21
22def RunSample (root):
23    balloon = DemoBalloon(root)
24    balloon.mainloop()
25    balloon.destroy()
26
27class DemoBalloon:
28    def __init__(self, w):
29        self.root = w
30        self.exit = -1
31
32        z = w.winfo_toplevel()
33        z.wm_protocol("WM_DELETE_WINDOW", lambda self=self: self.quitcmd())
34
35        status = Tix.Label(w, width=40, relief=Tix.SUNKEN, bd=1)
36        status.pack(side=Tix.BOTTOM, fill=Tix.Y, padx=2, pady=1)
37
38        # Create two mysterious widgets that need balloon help
39        button1 = Tix.Button(w, text='Something Unexpected',
40                             command=self.quitcmd)
41        button2 = Tix.Button(w, text='Something Else Unexpected')
42        button2['command'] = lambda w=button2: w.destroy()
43        button1.pack(side=Tix.TOP, expand=1)
44        button2.pack(side=Tix.TOP, expand=1)
45
46        # Create the balloon widget and associate it with the widgets that we want
47        # to provide tips for:
48        b = Tix.Balloon(w, statusbar=status)
49
50        b.bind_widget(button1, balloonmsg='Close Window',
51                      statusmsg='Press this button to close this window')
52        b.bind_widget(button2, balloonmsg='Self-destruct button',
53                      statusmsg='Press this button and it will destroy itself')
54
55    def quitcmd (self):
56        self.exit = 0
57
58    def mainloop(self):
59        foundEvent = 1
60        while self.exit < 0 and foundEvent > 0:
61            foundEvent = self.root.tk.dooneevent(TCL_ALL_EVENTS)
62
63    def destroy (self):
64        self.root.destroy()
65
66if __name__ == '__main__':
67    root = Tix.Tk()
68    RunSample(root)