home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Resources / System / BoingBag1 / Contributions / Workbench / RexxArpLib3p6 / src / sreq / tekmenutest.c < prev    next >
C/C++ Source or Header  |  1998-06-17  |  7KB  |  238 lines

  1. #include <exec/exec.h>
  2. #include <intuition/intuition.h>
  3. #include <graphics/gfx.h>
  4. #include <functions.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <stdio.h>
  8.  
  9. #include <simpmenu.h>
  10.  
  11.  
  12.  
  13. TestRoutine(w)
  14.     struct Window *w;
  15. {
  16.     struct Menu *menu = NULL;
  17.     
  18.     printf("Start\n");
  19.     
  20.     menu = SMenu(NULL, "Image ");
  21.     
  22.     SItem(menu, " Save to Current File",        'S', 0L);
  23.     SItem(menu, " Save to New File",            'A', 0L);
  24.     SItem(menu, " Load from Archive",           'L', 0L);
  25.     SItem(menu, " Quit Archive",                'Q', 0L);
  26.     SItem(menu, " Save Bitmap as IFF File",     'I', 0L);
  27.     SItem(menu, " Print Bitmap",                 0 , 0L);
  28.     SSItem(menu, " Maximum Size",               '(', 0L);
  29.     SSItem(menu, " 1/3 Page",                   ')', 0L);
  30.     SSItem(menu, " 2/3 Page",                   '/', 0L);
  31.     SSItem(menu, " Full Page",                  '*', 0L);
  32.     SItem(menu, " Save/Print as PostScript®",   'E', 0L);
  33.     
  34.     SMenu(menu, "Zoom/Pan ");
  35.     SItem(menu, " Select Zoom Area",            'Z', 0L);
  36.     SItem(menu, " Select Pan Area",             'P', 0L);
  37.     SItem(menu, " Reset Zoom/Pan",              'R', 0L);
  38.     
  39.     SMenu(menu, "Cursor ");
  40.     SItem(menu, "   Switch Graphic Cursor On",  'X', 0x2L);
  41.     SItem(menu, "   Switch Graphic Cursor Off", 'Y', 0x1L);
  42.     SItem(menu, "   Display Cross Hair Only",   'H', 0x8L);
  43.     SItem(menu, "   Display Cross Hair + XY",   'N', 0x4L);
  44.     
  45.     SMenu(menu, "Screen ");
  46.     SItem(menu, " Clear Screen",                'C', 0L);
  47.     SItem(menu, " Screen to Back",              'J', 0L);
  48.     SItem(menu, " Select Screen Type",           0 , 0L);
  49.     SSItem(menu, "   Custom Screen",             0 , 0x6L);
  50.     SSItem(menu, "   Main VLT Screen",           0 , 0x5L);
  51.     SSItem(menu, "   Workbench",                 0 , 0x3L);
  52.     SSItem(menu, "   Interlaced",                0 , 0x10L);
  53.     SSItem(menu, "   Non-Interlaced",            0 , 0x08L);
  54.     SItem(menu, " Number of Colors",             0 , 0L);
  55.     SSItem(menu, "   2",                         0 , 0xeL);
  56.     SSItem(menu, "   4",                         0 , 0xdL);
  57.     SSItem(menu, "   8",                         0 , 0xbL);
  58.     SSItem(menu, "   16",                        0 , 0x7L);
  59.     SItem(menu, " Select Colors",               'U', 0L);
  60.     SItem(menu, " Color Options",               'K', 0L);
  61.     SItem(menu, " Close Screen",                '\\', 0L);
  62.     
  63.     SMenu(menu, "Operation ");
  64.     SItem(menu, " Tek Emulation",                0 , 0L);
  65.     SSItem(menu, "   4010/4014",                 0 , 0x2L);
  66.     SSItem(menu, "   4105/4107",                 0 , 0x1L);
  67.     SItem(menu, " GIN Report Style",             0 , 0L);
  68.     SSItem(menu, "   4010",                      0 , 0x2L);
  69.     SSItem(menu, "   Extended",                  0 , 0x1L);
  70.     SItem(menu, " Report EOL String",            0 , 0L);
  71.     SSItem(menu, "   CR",                        0 , 0x3eL);
  72.     SSItem(menu, "   CR/EOT",                    0 , 0x3dL);
  73.     SSItem(menu, "   LF",                        0 , 0x3bL);
  74.     SSItem(menu, "   CR/LF",                     0 , 0x37L);
  75.     SSItem(menu, "   None",                      0 , 0x2fL);
  76.     SSItem(menu, "   Set By Host",               0 , 0x1fL);
  77.     SItem(menu, " Bypass Cancel Character",      0 , 0L);
  78.     SSItem(menu, "   CR",                        0 , 0xeL);
  79.     SSItem(menu, "   LF",                        0 , 0xdL);
  80.     SSItem(menu, "   None",                      0 , 0xbL);
  81.     SSItem(menu, "   Set By Host",               0 , 0x7L);
  82.     SItem(menu, " Mouse Report Character",       0 , 0L);
  83.     SItem(menu, " Incremental Mode Step",        0 , 0L);
  84.     SSItem(menu, "   1/1024",                    0 , 0x2L);
  85.     SSItem(menu, "   1/4096",                    0 , 0x1L);
  86.     SItem(menu, " Adjust Display",               0 , 0L);
  87.     SSItem(menu, " Width",                       0 , 0L);
  88.     SSItem(menu, " Height",                      0 , 0L);
  89.     SSItem(menu, " Left Edge",                   0 , 0L);
  90.     SSItem(menu, " Bottom Edge",                 0 , 0L);
  91.     SItem(menu, " Use Duplex Stroke Font",       0 , 0L);
  92.     SSItem(menu, "   Never",                     0 , 0x2L);
  93.     SSItem(menu, "   In Zoom",                   0 , 0x1L);
  94.     SItem(menu, " On Select Code, Switch",       0 , 0L);
  95.     SSItem(menu, "   Screen/Mode",               0 , 0x2L);
  96.     SSItem(menu, "   Mode Only",                 0 , 0x1L);
  97.     SItem(menu, " Set Default Parameters",       0 , 0L);
  98.     SSItem(menu, " Last Saved",                  0 , 0L);
  99.     SSItem(menu, " Original",                    0 , 0L);
  100.     SItem(menu, " Save Tek Configuration",       0 , 0L);
  101.     
  102.     SMenu(menu, "Control ");
  103.     SItem(menu, "   Lock Graphics",             ';', 0L);
  104.     SItem(menu, " Return to Alpha-Numeric",     'F', 0L);
  105.     
  106.     AdjustItems(menu);
  107.     
  108.     printf("Stop\n");
  109.     
  110.     if (menu) 
  111.     {
  112.         SetMenuStrip(w, menu);
  113.         WaitForClose(w);
  114.         ClearMenuStrip(w);
  115.         FreeSMenu(menu);
  116.     }
  117.     
  118.     return;
  119. }
  120.  
  121.  
  122. /**
  123.  *
  124.  *   Generalized Intuition test routine. Opens a window.
  125.  *
  126. ***/
  127.  
  128. static struct NewWindow nw = 
  129. {
  130.     0,0,
  131.     640, 200,
  132.     0,1,
  133.     CLOSEWINDOW+MOUSEBUTTONS+GADGETUP+GADGETDOWN+INTUITICKS,
  134.     WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE,
  135.     NULL,
  136.     NULL,
  137.     (UBYTE *)"MBRTest",
  138.     NULL,
  139.     NULL,
  140.     5,5,
  141.     700,300,
  142.     WBENCHSCREEN
  143. };
  144.  
  145. struct IntuitionBase   *IntuitionBase = NULL
  146. struct GfxBase         *GfxBase = NULL;
  147. struct Library         *ArpBase = NULL;
  148. struct Library         *ExpansionBase = NULL;
  149.  
  150. main(argc, argv)
  151.     int argc;
  152.     char **argv;
  153. {
  154.     struct Window *w = NULL, *old_pr_WindowPtr = NULL;
  155.     struct IntuiMessage *message = NULL;
  156.     struct TextFont *font = NULL;
  157.     
  158.     /*
  159.      *   Libraries
  160.      */
  161.     IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library", 0L);
  162.     if (IntuitionBase == NULL)
  163.         goto cleanup;
  164.     
  165.     GfxBase = (struct GfxBase *) OpenLibrary("graphics.library", 0L);
  166.     if (GfxBase == NULL)
  167.         goto cleanup;
  168.     
  169.     /*
  170.      *   Open window and set font
  171.      */
  172.     w = OpenWindow(&nw);
  173.     if (w == NULL)
  174.         goto cleanup;
  175.     
  176.     font = (struct TextFont *) OpenFont(Topaz80Equiv());
  177.     if (font == NULL)
  178.         goto cleanup;
  179.     SetFont(w->RPort, font);
  180.     /*
  181.      *   Test begins here.
  182.      */
  183.     TestRoutine(w);
  184.     
  185.     WaitForClose(w);
  186.     
  187.     cleanup:
  188.     if (font)
  189.         CloseFont(font);
  190.     if (w) 
  191.     {
  192.         while (message = (struct IntuiMessage *)
  193.             GetMsg(w->UserPort)) ReplyMsg(message);
  194.         CloseWindow(w);
  195.     }
  196.     if (GfxBase)
  197.         CloseLibrary((struct Library *) GfxBase);
  198.     if (IntuitionBase)
  199.         CloseLibrary((struct Library *) IntuitionBase);
  200.     
  201.     exit(0);
  202. }
  203.  
  204.  
  205. /**
  206.  *
  207.  *   Wait for a close message
  208.  *
  209. **/
  210. WaitForClose(w)
  211.     struct Window *w;
  212. {
  213.     int quit_flag = FALSE;
  214.     UWORD code;
  215.     ULONG class;
  216.     APTR object;
  217.     struct IntuiMessage *message;
  218.     
  219.     while (quit_flag == FALSE) 
  220.     {
  221.         Wait(1L << w->UserPort->mp_SigBit);
  222.         /*
  223.          *  Handle messages from the window
  224.          */
  225.         while ( message = (struct IntuiMessage *) GetMsg(w->UserPort) ) 
  226.         {
  227.             class = message->Class;
  228.             ReplyMsg(message);
  229.             
  230.             if (class == CLOSEWINDOW)
  231.                 quit_flag = TRUE;
  232.         }
  233.     }
  234.     return(quit_flag);
  235. }
  236.  
  237.  
  238.