home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 632.lha / ParM_v3.6 / ParM_Src.lzh / ParM_Src / Menus.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-08-20  |  1.8 KB  |  117 lines

  1. /*
  2.  *    Menus.c - Copyright © 1990 by S.R. & P.C.
  3.  *
  4.  *    Created:    16 Jun 1990
  5.  *    Modified:    19 Aug 1991  20:23:05
  6.  *
  7.  *    Make>> make
  8.  */
  9.  
  10. #include "ParMBase.h"
  11.  
  12. extern struct TextAttr MenuFont;
  13.  
  14.  
  15. static struct IntuiText SubText2 = {
  16.     3,2,JAM1,
  17.     22,1,
  18.     NULL,
  19.     (UBYTE *)"Shell",
  20.     NULL
  21. };
  22.  
  23. static struct MenuItem SubItem2 = {
  24.     NULL,
  25.     104,10,
  26.     72,10,
  27.     CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP,
  28.     1,
  29.     NULL,
  30.     NULL,
  31.     NULL,
  32.     NULL,
  33.     MENUNULL
  34. };
  35.  
  36. static struct IntuiText SubText1 = {
  37.     3,2,JAM1,
  38.     22,1,
  39.     NULL,
  40.     (UBYTE *)"Simple",
  41.     NULL
  42. };
  43.  
  44. struct MenuItem SubItem1 = {
  45.     NULL,
  46.     104,0,
  47.     72,10,
  48.     CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP+CHECKED,    /* Item flags */
  49.     2,
  50.     NULL,
  51.     NULL,
  52.     NULL,
  53.     NULL,
  54.     MENUNULL
  55. };
  56.  
  57.  
  58. struct Menu Menu1 = {
  59.     NULL,
  60.     0,0,
  61.     44,0,
  62.     MENUENABLED,
  63.     "ParM",
  64.     NULL
  65. };
  66.  
  67. static struct {
  68.     char *MenuName;
  69.     char Command;
  70. } MenuTab[] = {
  71.     {"Open",     'O'},
  72.     {"UpDate",     'U'},
  73.     {"Std Cfg",      0 },
  74.     {"Cmd Mode",  0 },
  75.     {"Command",     'C'},
  76.     {"Change Dir",0 },
  77.     {"Quit",      0 }
  78. };
  79.  
  80. #define NUMBER_OF_ITEM 7
  81.  
  82. void CreateParMenu(short Color)
  83. {
  84.     struct MenuItem *mi, **miptr;
  85.     struct IntuiText *it;
  86.     struct Menu *ParM;
  87.     short i;
  88.  
  89.     ParM = &Menu1;
  90.     miptr = &ParM->FirstItem;
  91.     for( i=0 ; i<NUMBER_OF_ITEM ; i++ ) {
  92.         mi = ArpAlloc(sizeof(struct MenuItem));
  93.         it = ArpAlloc(sizeof(struct IntuiText));
  94.         mi->ItemFill = (APTR)it;
  95.         mi->Flags = ITEMTEXT+ITEMENABLED+HIGHCOMP;
  96.         if (MenuTab[i].Command) {
  97.             mi->Command = MenuTab[i].Command;
  98.             mi->Flags |= COMMSEQ;
  99.         }
  100.         it->IText = (UBYTE *)MenuTab[i].MenuName;
  101.         it->FrontPen = Color;
  102.         it->LeftEdge = it->TopEdge = 1;
  103.         if (i == 3) {
  104.             SubItem1.ItemFill = (APTR)&SubText1;
  105.             SubText1.FrontPen = Color;
  106.             SubItem1.NextItem = &SubItem2;
  107.             SubItem2.ItemFill = (APTR)&SubText2;
  108.             SubText2.FrontPen = Color;
  109.             mi->SubItem = &SubItem1;
  110.         }
  111.         *miptr = mi;
  112.         miptr = &mi->NextItem;
  113.     }
  114.     NewCleanUp(ParM, &MenuFont, 0);
  115. }
  116.  
  117.