]> SALOME platform Git repositories - tools/eficas.git/blob - Pmw/Pmw_1_2/demos/MessageBar.py
Salome HOME
*** empty log message ***
[tools/eficas.git] / Pmw / Pmw_1_2 / demos / MessageBar.py
1 title = 'Pmw.MessageBar demonstration'
2
3 # Import Pmw from this directory tree.
4 import sys
5 sys.path[:0] = ['../../..']
6
7 import Tkinter
8 import Pmw
9
10 class 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
59 messages = {
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
68 stateMessages = {
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.
77 if __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()