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) |