summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/example1
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1995-11-14 11:32:53 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1995-11-14 11:32:53 (GMT)
commit310c657d752d47cb31f1726f8f3e504ac7a6db8b (patch)
tree228e2ff19cb4949e9411844fc75f94b83f7dde20 /Mac/Demo/example1
parent07043b45737f8c85363aba0ed0d591fa55685daf (diff)
downloadcpython-310c657d752d47cb31f1726f8f3e504ac7a6db8b.zip
cpython-310c657d752d47cb31f1726f8f3e504ac7a6db8b.tar.gz
cpython-310c657d752d47cb31f1726f8f3e504ac7a6db8b.tar.bz2
Control InterSLIP using a modal dialog
Diffstat (limited to 'Mac/Demo/example1')
-rw-r--r--Mac/Demo/example1/InterslipControl-1.py92
-rw-r--r--Mac/Demo/example1/InterslipControl-1.rsrc.hqx13
2 files changed, 105 insertions, 0 deletions
diff --git a/Mac/Demo/example1/InterslipControl-1.py b/Mac/Demo/example1/InterslipControl-1.py
new file mode 100644
index 0000000..14fc59c
--- /dev/null
+++ b/Mac/Demo/example1/InterslipControl-1.py
@@ -0,0 +1,92 @@
+"""Sample program handling InterSLIP control and showing off EasyDialogs,
+Res and Dlg in the process"""
+
+import EasyDialogs
+import Res
+import Dlg
+import sys
+import interslip
+#
+# Definitions for our resources
+ID_MAIN=512
+
+ITEM_CONNECT=1
+ITEM_DISCONNECT=2
+ITEM_UPDATE=3
+ITEM_QUIT=4
+ITEM_STATUS=5
+ITEM_MESSAGE=6
+
+status2text = ["<idle>", "<wait-modem>", "<dialling>", "<logging in>",
+ "<connected>", "<disconnecting>"]
+
+
+def main():
+ """Main routine: open resourcefile, open interslip, call dialog handler"""
+ try:
+ Res.OpenResFile("InterslipControl-1.rsrc")
+ except Res.Error, arg:
+ EasyDialogs.Message("Cannot open resource file InterslipControl-1.rsrc: "+
+ arg[1])
+ sys.exit(1)
+ try:
+ interslip.open()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot open interslip: "+arg[1])
+ sys.exit(1)
+ do_dialog()
+
+def do_dialog():
+ """Post dialog and handle user interaction until quit"""
+ my_dlg = Dlg.GetNewDialog(ID_MAIN, -1)
+ while 1:
+ n = Dlg.ModalDialog(None)
+ if n == ITEM_CONNECT:
+ do_connect()
+ elif n == ITEM_DISCONNECT:
+ do_disconnect()
+ elif n == ITEM_UPDATE:
+ status, msg = do_status()
+
+ # Convert status number to a text string
+ try:
+ txt = status2text[status]
+ except IndexError:
+ txt = "<unknown state %d>"%status
+
+ # Set the status text field
+ tp, h, rect = my_dlg.GetDialogItem(ITEM_STATUS)
+ Dlg.SetDialogItemText(h, txt)
+
+ # Set the message text field
+ tp, h, rect = my_dlg.GetDialogItem(ITEM_MESSAGE)
+ Dlg.SetDialogItemText(h, msg)
+ elif n == ITEM_QUIT:
+ break
+
+def do_connect():
+ """Connect, posting error message in case of failure"""
+ try:
+ interslip.connect()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot connect: "+arg[1])
+
+def do_disconnect():
+ """Disconnect, posting error message in case of failure"""
+ try:
+ interslip.disconnect()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot disconnect: "+arg[1])
+
+def do_status():
+ """Get status as (state_index, message),
+ posting error message in case of failure"""
+ try:
+ status, msgnum, msg = interslip.status()
+ except interslip.error, arg:
+ EasyDialogs.Message("Cannot get status: "+arg[1])
+ return 0, ''
+ return status, msg
+
+
+main()
diff --git a/Mac/Demo/example1/InterslipControl-1.rsrc.hqx b/Mac/Demo/example1/InterslipControl-1.rsrc.hqx
new file mode 100644
index 0000000..d2c937f
--- /dev/null
+++ b/Mac/Demo/example1/InterslipControl-1.rsrc.hqx
@@ -0,0 +1,13 @@
+(This file must be converted with BinHex 4.0)
+:&dPZG'9bFfaTF%0[ER4bEf`Y-5jbFh*M!(*cFQ058d9%!*!)!LIr03#3"!%!N!-
+"``#3!m-!N!0NCQBd4$9%-%3a4$*%-a*QCM-c0%8e46"&-88b46-5CQBA5@jdCA*
+cE'P`3fpZG(*[E#da,R*cFQ-#!*!$FR0bB`!!FR0bBe*6483"!!"R!(S!N"+X``N
+h!*!'!LFcN!3d)!!e)!!`)!!a)!!b)!!c%M-c!!!d)!%e)!%`)!%a)!%b)!%c5b@
+U5bQU5bUU5bZU5bbU5bfU5bkU5bp,0kT,1+T,1DT,1UT,1kT,2+T,2DT,2UT,2kT
+,3+T,3DT,3UT,3kT,4+T,4DT,4UT,4kT,5+T,5DT,5UT,)!#U5b!!N!-9!'!!-J$
+!!C)!!3%!!3#3"3)!N!@Q!!F!N!8m!!S!8!"@"!G$EfjZC@0d!*!'2!"D!&!!V`3
++4'PcBfpZEQ9MG!#3"6`!Y!"3!4F%$99`C'&dC5"cG'&dGA-!N!Bm!5)!8!&@"!4
+4G@Pd!*!&#J"D!"S"9BJ!N!BH!&S!,J&@L!#3"JS!#J!D!&@)"e0dBA4eFcTK!*!
+&(J!+!#i!9BJ)6@9cFf&RC6S!!!%!N!-"``#3!m-!N!0N!2!Xe"2@!*!$(!"'!!&
+%6%p(!*!$%N4*9%`!N!-H!J#3#2!VV!)!!!m!N!-C!2!VE!j$EfjdFQpX)%4TB@a
+[C`j$EfjdFQpX)'4TB@a[ChcP: