diff options
| -rw-r--r-- | Mac/Demo/example2/InterslipControl-2.py | 116 | ||||
| -rw-r--r-- | Mac/Demo/example2/InterslipControl-2.rsrc.hqx | 55 |
2 files changed, 171 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() diff --git a/Mac/Demo/example2/InterslipControl-2.rsrc.hqx b/Mac/Demo/example2/InterslipControl-2.rsrc.hqx new file mode 100644 index 0000000..f940bf6 --- /dev/null +++ b/Mac/Demo/example2/InterslipControl-2.rsrc.hqx @@ -0,0 +1,55 @@ +(This file must be converted with BinHex 4.0) +:&dPZG'9bFfaTF%0[ER4bEf`Y-LjbFh*M!(*cFQ058d9%!*!)$2eid3#3"!%!N!- +,T!!!#U3!!!&CCQBd4$9%-%3a4$*%-a*QCM-c0%8e46"&-88b46-5CQBA5@jdCA* +cE'P`3fpZG(*[E#db,R*cFQ-#!!)!FR0bB`)!FR0bBe*6483"!!!d!)!!N"+X``N +h!*!'$2dcN!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!'B!KJ$ +&!GB!!!%!!3#3"3)!N!89!'!!E!%@!AJ!!3%!!3#3"3)"!*!%(&"C9'N!N!-"4P* +&4J#3"B"*3diM!*!&J!#3!`G"8&"-!*!&!3!!!3!!%!+!!!3%3!"%##!!9I!3!&% +J#!"3i!3!8-!#!"2`!3"6m!#!4rJ13%ri%5"Ar#U3!'rm3%K2r&9%crj!3Rrq+S& +rrK%#(rm1"#hr!)JVIbp3+b9HS'PPS%"T*B#!Irq"!!!J!J!!%!3!!!J)!!!%%!! +!!L!!!!&!!*!$J!!!!3!!%!1!!!3(`!"%$q!!9Ir`!&(rq!"3rr`!82rq!"2rr`" +6rrq!4rrr`%rrrq"Irrr`Irrrq(rrrrcrN!2qIrq3!hrrrriIrrrm2rrrq$rrrr! +rrrrJIrrr`(rrri"rrrm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!N!1!!*!$"!# +3%2m!N"2r!*!+r`$r!*!8r`#3"rm!+`$r!*!2r`#3!rm!N!Er!#Z3!`$r!*!1r`$ +r!2m!X*!%r`!VN!8!r`#3$Im!r`#3!l!!!,!VN!J!r`#3$2m!r`#3",#`qT!$+j! +(!2m!N