Mercurial > cpython-lru_cache-weakref
annotate Mac/Demo/example2/InterslipControl-2.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 3b3870b9acf2 |
| children |
| rev | line source |
|---|---|
|
3272
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 import FrameWork |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 import EasyDialogs |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 import Res |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 import Dlg |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 import sys |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 import interslip |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 # |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 # Definitions for our resources |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 ID_MAIN=512 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 ID_ABOUT=513 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 ITEM_CONNECT=1 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 ITEM_DISCONNECT=2 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 ITEM_STATUS=3 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 ITEM_MESSAGE=4 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 status2text = ["<idle>", "<wait-modem>", "<dialling>", "<logging in>", |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 "<connected>", "<disconnecting>"] |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 def main(): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 interslip.open() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 except interslip.error, arg: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 EasyDialogs.Message("Cannot open interslip: "+arg[1]) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 sys.exit(1) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 dummy = Res.GetResource('DLOG', ID_MAIN) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 except Res.Error: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 Res.OpenResFile("InterslipControl-2.rsrc") |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 except Res.error: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 EasyDialogs.Message("Cannot open InterslipControl-2.rsrc: "+arg[1]) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 sys.exit(1) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 InterslipControl() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 class InterslipControl(FrameWork.Application): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 "Application class for InterslipControl" |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 def __init__(self): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 # First init menus, etc. |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 FrameWork.Application.__init__(self) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 # Next create our dialog |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 self.main_dialog = MyDialog(self) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 # Now open the dialog |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 self.main_dialog.open(ID_MAIN) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 # Finally, go into the event loop |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 self.mainloop() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 def makeusermenus(self): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 self.filemenu = m = FrameWork.Menu(self.menubar, "File") |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 self.quititem = FrameWork.MenuItem(m, "Quit", "Q", self.quit) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 def quit(self, *args): |
|
4314
3b3870b9acf2
Calling Application._quit() is now preferred over raising self.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3529
diff
changeset
|
54 self._quit() |
|
3272
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 def do_about(self, *args): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 f = Dlg.GetNewDialog(ID_ABOUT, -1) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 while 1: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 n = Dlg.ModalDialog(None) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 if n == 1: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 return |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 |
|
3529
50e5b4c5895f
Idle callback is now supplied with the null event causing it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3272
diff
changeset
|
63 def idle(self, event): |
|
3272
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 "Idle routine - update status" |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 self.main_dialog.updatestatus() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 class MyDialog(FrameWork.DialogWindow): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 "Main dialog window for InterslipControl" |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 def __init__(self, parent): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 FrameWork.DialogWindow.__init__(self, parent) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 self.last_status = None |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 self.last_msgnum = None |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 def do_itemhit(self, item, event): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 if item == ITEM_DISCONNECT: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 self.disconnect() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 elif item == ITEM_CONNECT: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 self.connect() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 def connect(self): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 interslip.connect() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 except interslip.error, arg: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 EasyDialogs.Message("Cannot connect: "+arg[1]) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 def disconnect(self): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 interslip.disconnect() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 except interslip.error, arg: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 EasyDialogs.Message("Cannot disconnect: "+arg[1]) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 def updatestatus(self): |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 status, msgnum, msg = interslip.status() |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
95 except interslip.error, arg: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 EasyDialogs.Message("Cannot get status: "+arg[1]) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 sys.exit(1) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 if status == self.last_status and msgnum == self.last_msgnum: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 return |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 self.last_status = status |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 self.last_msgnum = msgnum |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 if msgnum == 0: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 msg = '' |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 try: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 txt = status2text[status] |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 except IndexError: |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 txt = "<unknown state %d>"%status |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 tp, h, rect = self.wid.GetDialogItem(ITEM_STATUS) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
111 Dlg.SetDialogItemText(h, txt) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
112 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
113 tp, h, rect = self.wid.GetDialogItem(ITEM_MESSAGE) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 Dlg.SetDialogItemText(h, msg) |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 |
|
6122730b7988
Control InterSLIP using modeless dialog, uses FrameWork
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 main() |
