home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prt_util / printfls.lha / Source.lha / Source / prf_docommand.c < prev    next >
C/C++ Source or Header  |  1992-06-16  |  15KB  |  274 lines

  1. /* prf_docommand.c */
  2. /* V091 9-3-92 */
  3.  
  4. #include "prf.h"
  5.  
  6. struct EasyStruct AboutReq =
  7.        {
  8.         0L,0L,(UBYTE *)ABOUT_LINE1,
  9.               (UBYTE *)ABOUT_LINE2,
  10.               (UBYTE *)ABOUT_LINE3,
  11.        };
  12.  
  13. struct EasyStruct QuitReq =
  14.        {
  15.         0L,0L,(UBYTE *)QUIT_LINE1,
  16.               (UBYTE *)QUIT_LINE2,
  17.               (UBYTE *)QUIT_LINE3
  18.        };
  19. struct EasyStruct StopReq =
  20.        {
  21.         0L,0L,(UBYTE *)STOP_LINE1,
  22.               (UBYTE *)STOP_LINE2,
  23.               (UBYTE *)STOP_LINE3,
  24.        };
  25.  
  26. struct EasyStruct FinalReq =
  27.        {
  28.         0L,0L,(UBYTE *)FINAL_LINE1,
  29.               (UBYTE *)FINAL_LINE2,
  30.               (UBYTE *)FINAL_LINE3,
  31.        };
  32.  
  33. long __regargs DoCommand(struct prf_info *info, long cmd)
  34. {
  35.  struct StringInfo *s;
  36.  struct Node       *n;
  37.  BOOL               rc1;
  38.  long               ins = CMD_INSERTTAIL;
  39.  long               rc  = CMD_NEUTRAL;
  40.  switch(cmd)
  41.  {
  42.   case  CMD_CLOSEPRINTER : rc = CMD_CLOSEPRINTER;
  43.                            break;
  44.   case  CMD_ICONINFO : info->flags.icon = 2;
  45.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Icons - PGD],info->Pwd,NULL,GTMX_Active,2,TAG_DONE);
  46.                        break;
  47.   case  CMD_ICONGFX  : info->flags.icon = 1;
  48.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Icons - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  49.                        break;
  50.   case  CMD_ICONNONE : info->flags.icon = 0;
  51.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Icons - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  52.                        break;
  53.   case  CMD_ICONALL  : info->flags.icon = 3;
  54.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Icons - PGD],info->Pwd,NULL,GTMX_Active,3,TAG_DONE);
  55.                        break;
  56.   case  CMD_PROGALL  : info->flags.prog = 3;
  57.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Progs - PGD],info->Pwd,NULL,GTMX_Active,3,TAG_DONE);
  58.                        break;
  59.   case  CMD_PROGINFO : info->flags.prog = 1;
  60.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Progs - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  61.                        break;
  62.   case  CMD_PROGICON : info->flags.prog = 2;
  63.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Progs - PGD],info->Pwd,NULL,GTMX_Active,2,TAG_DONE);
  64.                        break;
  65.   case  CMD_PROGNONE : info->flags.prog = 0;
  66.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Progs - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  67.                        break;
  68.   case CMD_RESETALL  : Prf_Reset(info);
  69.                        break;
  70.   case CMD_CLEARLIST : DetachList(info);
  71.                        while(n = (struct Node *)RemHead(&info->FileList))free((struct FileNameNode *)n);
  72.                        AttachList(info);
  73.                        break;
  74.   case CMD_SAVEPREFS : SavePreferences(info,NULL);
  75.                        break;
  76.   case CMD_PRINT     : PrintQueue(info);
  77.                        break;
  78.   case CMD_OPENWD    : ChangeApp(info);
  79.                        break;
  80.   case CMD_CLOSEWD   : ChangeApp(info);
  81.                        break;
  82.   case CMD_LMARGIN   : s = (struct StringInfo *)info->PGadgets[GD_Lmargin - PGD]->SpecialInfo;
  83.                        if(s->LongInt < info->Rmargin )
  84.                        {
  85.                         info->Lmargin = (ULONG)s->LongInt;
  86.                         info->Columns = info->Rmargin - info->Lmargin;
  87.                        }
  88.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Lmargin - PGD],info->Pwd,NULL,GTIN_Number,info->Lmargin,TAG_DONE);
  89.                        break;
  90.   case CMD_RMARGIN   : s = (struct StringInfo *)info->PGadgets[GD_Rmargin- PGD]->SpecialInfo;
  91.                        if(s->LongInt > info->Lmargin )
  92.                        {
  93.                         info->Rmargin = (ULONG)s->LongInt;
  94.                         info->Columns = info->Rmargin - info->Lmargin;
  95.                        }
  96.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Rmargin- PGD],info->Pwd,NULL,GTIN_Number,info->Rmargin,TAG_DONE);
  97.                        break;
  98.   case CMD_LINES     : s = (struct StringInfo *)info->PGadgets[GD_Linesperpage- PGD]->SpecialInfo;
  99.                        info->Lines = (ULONG)s->LongInt;
  100.   case CMD_OPENPWD   : OpenPwd(info);
  101.                        break;
  102.   case CMD_CLOSEPWD  : ClosePwd(info);
  103.                        break;
  104.   case CMD_STR_INSERT: s = (struct StringInfo *)info->SGadgets[GD_Gadget11]->SpecialInfo;
  105.                        info->Special1 = (APTR)s->Buffer;
  106.                        info->Special2 = (APTR)&ins;
  107.                        InsertName(info);
  108.                        info->Special1 = NULL;
  109.                        info->Special2 = NULL;
  110.                        break;
  111.   case CMD_REMOVE    : s = (struct StringInfo *)info->SGadgets[GD_Gadget11]->SpecialInfo;
  112.                        info->Special1 = (APTR)s->Buffer;
  113.                        info->Special2 = (APTR)&ins;
  114.                        RemoveName(info);
  115.                        info->Special1 = NULL;
  116.                        info->Special2 = NULL;
  117.                        break;
  118.                        break;
  119.   case CMD_CHANGEAPP : ChangeApp(info);
  120.                        break;
  121.   case CMD_FILEREQ   : Prf_FileReq(info);
  122.                        break;
  123.   case CMD_RXQUIT    : rc = CMD_QUIT;
  124.                        break;
  125.   case CMD_QUIT      : if(info->flags.print)
  126.                        {
  127.                         rc1 = EasyRequestArgs(info->Swd,&StopReq,NULL,NULL);
  128.                         if(rc1 == 1) rc = CMD_QUIT;
  129.                        }
  130.                        else
  131.                        {
  132.                         rc1 = EasyRequestArgs(info->Swd,&QuitReq,NULL,NULL);
  133.                         switch(rc1)
  134.                         {
  135.                          case 1    : rc1 = EasyRequestArgs(info->Swd,&FinalReq,NULL,NULL);
  136.                                      if(rc1 == 0)rc = CMD_QUIT;
  137.                                      break;
  138.                          case 2    : ChangeApp(info);
  139.                                      break;
  140.                          default   : break;
  141.                         }
  142.                        }
  143.                        break;
  144.   case CMD_ABOUT     : (void)EasyRequestArgs(info->Swd,&AboutReq,NULL,NULL);
  145.                        break;
  146.   case CMD_HEAD      : if(info->Swd)ActivateGadget(info->SGadgets[GD_Headline],info->Swd,NULL);
  147.                        break;
  148.   case CMD_FOOT      : if(info->Swd)ActivateGadget(info->SGadgets[GD_Footline],info->Swd,NULL);
  149.                        break;
  150.   case CMD_HEADL     : strncpy(info->Headline,((struct StringInfo *)info->SGadgets[GD_Headline]->SpecialInfo)->Buffer,STR_SIZE);
  151.                        info->Headline[STR_SIZE - 2] = '\0';
  152.   case CMD_FOOTL     : strncpy(info->Footline,((struct StringInfo *)info->SGadgets[GD_Footline]->SpecialInfo)->Buffer,STR_SIZE);
  153.                        info->Footline[STR_SIZE - 2] = '\0';
  154.                        break;
  155.   case CMD_DATE_ON   : info->flags.date = 1;
  156.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  157.                        break;
  158.   case CMD_DATE_OFF  : info->flags.date = 0;
  159.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Date],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  160.                        break;
  161.   case CMD_TIME_ON   : info->flags.time = 1;
  162.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  163.                        break;
  164.   case CMD_TIME_OFF  : info->flags.time = 0;
  165.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Time],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  166.                        break;
  167.   case CMD_NAME_ON   : info->flags.file = 1;
  168.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  169.                        break;
  170.   case CMD_NAME_OFF  : info->flags.file = 0;
  171.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Filename],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  172.                        break;
  173.   case CMD_FF_ON     : info->flags.ff = 1;
  174.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  175.                        break;
  176.   case CMD_FF_OFF    : info->flags.ff = 0;
  177.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_FF],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  178.                        break;
  179.   case CMD_FFPAGE_ON   : info->flags.ffpage = 1;
  180.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_FFPAGE],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  181.                        break;
  182.   case CMD_FFPAGE_OFF  : info->flags.ffpage = 0;
  183.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_FFPAGE],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  184.                        break;
  185.   case CMD_PAGE_ON   : info->flags.page = 1;
  186.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  187.                        break;
  188.   case CMD_PAGE_OFF  : info->flags.page = 0;
  189.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Pagenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  190.                        break;
  191.   case CMD_LINE_ON   : info->flags.line = 1;
  192.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  193.                        break;
  194.   case CMD_LINE_OFF  : info->flags.line = 0;
  195.                        if(info->Swd)GT_SetGadgetAttrs(info->SGadgets[GD_Linenumber],info->Swd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  196.                        break;
  197.   case CMD_PITCH6    : info->flags.pitch = 1;
  198.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Pitch - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  199.                        break;
  200.   case CMD_PITCH8    : info->flags.pitch = 2;
  201.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Pitch - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  202.                        break;
  203.   case CMD_DRAFT     : info->flags.draft = 1;
  204.                        info->flags.lq    = 0;
  205.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Quality - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  206.                        break;
  207.   case CMD_LQ        : info->flags.lq    = 1;
  208.                        info->flags.draft = 0;
  209.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_Quality - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  210.                        break;
  211.   case CMD_10CPI     : info->flags.cpi = 1;
  212.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_cpi - PGD],info->Pwd,NULL,GTMX_Active,0,TAG_DONE);
  213.                        break;
  214.   case CMD_12CPI     : info->flags.cpi = 2;
  215.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_cpi - PGD],info->Pwd,NULL,GTMX_Active,1,TAG_DONE);
  216.                        break;
  217.   case CMD_15CPI     : info->flags.cpi = 3;
  218.                        if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_cpi - PGD],info->Pwd,NULL,GTMX_Active,2,TAG_DONE);
  219.                        break;
  220.   case CMD_SP_FILES_ON   : info->flags.sp_files = 1;
  221.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_files - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  222.                            break;
  223.   case CMD_SP_FILES_OFF  : info->flags.sp_files = 0;
  224.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_files - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  225.                            break;
  226.   case CMD_SP_RESET_ON   : info->flags.sp_reset = 1;
  227.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_reset - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  228.                            break;
  229.   case CMD_SP_RESET_OFF  : info->flags.sp_reset = 0;
  230.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_reset - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  231.                            break;
  232.   case CMD_SP_WINDOW_ON  : info->flags.sp_window = 1;
  233.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_window - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  234.                            break;
  235.   case CMD_SP_WINDOW_OFF : info->flags.sp_window = 0;
  236.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_window - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  237.                            break;
  238.   case CMD_SP_COMMENT_ON : info->flags.sp_comment = 1;
  239.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_comment - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  240.                            break;
  241.   case CMD_SP_COMMENT_OFF: info->flags.sp_comment = 0;
  242.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_comment - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  243.                            break;
  244.   case CMD_SP_PRINT_ON   : info->flags.sp_print = 1;
  245.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_print - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  246.                            break;
  247.   case CMD_SP_PRINT_OFF  : info->flags.sp_print = 0;
  248.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_print - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  249.                            break;
  250.   case CMD_SP_ICON_ON    : info->flags.sp_icon = 1;
  251.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_icon - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  252.                            break;
  253.   case CMD_SP_ICON_OFF   : info->flags.sp_icon = 0;
  254.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_icon - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  255.                            break;
  256.   case CMD_SP_START_ON   : info->flags.sp_start = 1;
  257.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_start - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  258.                            break;
  259.   case CMD_SP_START_OFF  : info->flags.sp_start = 0;
  260.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_start - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  261.                            break;
  262.   case CMD_SP_LINES_ON   : info->flags.sp_lines = 1;
  263.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_lines - PGD],info->Pwd,NULL,GTCB_Checked,TRUE,TAG_DONE);
  264.                            break;
  265.   case CMD_SP_LINES_OFF  : info->flags.sp_lines = 0;
  266.                            if(info->Pwd)GT_SetGadgetAttrs(info->PGadgets[GD_include_lines - PGD],info->Pwd,NULL,GTCB_Checked,FALSE,TAG_DONE);
  267.                            break;
  268.   default                :
  269.                            break;
  270.  }
  271.  return (rc);
  272. }
  273.  
  274.