/* prf_imsghandler.c */ /* V1.1 9-3-92 */ #include "prf.h" long HandleImsg(struct prf_info *info) { struct Gadget *gp; long rc = CMD_NEUTRAL; switch(info->imsg->Class) { case IDCMP_VANILLAKEY : switch(info->imsg->Code) { case KEY_ABOUT_L : case KEY_ABOUT_U : rc = CMD_ABOUT; break; case KEY_HEADL_L : case KEY_HEADL_U : rc = CMD_HEAD; break; case KEY_FOOTL_L : case KEY_FOOTL_U : rc = CMD_FOOT; break; case KEY_DATE_L : case KEY_DATE_U : (info->flags & FLAG_DATE) ? (rc = CMD_DATE_OFF) : (rc = CMD_DATE_ON); break; case KEY_TIME_L : case KEY_TIME_U : (info->flags & FLAG_TIME) ? (rc = CMD_TIME_OFF) : (rc = CMD_TIME_ON); break; case KEY_NAME_L : case KEY_NAME_U : (info->flags & FLAG_FILE) ? (rc = CMD_NAME_OFF) : (rc = CMD_NAME_ON); break; case KEY_PAGE_L : case KEY_PAGE_U : (info->flags & FLAG_PAGE) ? (rc = CMD_PAGE_OFF) : (rc = CMD_PAGE_ON); break; case KEY_LINE_L : case KEY_LINE_U : (info->flags & FLAG_LINE) ? (rc = CMD_LINE_OFF) : (rc = CMD_LINE_ON); break; case KEY_CRLF_L : case KEY_CRLF_U : (info->flags & FLAG_CRLF) ? (rc = CMD_CRLF_OFF) : (rc = CMD_CRLF_ON); break; case KEY_FF_L : case KEY_FF_U : (info->flags & FLAG_FF) ? (rc = CMD_FF_OFF) : (rc = CMD_FF_ON); break; case KEY_PRINT_L : case KEY_PRINT_U : rc = CMD_PRINT; break; case KEY_PITCH6 : rc = CMD_PITCH6; break; case KEY_PITCH8 : rc = CMD_PITCH8; break; case KEY_CPI10 : rc = CMD_10CPI; break; case KEY_CPI12 : rc = CMD_12CPI; break; case KEY_CPI15 : rc = CMD_15CPI; break; case KEY_OPENPWD_L : case KEY_OPENPWD_U : rc = CMD_OPENPWD; break; case KEY_QUIT_L : case KEY_QUIT_U : rc = CMD_QUIT; break; case KEY_FILEREQ_L : case KEY_FILEREQ_U : rc = CMD_FILEREQ; break; case KEY_REMOVE_L : case KEY_REMOVE_U : rc = CMD_REMOVE; break; default : break; } break; case IDCMP_CLOSEWINDOW : if(info->imsg->IDCMPWindow == info->Pwd) rc = CMD_CLOSEPWD; else rc = CMD_QUIT; break; case IDCMP_GADGETDOWN : gp = (struct Gadget *)info->imsg->IAddress; switch(gp->GadgetID) { case GD_Quality : rc = (info->imsg->Code == 0) ? CMD_DRAFT : CMD_LQ; break; case GD_Pitch : rc = (info->imsg->Code == 0) ? CMD_PITCH6 : CMD_PITCH8; break; case GD_cpi : rc = (info->imsg->Code == 0) ? CMD_10CPI : (info->imsg->Code == 1) ? CMD_12CPI : CMD_15CPI; default: break; } break; case IDCMP_GADGETUP : gp = (struct Gadget *)info->imsg->IAddress; switch(gp->GadgetID) { case GD_Saveprefs : rc = CMD_SAVEPREFS; break; case GD_Linesperpage : rc = CMD_LINES; break; case GD_Rmargin : rc = CMD_RMARGIN; break; case GD_Lmargin : rc = CMD_LMARGIN; break; case GD_PwdButton : rc = CMD_OPENPWD; break; case GD_quit : rc = CMD_QUIT; break; case GD_Gadget11 : rc = CMD_STR_INSERT; break; case GD_Filereq : rc = CMD_FILEREQ; break; case GD_Remove : rc = CMD_REMOVE; break; case GD_About : rc = CMD_ABOUT ; break; case GD_Headline : rc = CMD_HEADL ; break; case GD_Footline : rc = CMD_FOOTL ; break; case GD_Date : (info->flags & FLAG_DATE) ? (rc = CMD_DATE_OFF) : (rc = CMD_DATE_ON); break; case GD_Time : (info->flags & FLAG_TIME) ? (rc = CMD_TIME_OFF) : (rc = CMD_TIME_ON); break; case GD_Filename : (info->flags & FLAG_FILE) ? (rc = CMD_NAME_OFF) : (rc = CMD_NAME_ON); break; case GD_Pagenumber : (info->flags & FLAG_PAGE) ? (rc = CMD_PAGE_OFF) : (rc = CMD_PAGE_ON); break; case GD_Linenumber : (info->flags & FLAG_LINE) ? (rc = CMD_LINE_OFF) : (rc = CMD_LINE_ON); break; case GD_CRLF : (info->flags & FLAG_CRLF) ? (rc = CMD_CRLF_OFF) : (rc = CMD_CRLF_ON); break; case GD_FF : (info->flags & FLAG_FF) ? (rc = CMD_FF_OFF) : (rc = CMD_FF_ON); break; case GD_PPrint : case GD_Print : rc = CMD_PRINT; break; default : break; } break; default : break; } return (rc); }