diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1995-11-14 11:32:53 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-11-14 11:32:53 (GMT) |
commit | 310c657d752d47cb31f1726f8f3e504ac7a6db8b (patch) | |
tree | 228e2ff19cb4949e9411844fc75f94b83f7dde20 /Mac/Demo/example1 | |
parent | 07043b45737f8c85363aba0ed0d591fa55685daf (diff) | |
download | cpython-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.py | 92 | ||||
-rw-r--r-- | Mac/Demo/example1/InterslipControl-1.rsrc.hqx | 13 |
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: |