home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 10_11 / atari / prnacc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-07-14  |  11.5 KB  |  328 lines

  1. /*------------------------------------------------------*/
  2. /*                     PRNACC.C                         */
  3. /* Desktop Accessory zur Druckereinstellung f. Atari ST */
  4. /*             (C) 1988 M.Fink & TOOLBOX                */
  5.  
  6. #include "obdefs.h"
  7. #include "gemdefs.h"
  8. #include "define.h"
  9. #include "gembind.h"
  10.  
  11. #define RCSNAME "PRNACC.RSC"     /* Name des RCS-Files   */
  12.  
  13. #define UNAN 27                  /* hier kommen die      */
  14. #define UNAUS 28                 /* defines die Ihnen    */
  15. #define USA 30                   /* das RCS liefert      */
  16. #define BRD 31
  17. #define EXIT 33
  18. #define RES 32
  19. #define JAP 34
  20. #define TREE 0
  21. #define ITAUS 13
  22. #define ITAN 12
  23. #define ELAN 15
  24. #define ELAUS 16
  25. #define DAN 18
  26. #define DAUS 19
  27. #define FAN 21
  28. #define FAUS 22 
  29. #define UAUS 25
  30. #define UAN 24
  31.  
  32. #define ESC 27                   /* Escape               */
  33. #define ITALICEIN 52             /* Italic ein           */
  34. #define ITALICAUS 53             /* Italic aus           */
  35. #define ELITEEIN 77              /* Elite ein            */
  36. #define ELITEAUS 80              /* Elite aus            */
  37. #define DOPPELAN 71              /* Doppeldruck an       */
  38. #define DOPPELAUS 72             /* Doppeldruck aus      */
  39. #define FETTAN 69                /* Fettdruck an         */
  40. #define FETTAUS 70               /* Fettdruck aus        */
  41. #define UNTERSTRICH 45           /* Unterstreichung      */
  42. #define UNIDIREKTIONAL 85        /* Unidirektional       */
  43. #define ZEICHENSATZ 82           /* Zeichensatz ausw     */
  44. #define RESET 64                 /* Normieren            */
  45. #define RET 13                   /* Return               */
  46.  
  47. #define SELECTED 0x0001          /* Button angelickt     */
  48. #define NORMAL 0x0000            /* Button normal        */
  49. #define DEEP 32                  /* Anzahl Objekte       */
  50.  
  51.  
  52. int contrl[12],                  /* Ab hier kommen die   */
  53.     intin[128],                  /* Variablen. Alle      */
  54.     ptsin[128],                  /* global definiert,    */
  55.     intout[128],                 /* damit man nicht so   */
  56.     ptsout[128],                 /* so viele Parameter   */
  57.     work_in[11],                 /* uebergeben muss      */
  58.     work_out[57],                                 
  59.     msgbuf[8],                   /* Welches Ereigniss ?  */
  60.     handle,                      /* virtual handle       */
  61.     phys_handle,                 /* physical handle      */
  62.     me_rmenuid,                  /* ACC Kennung          */
  63.     gr_hwchar, gr_hhchar,        /* Hoehe,Breite Zeichen */
  64.     gr_hwbox, gr_hhbox,                       
  65.     xwork,ywork,wwork,hwork,                       
  66.     xobj,yobj,wobj,hobj,         /* Objektgroesse        */
  67.     mausx,mausy,                 /* Mauskoordinaten      */
  68.     ev_breturn,   
  69.     ob_ofreturn,                 /* Objekt               */
  70.     ende,                        /* Ende ??!             */
  71.     dummy;                       /* ueberfluessiger Param*/
  72.  
  73. extern gl_apid;                  /* Applicationskennung  */
  74. extern long gemdos();            /* GEMDOS - Call        */
  75. long ob_ctree;                   /* Adr. des Objektes    */
  76.  
  77.  
  78. main()
  79. {
  80.   appl_init();                   /* Application Init     */
  81.   phys_handle=graf_handle(&gr_hhchar,&gr_hwchar,&gr_hwbox,
  82.                           &gr_hhbox);
  83.   me_rmenuid=menu_register(gl_apid,"  Printer");
  84.   if(!rsrc_load(RCSNAME))        /* Resource laden       */
  85.     form_alert(1,
  86. "[1][Ich kann das|File RX_80.RCS|nicht finden.][Abbruch]");
  87.                                  /* Resource kaputt oder */
  88.   if(rsrc_gaddr(0,0,&ob_ctree)==0)   /* nicht da ??      */
  89.     form_alert(1,
  90.       "[1][Das File|RX_80.RCS|ist defekt.][Abbruch]");
  91.   rsrc_gaddr(R_TREE,TREE,&ob_ctree); /* Adresse Resource */
  92.   infinite();
  93. }
  94.  
  95.  
  96. infinite()                       /* Hier beginnt das     */
  97. {                                /* das eigentliche      */
  98.   while (TRUE)                   /* Programm             */
  99.   {                              /* ACC aufgerufen ?     */
  100.     ev_breturn=evnt_multi(MU_MESAG | MU_BUTTON | MU_KEYBD,
  101.     1,1,1,0,0,0,0,0,0,0,0,0,0,
  102.     msgbuf,0,0,&mausx,&mausy,&dummy,&dummy,&dummy,&dummy);
  103.     if(ev_breturn & MU_MESAG)    /* ACC wurde aufgerufen */
  104.       switch(msgbuf[0])
  105.       {
  106.         case AC_OPEN:
  107.           if(msgbuf[4]==me_rmenuid)
  108.             openwork();          /* Fenster oeffnen      */
  109.           output();
  110.           closework();           /* Fenster schliessen   */
  111.           break;
  112.       }
  113.   }
  114. }
  115.  
  116.  
  117. openwork()
  118. {
  119.   form_center(ob_ctree,&xobj,&yobj,&wobj,&hobj);
  120.   form_dial(0,320,100,10,10,xobj,yobj,wobj,hobj);
  121.   form_dial(1,320,100,10,10,xobj,yobj,wobj,hobj);
  122.   objc_draw(ob_ctree,0,DEEP,xobj,yobj,wobj,hobj);
  123. }
  124.  
  125.  
  126. closework()
  127. {
  128.   form_dial(2,xobj,yobj,wobj,hobj);
  129.   form_dial(3,xobj,yobj,wobj,hobj);
  130. }
  131.  
  132.  
  133. output()
  134. {
  135.   ende=FALSE;
  136.   while(ende!=TRUE)             /* Welcher Button ?     */
  137.   {
  138.     ob_ofreturn=form_do(ob_ctree,0);
  139.     switch(ob_ofreturn)
  140.     {
  141.       case UNAN:
  142.         objc_change(ob_ctree,UNAN,0,xwork,ywork,wwork,
  143.                     hwork,SELECTED,1);
  144.         objc_change(ob_ctree,UNAUS,0,xwork,ywork,wwork,
  145.                     hwork,NORMAL,1);
  146.         gemdos(0x5,ESC);  gemdos(0x5,UNIDIREKTIONAL);
  147.         gemdos(0x5,1);
  148.         break;
  149.  
  150.       case UNAUS:
  151.         objc_change(ob_ctree,UNAUS,0,xwork,ywork,wwork,
  152.                     hwork,SELECTED,1);
  153.         objc_change(ob_ctree,UNAN,0,xwork,ywork,wwork,
  154.                     hwork,NORMAL,1);
  155.         gemdos(0x5,ESC); gemdos(0x5,UNIDIREKTIONAL);
  156.         gemdos(0x5,0);
  157.         break;
  158.  
  159.       case ITAN:
  160.         objc_change(ob_ctree,ITAN,0,xwork,ywork,wwork,
  161.                     hwork,SELECTED,1);
  162.         objc_change(ob_ctree,ITAUS,0,xwork,ywork,wwork,
  163.                     hwork,NORMAL,1);
  164.         gemdos(0x5,ESC);  gemdos(0x5,ITALICEIN);
  165.         break;
  166.  
  167.       case ITAUS:
  168.         objc_change(ob_ctree,ITAUS,0,xwork,ywork,wwork,
  169.                     hwork,SELECTED,1);
  170.         objc_change(ob_ctree,ITAN,0,xwork,ywork,wwork,
  171.                     hwork,NORMAL,1);
  172.         gemdos(0x5,ESC);  gemdos(0x5,ITALICAUS);
  173.         break;
  174.  
  175.       case ELAN:
  176.         objc_change(ob_ctree,ELAN,0,xwork,ywork,wwork,
  177.                     hwork,SELECTED,1);
  178.         objc_change(ob_ctree,ELAUS,0,xwork,ywork,
  179.                     wwork,hwork,NORMAL,1);
  180.         gemdos(0x5,ESC);  gemdos(0x5,ELITEEIN);
  181.         break;
  182.  
  183.       case ELAUS:
  184.         objc_change(ob_ctree,ELAUS,0,xwork,ywork,wwork,
  185.                     hwork,SELECTED,1);
  186.         objc_change(ob_ctree,ELAN,0,xwork,ywork,wwork,
  187.                     hwork,NORMAL,1);
  188.         gemdos(0x5,ESC);  gemdos(0x5,ELITEAUS);
  189.         break;
  190.  
  191.       case DAN:
  192.         objc_change(ob_ctree,DAN,0,xwork,ywork,wwork,
  193.                     hwork,SELECTED,1);
  194.         objc_change(ob_ctree,DAUS,0,xwork,ywork,wwork,
  195.                     hwork,NORMAL,1);
  196.         gemdos(0x5,ESC);  gemdos(0x5,DOPPELAN);
  197.         break;
  198.  
  199.       case DAUS:
  200.         objc_change(ob_ctree,DAUS,0,xwork,ywork,wwork,
  201.                     hwork,SELECTED,1);
  202.         objc_change(ob_ctree,DAN,0,xwork,ywork,wwork,
  203.                     hwork,NORMAL,1);
  204.         gemdos(0x5,ESC);  gemdos(0x5,DOPPELAUS);
  205.         break;
  206.  
  207.       case FAUS:
  208.         objc_change(ob_ctree,FAUS,0,xwork,ywork,wwork,
  209.                     hwork,SELECTED,1);
  210.         objc_change(ob_ctree,FAN,0,xwork,ywork,wwork,
  211.                     hwork,NORMAL,1);
  212.         gemdos(0x5,ESC);  gemdos(0x5,FETTAUS);
  213.         break;
  214.  
  215.       case FAN:
  216.         objc_change(ob_ctree,FAN,0,xwork,ywork,wwork,
  217.                     hwork,SELECTED,1);
  218.         objc_change(ob_ctree,FAUS,0,xwork,ywork,wwork,
  219.                     hwork,NORMAL,1);
  220.         gemdos(0x5,ESC);  gemdos(0x5,FETTAN);
  221.         break;
  222.  
  223.       case UAUS:
  224.         objc_change(ob_ctree,UAUS,0,xwork,ywork,wwork,
  225.                     hwork,SELECTED,1);
  226.         objc_change(ob_ctree,UAN,0,xwork,ywork,wwork,
  227.                     hwork,NORMAL,1);
  228.         gemdos(0x5,ESC);  gemdos(0x5,UNTERSTRICH);
  229.         gemdos(0x5,1);
  230.         break;
  231.            
  232.       case UAN:
  233.         objc_change(ob_ctree,UAN,0,xwork,ywork,wwork,
  234.                     hwork,SELECTED,1);
  235.         objc_change(ob_ctree,UAUS,0,xwork,ywork,wwork,
  236.                     hwork,NORMAL,1);
  237.         gemdos(0x5,ESC);  gemdos(0x5,UNTERSTRICH);
  238.         gemdos(0x5,0);
  239.         break;
  240.            
  241.       case USA:
  242.         objc_change(ob_ctree,USA,0,xwork,ywork,wwork,
  243.                     hwork,SELECTED,1);
  244.         objc_change(ob_ctree,BRD,0,xwork,ywork,wwork,
  245.                     hwork,NORMAL,1);
  246.         objc_change(ob_ctree,JAP,0,xwork,ywork,wwork,
  247.                     hwork,NORMAL,1);
  248.         gemdos(0x5,ESC);  gemdos(0x5,ZEICHENSATZ);
  249.         gemdos(0x5,0);
  250.         break;
  251.            
  252.       case BRD:
  253.         objc_change(ob_ctree,BRD,0,xwork,ywork,wwork,
  254.                     hwork,SELECTED,1);
  255.         objc_change(ob_ctree,USA,0,xwork,ywork,wwork,
  256.                     hwork,NORMAL,1);
  257.         objc_change(ob_ctree,JAP,0,xwork,ywork,wwork,
  258.                     hwork,NORMAL,1);
  259.         gemdos(0x5,ESC);  gemdos(0x5,ZEICHENSATZ);
  260.         gemdos(0x5,2);
  261.         break;
  262.            
  263.       case JAP:
  264.         objc_change(ob_ctree,JAP,0,xwork,ywork,wwork,
  265.                     hwork,SELECTED,1);
  266.         objc_change(ob_ctree,USA,0,xwork,ywork,wwork,
  267.                     hwork,NORMAL,1);
  268.         objc_change(ob_ctree,BRD,0,xwork,ywork,wwork,
  269.                     hwork,NORMAL,1);
  270.         gemdos(0x5,ESC);  gemdos(0x5,ZEICHENSATZ);
  271.         gemdos(0x5,8);
  272.         break;
  273.            
  274.       case RES:
  275.         objc_change(ob_ctree,RES,0,xwork,ywork,wwork,
  276.                     hwork,SELECTED,1);
  277.         gemdos(0x5,ESC);  gemdos(0x5,RESET);
  278.         objc_change(ob_ctree,RES,0,xwork,ywork,wwork,
  279.                     hwork,NORMAL,1);
  280.         objc_change(ob_ctree,UNAUS,0,xwork,ywork,wwork,
  281.                     hwork,SELECTED,1);
  282.         objc_change(ob_ctree,UNAN,0,xwork,ywork,wwork,
  283.                     hwork,NORMAL,1);
  284.         objc_change(ob_ctree,ITAUS,0,xwork,ywork,wwork,
  285.                     hwork,SELECTED,1);
  286.         objc_change(ob_ctree,ITAN,0,xwork,ywork,wwork,
  287.                     hwork,NORMAL,1);
  288.         objc_change(ob_ctree,ELAUS,0,xwork,ywork,wwork,
  289.                     hwork,SELECTED,1);
  290.         objc_change(ob_ctree,ELAN,0,xwork,ywork,wwork,
  291.                     hwork,NORMAL,1);
  292.         objc_change(ob_ctree,DAUS,0,xwork,ywork,wwork,
  293.                     hwork,SELECTED,1);
  294.         objc_change(ob_ctree,DAN,0,xwork,ywork,wwork,
  295.                     hwork,NORMAL,1);
  296.         objc_change(ob_ctree,FAUS,0,xwork,ywork,wwork,
  297.                     hwork,SELECTED,1);
  298.         objc_change(ob_ctree,FAN,0,xwork,ywork,wwork,
  299.                     hwork,NORMAL,1);
  300.         objc_change(ob_ctree,UAUS,0,xwork,ywork,wwork,
  301.                     hwork,SELECTED,1);
  302.         objc_change(ob_ctree,UAN,0,xwork,ywork,wwork,
  303.                     hwork,NORMAL,1);
  304.         objc_change(ob_ctree,BRD,0,xwork,ywork,wwork,
  305.                     hwork,SELECTED,1);
  306.         objc_change(ob_ctree,USA,0,xwork,ywork,wwork,
  307.                     hwork,NORMAL,1);
  308.         objc_change(ob_ctree,JAP,0,xwork,ywork,wwork,
  309.                     hwork,NORMAL,1);
  310.         break;
  311.  
  312.       case EXIT:
  313.         objc_change(ob_ctree,EXIT,0,xwork,ywork,wwork,
  314.                     hwork,SELECTED,1);
  315.         gemdos(0x5,RET);
  316.         form_dial(2,320,100,10,10,xobj,yobj,wobj,hobj);
  317.         form_dial(3,320,100,10,10,xobj,yobj,wobj,hobj);
  318.         ende=TRUE;
  319.         objc_change(ob_ctree,EXIT,0,xwork,ywork,wwork,
  320.                     hwork,NORMAL,1);
  321.         break;
  322.     }
  323.   }
  324. }
  325.  
  326.  
  327.            
  328.