Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / demos / MessageInfo.py
CommitLineData
920dae64
AT
1title = 'Pmw toplevel megawidget demonstration'
2
3# Import Pmw from this directory tree.
4import sys
5sys.path[:0] = ['../../..']
6
7import Tkinter
8import Pmw
9
10class MessageInfo(Pmw.MegaToplevel):
11
12 # Demo Pmw toplevel megawidget.
13
14 def __init__(self, parent=None, **kw):
15
16 # Define the megawidget options.
17 optiondefs = ()
18 self.defineoptions(kw, optiondefs)
19
20 # Initialise the base class (after defining the options).
21 Pmw.MegaToplevel.__init__(self, parent)
22
23 # Create the components.
24 interior = self.interior()
25
26 self._dismiss = self.createcomponent('dismiss',
27 (), None,
28 Tkinter.Button, (interior,),
29 text = 'Dismiss',
30 command = self.goodbye)
31 self._dismiss.pack(side = 'bottom', pady = 4)
32
33 self._separator = self.createcomponent('separator',
34 (), None,
35 Tkinter.Frame, (interior,),
36 height = 2,
37 borderwidth = 1,
38 relief = 'sunken')
39 self._separator.pack(side = 'bottom', fill = 'x', pady = 4)
40
41 self._icon = self.createcomponent('icon',
42 (), None,
43 Tkinter.Label, (interior,))
44 self._icon.pack(side = 'left', padx = 8, pady = 8)
45
46 self._infoFrame = self.createcomponent('infoframe',
47 (), None,
48 Tkinter.Frame, (interior,))
49 self._infoFrame.pack(
50 side = 'left',
51 fill = 'both',
52 expand = 1,
53 padx = 4,
54 pady = 4)
55
56 self._message = self.createcomponent('message',
57 (), None,
58 Tkinter.Label, (interior,))
59 self._message.pack(expand = 1, fill = 'both', padx = 10, pady = 10)
60
61 self.bind('<Return>', self.goodbye)
62
63 # Check keywords and initialise options.
64 self.initialiseoptions()
65
66 def goodbye(self, event = None):
67 self.destroy()
68
69class Demo:
70 def __init__(self, parent):
71 # Create button to launch the megawidget.
72 self.button = Tkinter.Button(parent,
73 command = self.showMessageInfo,
74 text = 'Show toplevel megawidget')
75 self.button.pack(padx = 8, pady = 8)
76
77 self.count = 0
78 self.parent = parent
79
80 def showMessageInfo(self):
81 bitmaps = ('warning', 'hourglass', 'error', 'info',
82 'gray25', 'gray50', 'question', 'questhead')
83 bitmap = bitmaps[self.count % len(bitmaps)]
84
85 message = 'This is a demonstration of\na megawidget.\n' + \
86 'It contains a configurable\nmessage area and bitmap.\n' + \
87 'This instance is displaying\nthe "' + bitmap + '" bitmap.'
88
89 # Make the toplevel window a child of this window, so that it
90 # is destroyed when the demo is destroyed.
91 MessageInfo(self.parent, message_text = message, icon_bitmap = bitmap)
92
93 self.count = self.count + 1
94 if self.count == 1:
95 self.button.configure(text = 'Show another\ntoplevel megawidget')
96
97######################################################################
98
99# Create demo in root window for testing.
100if __name__ == '__main__':
101 root = Tkinter.Tk()
102 Pmw.initialise(root)
103 root.title(title)
104
105 exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
106 exitButton.pack(side = 'bottom')
107 widget = Demo(root)
108 root.mainloop()