summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1995-11-14 11:33:32 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1995-11-14 11:33:32 (GMT)
commit4ac724946a165ac5f7f2a8367f937bac3dd1bdc5 (patch)
treefa36a71fe23b74f6230e7155782c61fcda96ab38 /Mac
parent310c657d752d47cb31f1726f8f3e504ac7a6db8b (diff)
downloadcpython-4ac724946a165ac5f7f2a8367f937bac3dd1bdc5.zip
cpython-4ac724946a165ac5f7f2a8367f937bac3dd1bdc5.tar.gz
cpython-4ac724946a165ac5f7f2a8367f937bac3dd1bdc5.tar.bz2
Control InterSLIP using modeless dialog, uses FrameWork
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Demo/example2/InterslipControl-2.py116
-rw-r--r--Mac/Demo/example2/InterslipControl-2.rsrc.hqx55
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![r!2m!N!5`X2U3!bZ3#!$r!*!-r`!!X*!'+j!+!2m!N!Rr!2m!!,#3"LZ
+3#`$r!*!)r`#3!l#3#2SVN!Emrr`V!2m!N!Ir!!$rX*!)qLZ3"2Q*+j!$LIN!r`#
+3"[m!r`#`N!MkqLZ3!iNVL5Z*+r`V!2m!N!Arr`#`N!Vk+b[m+j!(r#X!r`#3"2m
+!+l#3#[SV+rmVL5Z*+iNVrbXV!2m!!2rr+bZ`N!VkqL[m+j!(r#Z3!`$r!!$rr,#
+3$2SV+r`VL5Z*+iNVN!Er!2rrX*!-qLXVqBNVN!1*q5Z3"2Vr!*!%X*!-q[SVN!2
+mrr`VN!Akr`#3",!&X,!&X*!*qLZ3"rmV+rVr!*!&X!@`"E#`"E#3"rSVrb[rN!6
+jrrVr!*!'X!@`"E#`"3@`"3@`"E$krrRrN!3VrrVr!*!'X,!&X!8&X!@`X!8&X!@
+`X#[r+j!&q[m!N!H`X!@`"3@`"3@`"3@`"E#`qLZ3"IVr!*!)X*!3q[SVN!2kr`#
+3%[rkN!JV+rVr!*!8rrU3"b[kr`#3&[rk+j!&q[m!N"MrqLZ3!rVr!*!DrrSVq[m
+!N"crq[m!N"lr!*!4!J#3#!m!N!N2!*!&m2!!N!N2!*!$$``2!*!($`!2!*!$m-c
+!m!#3"Jq3!`99A`c-c!m!N!B2$`!&!&c-N!2!m!#3"3m2!!"9hGc-N!-2!*!&$`m
+!!&AGh-b3!m$`!*!&$`"9N!2-N!82!*!%$`m!9C!$c*!&`2!!N!-2!!99N!0Gc*!
+$lq`2!*!$$`$e9C!$AFc-fXc+d2!!!!m2"9@3!ehFc+b3!q`2!!!2m&@3"Gc1c*!
+$cX$`!!m-9C!&h-r+N!22c!m!rma9N!AGcXb3!ml-`2!2j9@3"9h-l+b3!mc-c`r
+e9C!&AFcDc-VFc-h`!!99N!9Gh-c[l-c-h`!!89899C!%h-b3!rc0m!!!89&9&9@
+3!pcmrrrIh`#3!e&494&4&4AIhrrmrI!!!!9484898489A2c-c0m!N!-&89%9%9%
+9&9h-c-h`!*!$"9@3"ehFc0m!N!RphC!$h-h`!*!*$pf3!pcI!*!,rFc-cI!!N!X
+2h-cI!*!0rFh`!*!0$pm!N!r`!*!*!3#3"Im!N!2r!*!*r`$r!!$r!2m!N!cr!#X
+!r`#3#[m!+j!$!2m!N!Er!,#3!bZ3"!$r!*!&rrm!X2Rj+j!%!2m!N!6r!,#3!bZ
+3!rQ*+`$r!!$rrbZ`N!2j+bZ*q5Z3!rm!!2q`N!Aj+j!%qIm!N!5`N!Aj+rrrqIm
+!N!5`"E!&X!@`q5[jr`#3"E#3"rRjr`#3#[rjN!2r!*!-rrRr!*!1r`#3'S!!!2!
+!m!#3"2$`$`m!N!E``2!!N!32$-`2!*!$m&9Fc-$`!!$r"Gh-c!m!!2"9A-cD`2!
+2r&9Gc+h-c`$e99AFc-h`!!999Gcrh`!!8C!$AFh`!!"9N!0Gh`#3"IhGm!#3"3r
+I!*!(m!#3$N!)J#P!!L!%%#i)0!3Z%QiK2`)I0#U)2j!!!L!"3!#!!!!)J#R!!q!
+(m#ri2r`rrRrr2riIr$ri2r!$i!(!!)!!N!9i!!8!N!8m!!S!8!"@"!G$EfjZC@0
+d!*!'2!$`!&!"433+4'PcBfpZEQ9MG!#3"3S!@J!D!8D)!*!'(J"D!#i"4SJ!N!B
++!!S!'J"9L!G6G'&dGA-km!#3"4i!#J!Z!&@)#%ePFh0KCf8k!*!$CJ!$!*!&PJ"
+a!+S!U`3#6dX!N!8+!(%!5J#aS!)#!3#3"9!!9!"J!-Q)%8PZG'9bFfaTF#"$Efj
+dFQpXB3#3"@i!2!#$!1')&NTKBfXJ5Q&ZFf9Z,#"$9dNX)$%j168!N!1!!!%!!"!
+#J!!%"%!!4!JJ!&A`%!"4)!J!81!%!&$!!J!6m!%!8r!!J%Ii$N"2q"%J9r`UN!"
+[r%")6ra94-rq3%*rrLU"Iri4!Krr$J3Yr`#)+hm[8#XPAU"TCD"!D5@!J(rrJ3!
+!)!)!!"!%!!!)#!!!""!!!!)J!!!"3!#3!i!!N!3"!*!$!3#3!`ZN!!!+T!!!!9N
+!a!8%%Pi!N!-F!5B!#d4-6dF!!3"L4%P86!!"!(T#6N4-!*!$NNC548B!N!1H580
+1)`#3!kTTBf`i!*!$YQPME$3!N!2#D@0c1!#3!mjTBh-d!*!$fQPMFb-!N!2Q580
+26J#3!r*3@94T!*!$rJ)!N!X#!3!2!*!$'3#3"!)!rrm!!!Ne!*!%!J(rr`!!#E%
+!N!@!rrm!N!-b!-3$U!#!rrm!N!05!-3#X!#!rrm!N!0G!-3#Y!#!rrm!!!&K!-3
+#1!#!rrm!!!9P!-3$D!#!rrm!!!GT!-3#+!#!rrm!!!KY!-3#2!#!rrm!!!Ma!-3
+#3!)"!"N!!!SE!*!(*!!!#Tm!a!)X$N0[ER4bEf`J4'PKE'pR#8&LEh9d)'*[H!T
+"BQpeG#"*BfpZ$NphEQ9b)(*PFfpeFQ0PITS: