Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / demos / MessageBar.py
CommitLineData
920dae64
AT
1title = 'Pmw.MessageBar demonstration'
2
3# Import Pmw from this directory tree.
4import sys
5sys.path[:0] = ['../../..']
6
7import Tkinter
8import Pmw
9
10class Demo:
11 def __init__(self, parent):
12 # Create and pack the MessageBar.
13 self._messagebar = Pmw.MessageBar(parent,
14 entry_width = 40,
15 entry_relief='groove',
16 labelpos = 'w',
17 label_text = 'Status:')
18 self._messagebar.pack(side = 'bottom', fill = 'x',
19 expand = 1, padx = 10, pady = 10)
20
21 # Create and pack the ScrolledListBox to change the MessageBar.
22 self.box = Pmw.ScrolledListBox(parent,
23 listbox_selectmode='single',
24 items=('state', 'help', 'userevent', 'systemevent',
25 'usererror', 'systemerror', 'busy',),
26 label_text='Message type',
27 labelpos='n',
28 selectioncommand=self.selectionCommand)
29 self.box.pack(fill = 'both', expand = 'yes', padx = 10, pady = 10)
30
31 self._index = 0
32 self._stateCounter = 0
33
34 def selectionCommand(self):
35 sels = self.box.getcurselection()
36 if len(sels) > 0:
37 self._index = self._index + 1
38 messagetype = sels[0]
39 if messagetype == 'state':
40 self._stateCounter = (self._stateCounter + 1) % 3
41 text = stateMessages[self._stateCounter]
42 if text != '':
43 text = text + ' (' + messagetype + ')'
44 self._messagebar.message('state', text)
45 else:
46 text = messages[messagetype]
47 text = text + ' (' + messagetype + ')'
48 self._messagebar.message(messagetype, text)
49 if messagetype == 'busy':
50 Pmw.showbusycursor()
51 self.box.after(2000)
52 Pmw.hidebusycursor()
53 self._messagebar.resetmessages('busy')
54 text = 'All files successfully removed'
55 text = text + ' (userevent)'
56 self._messagebar.message('userevent', text)
57
58
59messages = {
60 'help': 'Save current file',
61 'userevent': 'Saving file "foo"',
62 'busy': 'Busy deleting all files from file system ...',
63 'systemevent': 'File "foo" saved',
64 'usererror': 'Invalid file name "foo/bar"',
65 'systemerror': 'Failed to save file: file system full',
66}
67
68stateMessages = {
69 0: '',
70 1: 'Database is down',
71 2: 'Waiting for reply from database',
72}
73
74######################################################################
75
76# Create demo in root window for testing.
77if __name__ == '__main__':
78 root = Tkinter.Tk()
79 Pmw.initialise(root)
80 root.title(title)
81
82 exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
83 exitButton.pack(side = 'bottom')
84 widget = Demo(root)
85 root.mainloop()