117 lines
2.6 KiB
Python
117 lines
2.6 KiB
Python
|
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()
|