home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Resources / System / BoingBag1 / Contributions / Workbench / RexxArpLib3p6 / src / sreq / vtmenutest.c < prev    next >
C/C++ Source or Header  |  1998-06-17  |  9KB  |  298 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.     menu = SMenu(NULL, " VLT  ");
  20.     
  21.     SItem(menu, " Capture Session",      'O', 0L);
  22.     SItem(menu, " End Capture",          'E', 0L);
  23.     SItem(menu, " Open Console",          0 , 0L);
  24.     SItem(menu, " History Buffer",        0 , 0L);
  25.     SSItem(menu, " View",                'V', 0L);
  26.     SSItem(menu, " Edit / Send",         ')', 0L);
  27.     SItem(menu, " Save Configuration",    0 , 0L);
  28.     SItem(menu, " Version",               0 , 0L);
  29.     SItem(menu, " Exit",                  0 , 0L);
  30.     
  31.     SMenu(menu, "Comm ");
  32.     
  33.     SItem(menu, " Select Device",   0 , 0L);
  34.     SItem(menu, " Select Unit",     0 , 0L);
  35.     SItem(menu, " Baud",            0 , 0L);
  36.     SSItem(menu, "     110",        0 , 0x7eL);
  37.     SSItem(menu, "     300",        0 , 0x7dL);
  38.     SSItem(menu, "    1200",        0 , 0x7bL);
  39.     SSItem(menu, "    2400",        0 , 0x77L);
  40.     SSItem(menu, "    4800",        0 , 0x6fL);
  41.     SSItem(menu, "    9600",        0 , 0x5fL);
  42.     SSItem(menu, "   19200",        0 , 0x3fL);
  43.     SItem(menu, " Parity",          0 , 0L);
  44.     SSItem(menu, "   8N1",          0 , 0x7ffeL);
  45.     SSItemB(menu, "   8N2",         0 , 0x7ffdL);
  46.     SSItemB(menu, "   7N2",         0 , 0x7ffbL);
  47.     SSItem(menu, "   8M1",          0 , 0x7ff7L);
  48.     SSItemB(menu, "   7M1",         0 , 0x7fefL);
  49.     SSItemB(menu, "   7M2",         0 , 0x7fdfL);
  50.     SSItem(menu, "   8S1",          0 , 0x7fbfL);
  51.     SSItemB(menu, "   7S1",         0 , 0x7f7fL);
  52.     SSItemB(menu, "   7S2",         0 , 0x7effL);
  53.     SSItem(menu, "   8E1",          0 , 0x7dffL);
  54.     SSItemB(menu, "   7E1",         0 , 0x7bffL);
  55.     SSItemB(menu, "   7E2",         0 , 0x77ffL);
  56.     SSItem(menu, "   8O1",          0 , 0x6fffL);
  57.     SSItemB(menu, "   7O1",         0 , 0x5fffL);
  58.     SSItemB(menu, "   7O2",         0 , 0x3fffL);
  59.     SItem(menu, " Protocol",        0 , 0L);
  60.     SSItem(menu, "   None",         0 , 0xeL);
  61.     SSItem(menu, "   Xon/Xoff",     0 , 0xdL);
  62.     SSItem(menu, "   7-Wire",       0 , 0xbL);
  63.     SSItem(menu, "   7-Wire/X",     0 , 0x7L);
  64.     SItem(menu, " Send Break",     'B', 0L);
  65.     SItem(menu, " Hangup",         'H', 0L);
  66.     SItem(menu, " Echo",            0 , 0L);
  67.     SSItem(menu, "   Off",         '*', 0x2L);
  68.     SSItem(menu, "   On",          '+', 0x1L);
  69.     SItem(menu, " Strip Bit 8",     0 , 0L);
  70.     SSItem(menu, "   Off",          0 , 0x2L);
  71.     SSItem(menu, "   On",           0 , 0x1L);
  72.     SItem(menu, " Set Break Time",  0 , 0L);
  73.     SItem(menu, " Set Buffer Size", 0 , 0L);
  74.     
  75.     SMenu(menu, "Transfer ");
  76.     
  77.     SItem(menu, " Send File",                  'S', 0L);
  78.     SItem(menu, " Receive File",               'R', 0L);
  79.     SItem(menu, " Change Directory",           'D', 0L);
  80.     SItem(menu, " Protocol",                    0 , 0L);
  81.     SSItem(menu, "   External",                'T', 0x6L);
  82.     SSItem(menu, "   Kermit",                  'K', 0x5L);
  83.     SSItem(menu, "   XMODEM",                  'X', 0x3L);
  84.     SItem(menu, " Kermit Options",              0 , 0L);
  85.     SSItem(menu, "   Send / Receive",          '-', 0x2L);
  86.     SSItem(menu, "   Host is Server",          '=', 0x1L);
  87.     SSItem(menu, "   Kermit Bye",              'Y', 0L);
  88.     SSItem(menu, "   Set Packet Size",          0 , 0L);
  89.     SItem(menu, " XMODEM Options",              0 , 0L);
  90.     SSItem(menu, "   Check Sum",               '[', 0xeL);
  91.     SSItem(menu, "   Check Sum / 1K Blocks",    0 , 0xdL);
  92.     SSItem(menu, "   CRC",                      0 , 0xbL);
  93.     SSItem(menu, "   CRC / 1K Blocks",         ']', 0x7L);
  94.     SItem(menu, " External Options",            0 , 0L);
  95.     SItem(menu, " Translate Options",           0 , 0L);
  96.     SSItem(menu, "   No Translation",          ',', 0x2L);
  97.     SSItem(menu, "   CR/LF -> LF",             '.', 0x1L);
  98.     SSItem(menu, "   Downcase File Names",     '/', -1L);
  99.     
  100.     SMenu(menu, "Macros ");
  101.     
  102.     SItem(menu, " ARexx Macro",           'A', 0L);
  103.     SItem(menu, " VLT Macro",             'M', 0L);
  104.     SItem(menu, " Abort VLT Macro (esc)",  -1, 0L);
  105.     SItem(menu, " Keyboard Macros",        0 , 0L);
  106.     SSItem(menu,  " ",                    '1', 0L);
  107.     SSItemB(menu, " ",                    '2', 0L);
  108.     SSItem(menu,  " ",                    '3', 0L);
  109.     SSItemB(menu, " ",                    '4', 0L);
  110.     SSItem(menu,  " ",                    '5', 0L);
  111.     SSItemB(menu, " ",                    '6', 0L);
  112.     SSItem(menu,  " ",                    '7', 0L);
  113.     SSItemB(menu, " ",                    '8', 0L);
  114.     SSItem(menu,  " ",                    '9', 0L);
  115.     SSItemB(menu, " ",                    '0', 0L);
  116.     SItem(menu, " Program Mode",           0 , 0L);
  117.     SSItem(menu, "   On",                 '(', 0x2L);
  118.     SSItem(menu, "   Off",                ')', 0x1L);
  119.     
  120.     SMenu(menu, "Screen ");
  121.     
  122.     SItem(menu, " Clear Screen",        'C', 0L);
  123.     SItem(menu, " Screen to Back",      'J', 0L);
  124.     SItem(menu, " Select Screen Type",   0 , 0L);
  125.     SSItem(menu, "   Custom Screen",     0 , 0x2L);
  126.     SSItem(menu, "   Workbench",         0 , 0x1L);
  127.     SSItem(menu, "   Interlaced",        0 , 0x8L);
  128.     SSItem(menu, "   Non-Interlaced",    0 , 0x4L);
  129.     SItem(menu, " Number of Colors",     0 , 0L);
  130.     SSItem(menu, "   2",                 0 , 0x6L);
  131.     SSItem(menu, "   4",                 0 , 0x5L);
  132.     SSItem(menu, "   8",                 0 , 0x3L);
  133.     SItem(menu, " Select Colors",       'U', 0L);
  134.     SItem(menu, " Number of Lines",     'L', 0L);
  135.     SItem(menu, " Number of Columns",   'Z', 0L);
  136.     SItem(menu, " Amount of Prescroll",  0 , 0L);
  137.     SItem(menu, " Rendering Mode",       0 , 0L);
  138.     SItem(menu, " Cursor Height",        0 , 0L);
  139.     SSItem(menu, "   Quick",            'Q', 0x6L);
  140.     SSItem(menu, "   Normal",           'N', 0x5L);
  141.     SSItem(menu, "   Color",            'G', 0x3L);
  142.     SSItem(menu, "   ANSI Color",        0 , 0x3L);
  143.     
  144.     SMenu(menu, "Operation ");
  145.     
  146.     SItem(menu, "   Wrap",                 'W', -1L);
  147.     SItem(menu, "   Key Repeat",            0 , -1L);
  148.     SItem(menu, "   Numeric Keypad",        0 , -1L);
  149.     SItem(menu, "   Application Cursor",    0 , -1L);
  150.     SItem(menu, "   Swap BS <-> Delete",   'I', -1L);
  151.     SItem(menu, "   Destructive BS",        0 , -1L);
  152.     SItem(menu, "   Help Key = LF",         0 , -1L);
  153.     SItem(menu, "   Shift-Tab = ESC TAB",   0 , -1L);
  154.     SItem(menu, "   Function Key Gadgets", 'P', -1L);
  155.     SItem(menu, "   Mouse Support",        '\\',-1L);
  156.     SItem(menu, "   Beep Volume",           0 , -1L);
  157.     SItem(menu, "   CR Key: Echo CR/LF",    0 , -1L);
  158.     SItem(menu, "   CR Key: Send CR/LF",    0 , -1L);
  159.     SItem(menu, "   Auto-Screen to Back",   0 , -1L);
  160.     
  161.     SMenu(menu, "Graphics ");
  162.     
  163.     SItem(menu, "   Lock Graphics", ';', -1L);
  164.     SItem(menu, "   To Graphics",   'F', 0L);
  165.     
  166.     AdjustItems(menu);
  167.     
  168.     printf("Stop\n");
  169.     
  170.     if (menu) 
  171.     {
  172.         SetMenuStrip(w, menu);
  173.         WaitForClose(w);
  174.         ClearMenuStrip(w);
  175.         FreeSMenu(menu);
  176.     }
  177.     
  178.     return;
  179. }
  180.  
  181.  
  182. /**
  183.  *
  184.  *   Generalized Intuition test routine. Opens a window.
  185.  *
  186. ***/
  187.  
  188. static struct NewWindow nw = 
  189. {
  190.     0,0,
  191.     640, 200,
  192.     0,1,
  193.     CLOSEWINDOW+MOUSEBUTTONS+GADGETUP+GADGETDOWN+INTUITICKS,
  194.     WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE,
  195.     NULL,
  196.     NULL,
  197.     (UBYTE *)"MBRTest",
  198.     NULL,
  199.     NULL,
  200.     5,5,
  201.     700,300,
  202.     WBENCHSCREEN
  203. };
  204.  
  205. struct IntuitionBase   *IntuitionBase = NULL;
  206. struct GfxBase         *GfxBase = NULL;
  207. struct Library         *ArpBase = NULL;
  208. struct ExpansionBase   *ExpansionBase = NULL;
  209.  
  210. main(argc, argv)
  211.     int argc;
  212.     char **argv;
  213. {
  214.     struct Window *w = NULL, *old_pr_WindowPtr = NULL;
  215.     struct IntuiMessage *message = NULL;
  216.     struct TextFont *font = NULL;
  217.     
  218.     /*
  219.      *   Libraries
  220.      */
  221.     IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library", 0L);
  222.     if (IntuitionBase == NULL)
  223.         goto cleanup;
  224.     
  225.     GfxBase = (struct GfxBase *) OpenLibrary("graphics.library", 0L);
  226.     if (GfxBase == NULL)
  227.         goto cleanup;
  228.     
  229.     /*
  230.      *   Open window and set font
  231.      */
  232.     w = OpenWindow(&nw);
  233.     if (w == NULL)
  234.         goto cleanup;
  235.     
  236.     font = (struct TextFont *) OpenFont(Topaz80Equiv());
  237.     if (font == NULL)
  238.         goto cleanup;
  239.     SetFont(w->RPort, font);
  240.     /*
  241.      *   Test begins here.
  242.      */
  243.     TestRoutine(w);
  244.     
  245.     WaitForClose(w);
  246.     
  247.     cleanup:
  248.     if (font)
  249.         CloseFont(font);
  250.     if (w) 
  251.     {
  252.         while (message = (struct IntuiMessage *)
  253.             GetMsg(w->UserPort)) ReplyMsg(message);
  254.         CloseWindow(w);
  255.     }
  256.     if (GfxBase)
  257.         CloseLibrary((struct library *) GfxBase);
  258.     if (IntuitionBase)
  259.         CloseLibrary((struct library *) IntuitionBase);
  260.     
  261.     exit(0);
  262. }
  263.  
  264.  
  265. /**
  266.  *
  267.  *   Wait for a close message
  268.  *
  269. **/
  270. WaitForClose(w)
  271.     struct Window *w;
  272. {
  273.     int quit_flag = FALSE;
  274.     UWORD code;
  275.     ULONG class;
  276.     APTR object;
  277.     struct IntuiMessage *message;
  278.     
  279.     while (quit_flag == FALSE) 
  280.     {
  281.         Wait(1L << w->UserPort->mp_SigBit);
  282.         /*
  283.          *  Handle messages from the window
  284.          */
  285.         while ( message = (struct IntuiMessage *) GetMsg(w->UserPort) ) 
  286.         {
  287.             class = message->Class;
  288.             ReplyMsg(message);
  289.             
  290.             if (class == CLOSEWINDOW)
  291.                 quit_flag = TRUE;
  292.         }
  293.     }
  294.     return(quit_flag);
  295. }
  296.  
  297.  
  298.