Control InterSLIP using modeless dialog, uses FrameWork

This commit is contained in:
Jack Jansen 1995-11-14 11:33:32 +00:00
parent 310c657d75
commit 4ac724946a
2 changed files with 171 additions and 0 deletions

View File

@ -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()

View File

@ -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: