/[james]/currency/!Currency/py/Update.py
ViewVC logotype

Annotation of /currency/!Currency/py/Update.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 12 - (hide annotations) (download) (as text)
Mon Feb 10 18:25:55 2003 UTC (21 years, 10 months ago) by james
File MIME type: text/x-python
File size: 2229 byte(s)
Initial import.

1 james 12 # !Currency.py.Update/py
2    
3     import swi
4     import wimp
5     import ConvrtW
6     import Rates
7    
8    
9     def update():
10     global window_update
11     window_update = wimp.window('update')
12     status(wimp.lookup('status.begin'), 1, wimp.lookup('action.begin'))
13     window_update.open_centred(-1)
14     window_update.put_caret()
15     if action():
16     return
17     while 1:
18     status(wimp.lookup('status.updating'), 0, 0)
19     wimp.hourglass_on()
20     try:
21     Rates.update(wimp.lookup('url'), '<Currency$Dir>.Rates',
22     wimp.lookup('us'), wimp.lookup('dollar'))
23     except IOError, (type, error):
24     wimp.hourglass_off()
25     swi.swi(0x107, '')
26     status(wimp.lookup('status.error') % (type, error), 1, wimp.lookup('action.error'))
27     if action():
28     return
29     continue
30     break
31     ConvrtW.update()
32     wimp.hourglass_off()
33     status(wimp.lookup('status.done') % Rates.date(), 0, wimp.lookup('action.done'))
34     if action():
35     return
36     window_update.remove()
37    
38    
39     def action():
40     while 1:
41     event, details = wimp.poll(1)
42     if event == 6:
43     if details[0] == window_update:
44     window_update.put_caret()
45     if details[0] == window_update and details[1] == 2:
46     return 0
47     elif details[0] == window_update and details[1] == 1:
48     window_update.remove()
49     return 1
50     elif details[0] != window_update:
51     window_update.remove()
52     wimp.handle((event, details))
53     return 1
54     elif event == 8:
55     if details[0] == window_update and details[2] == 0xd:
56     return 0
57     elif details[0] == window_update and details[2] == 0x1b:
58     window_update.remove()
59     return 1
60     else:
61     wimp.handle((event, details))
62     else:
63     wimp.handle((event, details))
64    
65    
66     def status(status, cancel, action):
67     window_update.icon_text(0, status)
68     window_update.icon_grey(1, 1 - cancel)
69     if action == 0:
70     window_update.icon_grey(2)
71     else:
72     window_update.icon_ungrey(2)
73     window_update.icon_text(2, action)

  ViewVC Help
Powered by ViewVC 1.1.26