summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/example2/InterslipControl-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Demo/example2/InterslipControl-2.py')
-rw-r--r--Mac/Demo/example2/InterslipControl-2.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/Mac/Demo/example2/InterslipControl-2.py b/Mac/Demo/example2/InterslipControl-2.py
new file mode 100644
index 0000000..661c4a4
--- /dev/null
+++ b/Mac/Demo/example2/InterslipControl-2.py
@@ -0,0 +1,116 @@
+import FrameWork
+import EasyDialogs
+import Res
+import Dlg
+import sys
+import interslip
+#
+# Definitions for our resources
+ID_MAIN=512
+ID_ABOUT=513
+
+ITEM_CONNECT=1
+ITEM_DISCONNECT=2
+ITEM_STATUS=3
+ITEM_MESSAGE=4
+
+status2text = ["<idle>", "<wait-modem>", "<dialling>", "<logging in>",
+ "<connected>", "<disconnecting>"]
+
+def main():
+ try:
+ interslip.open()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot open interslip: "+arg[1])
+ sys.exit(1)
+ try:
+ dummy = Res.GetResource('DLOG', ID_MAIN)
+ except Res.Error:
+ try:
+ Res.OpenResFile("InterslipControl-2.rsrc")
+ except Res.error:
+ EasyDialogs.Message("Cannot open InterslipControl-2.rsrc: "+arg[1])
+ sys.exit(1)
+ InterslipControl()
+
+class InterslipControl(FrameWork.Application):
+ "Application class for InterslipControl"
+
+ def __init__(self):
+ # First init menus, etc.
+ FrameWork.Application.__init__(self)
+ # Next create our dialog
+ self.main_dialog = MyDialog(self)
+ # Now open the dialog
+ self.main_dialog.open(ID_MAIN)
+ # Finally, go into the event loop
+ self.mainloop()
+
+ def makeusermenus(self):
+ self.filemenu = m = FrameWork.Menu(self.menubar, "File")
+ self.quititem = FrameWork.MenuItem(m, "Quit", "Q", self.quit)
+
+ def quit(self, *args):
+ raise self
+
+ def do_about(self, *args):
+ f = Dlg.GetNewDialog(ID_ABOUT, -1)
+ while 1:
+ n = Dlg.ModalDialog(None)
+ if n == 1:
+ return
+
+ def idle(self):
+ "Idle routine - update status"
+ self.main_dialog.updatestatus()
+
+class MyDialog(FrameWork.DialogWindow):
+ "Main dialog window for InterslipControl"
+ def __init__(self, parent):
+ FrameWork.DialogWindow.__init__(self, parent)
+ self.last_status = None
+ self.last_msgnum = None
+
+ def do_itemhit(self, item, event):
+ if item == ITEM_DISCONNECT:
+ self.disconnect()
+ elif item == ITEM_CONNECT:
+ self.connect()
+
+ def connect(self):
+ try:
+ interslip.connect()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot connect: "+arg[1])
+
+ def disconnect(self):
+ try:
+ interslip.disconnect()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot disconnect: "+arg[1])
+
+ def updatestatus(self):
+ try:
+ status, msgnum, msg = interslip.status()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot get status: "+arg[1])
+ sys.exit(1)
+ if status == self.last_status and msgnum == self.last_msgnum:
+ return
+ self.last_status = status
+ self.last_msgnum = msgnum
+ if msgnum == 0:
+ msg = ''
+
+ try:
+ txt = status2text[status]
+ except IndexError:
+ txt = "<unknown state %d>"%status
+
+ tp, h, rect = self.wid.GetDialogItem(ITEM_STATUS)
+ Dlg.SetDialogItemText(h, txt)
+
+ tp, h, rect = self.wid.GetDialogItem(ITEM_MESSAGE)
+ Dlg.SetDialogItemText(h, msg)
+
+main()