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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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()