1 title = 'Pmw toplevel megawidget demonstration'
3 # Import Pmw from this directory tree.
5 sys.path[:0] = ['../../..']
10 class MessageInfo(Pmw.MegaToplevel):
12 # Demo Pmw toplevel megawidget.
14 def __init__(self, parent=None, **kw):
16 # Define the megawidget options.
18 self.defineoptions(kw, optiondefs)
20 # Initialise the base class (after defining the options).
21 Pmw.MegaToplevel.__init__(self, parent)
23 # Create the components.
24 interior = self.interior()
26 self._dismiss = self.createcomponent('dismiss',
28 Tkinter.Button, (interior,),
30 command = self.goodbye)
31 self._dismiss.pack(side = 'bottom', pady = 4)
33 self._separator = self.createcomponent('separator',
35 Tkinter.Frame, (interior,),
39 self._separator.pack(side = 'bottom', fill = 'x', pady = 4)
41 self._icon = self.createcomponent('icon',
43 Tkinter.Label, (interior,))
44 self._icon.pack(side = 'left', padx = 8, pady = 8)
46 self._infoFrame = self.createcomponent('infoframe',
48 Tkinter.Frame, (interior,))
56 self._message = self.createcomponent('message',
58 Tkinter.Label, (interior,))
59 self._message.pack(expand = 1, fill = 'both', padx = 10, pady = 10)
61 self.bind('<Return>', self.goodbye)
63 # Check keywords and initialise options.
64 self.initialiseoptions()
66 def goodbye(self, event = None):
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)
80 def showMessageInfo(self):
81 bitmaps = ('warning', 'hourglass', 'error', 'info',
82 'gray25', 'gray50', 'question', 'questhead')
83 bitmap = bitmaps[self.count % len(bitmaps)]
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.'
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)
93 self.count = self.count + 1
95 self.button.configure(text = 'Show another\ntoplevel megawidget')
97 ######################################################################
99 # Create demo in root window for testing.
100 if __name__ == '__main__':
105 exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
106 exitButton.pack(side = 'bottom')