"""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 = ["", "", "", "", "", ""] 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 = ""%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()