home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Graphics / graphics-16000.iso / amiga / fractal / mak / source.lzh / Source / Menu.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-29  |  14.4 KB  |  908 lines

  1. /*************************************************************************
  2.  
  3.               M E N U   T E X T   A N D   S T R U C T U R E S
  4.  
  5. *************************************************************************/
  6.  
  7.  
  8.  
  9. #include <exec/types.h>
  10. #include <intuition/intuition.h>
  11.  
  12. extern struct TextAttr Font;
  13.  
  14. /*************************************************************************
  15.  
  16.     T E X T    S T R U C T U R E S    F O R    T H E    M E N U
  17.     
  18. *************************************************************************/
  19.  
  20.  
  21. struct IntuiText DrawText =
  22.   {
  23.   4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Draw", NULL
  24.   };
  25.  
  26. struct IntuiText InfoText =
  27.   {
  28.   4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Info", NULL
  29.   };
  30.  
  31. struct IntuiText QuitText =
  32.   {
  33.   4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Quit", NULL
  34.   };
  35.  
  36. struct IntuiText ParamText =
  37.   {
  38.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Parameters", NULL
  39.   };
  40.  
  41. struct IntuiText AssignColors =
  42.   {
  43.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Assign", NULL
  44.   };
  45.  
  46. struct IntuiText ModifyColors =
  47.   {
  48.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Modify", NULL
  49.   };
  50.  
  51. struct IntuiText DefaultColors =
  52.   {
  53.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Default", NULL
  54.   };
  55.  
  56. struct IntuiText AssignFractValues =
  57.   {
  58.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Assign Mandelbrot", NULL
  59.   };
  60.  
  61. struct IntuiText AssignJuliaValues =
  62.   {
  63.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Assign Julia", NULL   
  64.   };
  65.  
  66. struct IntuiText MapText =
  67.   {
  68.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Map", NULL
  69.   };
  70.   
  71. struct IntuiText ILBMText =
  72.   {
  73.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"ILBM", NULL
  74.   };
  75.  
  76. struct IntuiText SaveText =
  77.   {
  78.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Save", NULL
  79.   };
  80.  
  81. struct IntuiText LoadText =
  82.   {
  83.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Load", NULL
  84.   };
  85.   
  86. struct IntuiText DeleteText =
  87.   {
  88.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Delete", NULL
  89.   };      
  90.   
  91. struct IntuiText MandText =
  92.   {
  93.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Mandelbrot", NULL
  94.   };
  95.      
  96. struct IntuiText JuliaText =
  97.   {
  98.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Julia", NULL
  99.   };
  100.          
  101. struct IntuiText ZoneIText =
  102.   {
  103.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Zones 1-100", NULL
  104.   };
  105.       
  106. struct IntuiText ZoneIIText =
  107.   {
  108.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Zones 101-200", NULL
  109.   };
  110.      
  111. struct IntuiText QuitProgText =
  112.   {
  113.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Program", NULL
  114.   };
  115.      
  116. struct IntuiText QuitCurrentText =
  117.   {
  118.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Current Job", NULL
  119.   };      
  120.  
  121. struct IntuiText IterationText[10] =
  122.   {
  123.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"     25", NULL },
  124.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"     50", NULL },
  125.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"     75", NULL },
  126.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    100", NULL },
  127.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    125", NULL },
  128.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    175", NULL },
  129.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    225", NULL },
  130.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    275", NULL },
  131.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    325", NULL },
  132.      { 4, 1, JAM2, CHECKWIDTH, 1, &Font, (UBYTE *)"    375", NULL },
  133.   };    
  134.     
  135. struct IntuiText ProgrmDscrptText =
  136.   {
  137.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Program Description", NULL
  138.   };
  139.  
  140. struct IntuiText FractValuesText =
  141.   {
  142.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Fractal Values", NULL
  143.   };
  144.     
  145. struct IntuiText MapInfoText =
  146.   {
  147.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Map", NULL
  148.   };
  149.     
  150. struct IntuiText IterationsInfoText =
  151.   {
  152.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Iterations", NULL
  153.   };
  154.  
  155. struct IntuiText DrawingAreaInfoText =
  156.   {
  157.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Drawing Area", NULL
  158.   };
  159.  
  160. struct IntuiText DrawInfoText =
  161.   {
  162.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Draw", NULL
  163.   };
  164.  
  165. struct IntuiText ColorZonesInfoText =
  166.   {
  167.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Color Zones", NULL
  168.   };
  169.  
  170. struct IntuiText ModifyColorsInfoText =
  171.   {
  172.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Modify Colors", NULL
  173.   };
  174.  
  175. struct IntuiText DefaultColorsInfoText =
  176.   {
  177.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Default Colors", NULL
  178.   };
  179.     
  180. struct IntuiText LoadSaveInfoText =
  181.   {
  182.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"Load & Save", NULL
  183.   };
  184.  
  185. struct IntuiText AboutInfoText =
  186.   {
  187.    4, 1, JAM2, 1, 1, &Font, (UBYTE *)"About", NULL
  188.   };
  189.  
  190.       
  191. /**************************************************************************
  192.  
  193.   M E N U I T E M   S T R U C T U R E S   F O R   T H E   M E N U
  194.   
  195. **************************************************************************/
  196.  
  197.  
  198.  
  199. struct MenuItem Assign_Julia_Values =
  200.   {
  201.    NULL,
  202.    1, 14,
  203.    140, 10,
  204.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  205.    0,
  206.    (APTR)&AssignJuliaValues,
  207.    NULL,
  208.    0,
  209.    NULL,
  210.    0
  211.   };
  212.   
  213. struct MenuItem Assign_Fract_Values =
  214.   {
  215.    &Assign_Julia_Values,
  216.    1, 2,
  217.    140, 10,
  218.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  219.    0,
  220.    (APTR)&AssignFractValues,
  221.    NULL,
  222.    0,
  223.    NULL,
  224.    0
  225.   };
  226.  
  227. struct MenuItem Modify_Colors =
  228.   {
  229.     NULL,   
  230.     2, 26,
  231.     90, 10,
  232.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  233.     0,
  234.     (APTR)&ModifyColors,
  235.     NULL,
  236.     0,
  237.     NULL,
  238.     0,
  239.   };  
  240.  
  241. struct MenuItem Zone_II =
  242.   {
  243.    NULL,
  244.    90, 14,
  245.    130, 10,
  246.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  247.    0,
  248.    (APTR)&ZoneIIText,
  249.    NULL,
  250.    0,
  251.    NULL,
  252.    0
  253.   };
  254.  
  255. struct MenuItem Zone_I =
  256.   {
  257.    &Zone_II,
  258.    90, 2,
  259.    130, 10,
  260.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  261.    0,
  262.    (APTR)&ZoneIText,
  263.    NULL,
  264.    0,
  265.    NULL,
  266.    0
  267.   };
  268.  
  269. struct MenuItem Assign_Colors =
  270.   {
  271.    &Modify_Colors,
  272.    2, 14,
  273.    90, 10,
  274.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  275.    0,
  276.    (APTR)&AssignColors,
  277.    NULL,
  278.    0,
  279.    &Zone_I,
  280.    0
  281.   };
  282.  
  283. struct MenuItem Default_Colors =
  284.   {
  285.     &Assign_Colors,
  286.     2, 2,
  287.     90, 10,
  288.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  289.     0,
  290.     (APTR)&DefaultColors,
  291.     NULL,
  292.     0,
  293.     NULL,
  294.     0
  295.   };
  296.   
  297.   
  298. struct MenuItem Iterations[10] =
  299.   {
  300.      {
  301.        &Iterations[1],
  302.        10, 20,
  303.        (60 + CHECKWIDTH), 10,
  304.        CHECKIT | CHECKED | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  305.        0x03FE,
  306.        (APTR)&IterationText[0],
  307.        NULL,
  308.        0,
  309.        NULL,
  310.        0
  311.      },  
  312.      
  313.      {
  314.        &Iterations[2],
  315.        10, 32,
  316.        (60 + CHECKWIDTH), 10,
  317.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  318.        0x03FD,
  319.        (APTR)&IterationText[1],
  320.        NULL,
  321.        0,
  322.        NULL,
  323.        0
  324.      },
  325.      
  326.      {
  327.        &Iterations[3],
  328.        10, 44,
  329.        (60 + CHECKWIDTH), 10,
  330.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  331.        0x03FB,
  332.        (APTR)&IterationText[2],
  333.        NULL,
  334.        0,
  335.        NULL,
  336.        0  
  337.      },
  338.      
  339.      {
  340.        &Iterations[4],
  341.        10, 56,
  342.        (60 + CHECKWIDTH), 10,
  343.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  344.        0x03F7,
  345.        (APTR)&IterationText[3],
  346.        NULL,
  347.        0,
  348.        NULL,
  349.        0  
  350.      },
  351.      
  352.      {
  353.        &Iterations[5],
  354.        10, 68,
  355.        (60 + CHECKWIDTH), 10,
  356.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  357.        0x03EF,
  358.        (APTR)&IterationText[4],
  359.        NULL,
  360.        0,
  361.        NULL,
  362.        0  
  363.      },  
  364.        
  365.      {
  366.        &Iterations[6],
  367.        10, 80,
  368.        (60 + CHECKWIDTH), 10,
  369.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  370.        0x03DF,
  371.        (APTR)&IterationText[5],
  372.        NULL,
  373.        0,
  374.        NULL,
  375.        0  
  376.      },
  377.      
  378.      {
  379.       &Iterations[7],
  380.        10, 92,
  381.        (60 + CHECKWIDTH), 10,
  382.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  383.        0x03BF,
  384.        (APTR)&IterationText[6],
  385.        NULL,
  386.        0,
  387.        NULL,
  388.        0  
  389.      },
  390.      
  391.      {
  392.        &Iterations[8],
  393.        10, 104,
  394.        (60 + CHECKWIDTH), 10,
  395.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  396.        0x037F,
  397.        (APTR)&IterationText[7],
  398.        NULL,
  399.        0,
  400.        NULL,
  401.        0  
  402.      },
  403.      
  404.      {
  405.        &Iterations[9],
  406.        10, 116,
  407.        (60 + CHECKWIDTH), 10,
  408.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  409.        0x02FF,
  410.        (APTR)&IterationText[8],
  411.        NULL,
  412.        0,
  413.        NULL,
  414.        0  
  415.      },
  416.      
  417.      {
  418.        NULL,
  419.        10, 128,
  420.        (60 + CHECKWIDTH), 10,
  421.        CHECKIT | ITEMTEXT | ITEMENABLED | HIGHCOMP,
  422.        0x01FF,
  423.        (APTR)&IterationText[9],
  424.        NULL,
  425.        0,
  426.        NULL,
  427.        0 
  428.      },
  429.      
  430.   };     
  431.        
  432. struct MenuItem Parameters =
  433.   {
  434.     NULL,
  435.     2, 2,
  436.     120, 10,
  437.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  438.     0,
  439.     (APTR)&ParamText,
  440.     NULL,
  441.     0,
  442.     NULL,
  443.     0
  444.   };
  445.  
  446. struct MenuItem QuitProg =
  447.   {
  448.     NULL,
  449.     120, 14,
  450.     120, 10,
  451.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  452.     0,
  453.     (APTR)&QuitProgText,
  454.     NULL,
  455.     0,
  456.     NULL,
  457.     0
  458.   };
  459.  
  460. struct MenuItem QuitCurrent =
  461.   {
  462.     &QuitProg,
  463.     120, 2,
  464.     120, 10,
  465.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  466.     0,
  467.     (APTR)&QuitCurrentText,
  468.     NULL,
  469.     0,
  470.     NULL,
  471.     0
  472.   };
  473.  
  474.  
  475. struct MenuItem Quit =
  476.   {
  477.     NULL,
  478.     1, 74,
  479.     120, 10,
  480.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  481.     0,
  482.     (APTR)&QuitText,
  483.     NULL,
  484.     0,
  485.     &QuitCurrent,
  486.     0
  487.   };
  488.  
  489. struct MenuItem DeleteParms =
  490.   {
  491.     NULL,
  492.     120, 14,
  493.     120, 10,
  494.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  495.     0,
  496.     (APTR)&ParamText,
  497.     NULL,
  498.     0,
  499.     NULL,
  500.     0
  501.   };
  502.  
  503. struct MenuItem DeleteILBM =
  504.   {
  505.     &DeleteParms,
  506.     120, 2,
  507.     120, 10,
  508.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  509.     0,
  510.     (APTR)&ILBMText,
  511.     NULL,
  512.     0,
  513.     NULL,
  514.     0
  515.   };
  516.  
  517.  
  518. struct MenuItem Delete =
  519.   {
  520.     &Quit,
  521.     1, 62,
  522.     120, 10,
  523.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  524.     0,
  525.     (APTR)&DeleteText,
  526.     NULL,
  527.     0,
  528.     &DeleteILBM,
  529.     0
  530.   };
  531.  
  532. struct MenuItem LoadParams =
  533.   {
  534.     NULL,
  535.     120, 14,
  536.     120, 10,
  537.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  538.     0,
  539.     (APTR)&ParamText,
  540.     NULL,
  541.     0,
  542.     NULL,
  543.     0
  544.   };
  545.  
  546. struct MenuItem LoadILBM =
  547.   {
  548.     &LoadParams,
  549.     120, 2,
  550.     120, 10,
  551.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  552.     0,
  553.     (APTR)&ILBMText,
  554.     NULL,
  555.     0,
  556.     NULL,
  557.     0
  558.   };
  559.  
  560. struct MenuItem Load =
  561.   {
  562.     &Delete,
  563.     1, 50,
  564.     120, 10,
  565.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  566.     0,
  567.     (APTR)&LoadText,
  568.     NULL,
  569.     0,
  570.     &LoadILBM,
  571.     0
  572.   };
  573.   
  574. struct MenuItem SaveParams =
  575.   {
  576.     NULL,
  577.     120, 14,
  578.     120, 10,
  579.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  580.     0,
  581.     (APTR)&ParamText,
  582.     NULL,
  583.     0,
  584.     NULL,
  585.     0
  586.   };
  587.  
  588. struct MenuItem SaveILBM =
  589.   {
  590.     &SaveParams,
  591.     120, 2,
  592.     120, 10,
  593.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  594.     0,
  595.     (APTR)&ILBMText,
  596.     NULL,
  597.     0,
  598.     NULL,
  599.     0
  600.   };
  601.     
  602. struct MenuItem Save =
  603.   {
  604.     &Load,
  605.     1, 38,
  606.     120, 10,
  607.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  608.     0,
  609.     (APTR)&SaveText,
  610.     NULL,
  611.     0,
  612.     &SaveILBM,
  613.     0
  614.   };
  615.  
  616. struct MenuItem JuliaDraw =
  617.   {
  618.     NULL,
  619.     120, 14,
  620.     120, 10,
  621.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  622.     0,
  623.     (APTR)&JuliaText,
  624.     NULL,
  625.     0,
  626.     NULL,
  627.     0
  628.   };
  629.  
  630.  
  631. struct MenuItem MandDraw =
  632.   {
  633.     &JuliaDraw,
  634.     120, 2,
  635.     120, 10,
  636.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  637.     0,
  638.     (APTR)&MandText,
  639.     NULL,
  640.     0,
  641.     NULL,
  642.     0
  643.   };
  644.  
  645. struct MenuItem Draw =
  646.   {
  647.     &Save,
  648.     1, 26,
  649.     120, 10,
  650.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  651.     0,
  652.     (APTR)&DrawText,
  653.     NULL,
  654.     0,
  655.     &MandDraw,
  656.     0
  657.   };
  658.  
  659. struct MenuItem Map =
  660.   {
  661.     &Draw,
  662.     1, 14,
  663.     120, 10,
  664.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  665.     0,
  666.     (APTR)&MapText,
  667.     NULL,
  668.     0,
  669.     NULL,
  670.     0
  671.   };
  672.  
  673. struct MenuItem AboutInfo =
  674.   {
  675.     NULL,
  676.     100, 122,
  677.     160, 10,
  678.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  679.     0,
  680.     (APTR)&AboutInfoText,
  681.     NULL,
  682.     0,
  683.     NULL,
  684.     0
  685.   };
  686.  
  687.  
  688. struct MenuItem LoadSaveInfo =
  689.   {
  690.     &AboutInfo,
  691.     100, 110,
  692.     160, 10,
  693.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  694.     0,
  695.     (APTR)&LoadSaveInfoText,
  696.     NULL,
  697.     0,
  698.     NULL,
  699.     0
  700.   };
  701.  
  702.  
  703. struct MenuItem DefaultColorsInfo =
  704.   {
  705.     &LoadSaveInfo,
  706.     100, 98,
  707.     160, 10,
  708.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  709.     0,
  710.     (APTR)&DefaultColorsInfoText,
  711.     NULL,
  712.     0,
  713.     NULL,
  714.     0
  715.   };
  716.  
  717.  
  718. struct MenuItem ModifyColorsInfo =
  719.   {
  720.     &DefaultColorsInfo,
  721.     100, 86,
  722.     160, 10,
  723.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  724.     0,
  725.     (APTR)&ModifyColorsInfoText,
  726.     NULL,
  727.     0,
  728.     NULL,
  729.     0
  730.   };
  731.  
  732.  
  733. struct MenuItem ColorZonesInfo =
  734.   {
  735.     &ModifyColorsInfo,
  736.     100, 74,
  737.     160, 10,
  738.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  739.     0,
  740.     (APTR)&ColorZonesInfoText,
  741.     NULL,
  742.     0,
  743.     NULL,
  744.     0
  745.   };
  746.  
  747.  
  748. struct MenuItem DrawInfo =
  749.   {
  750.     &ColorZonesInfo,
  751.     100, 62,
  752.     160, 10,
  753.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  754.     0,
  755.     (APTR)&DrawInfoText,
  756.     NULL,
  757.     0,
  758.     NULL,
  759.     0
  760.   };
  761.  
  762.  
  763. struct MenuItem DrawingAreaInfo =
  764.   {
  765.     &DrawInfo,
  766.     100, 50,
  767.     160, 10,
  768.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  769.     0,
  770.     (APTR)&DrawingAreaInfoText,
  771.     NULL,
  772.     0,
  773.     NULL,
  774.     0
  775.   };
  776.  
  777.  
  778. struct MenuItem IterationsInfo =
  779.   {
  780.     &DrawingAreaInfo,
  781.     100, 38,
  782.     160, 10,
  783.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  784.     0,
  785.     (APTR)&IterationsInfoText,
  786.     NULL,
  787.     0,
  788.     NULL,
  789.     0
  790.   };
  791.  
  792. struct MenuItem MapInfo =
  793.   {
  794.     &IterationsInfo,
  795.     100, 26,
  796.     160, 10,
  797.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  798.     0,
  799.     (APTR)&MapInfoText,
  800.     NULL,
  801.     0,
  802.     NULL,
  803.     0
  804.   };
  805.  
  806. struct MenuItem FractValues =
  807.   {
  808.     &MapInfo,
  809.     100, 14,
  810.     160, 10,
  811.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  812.     0,
  813.     (APTR)&FractValuesText,
  814.     NULL,
  815.     0,
  816.     NULL,
  817.     0
  818.   };
  819.  
  820. struct MenuItem ProgrmDscrpt =
  821.   {
  822.     &FractValues,
  823.     100, 2,
  824.     160, 10,
  825.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  826.     0,
  827.     (APTR)&ProgrmDscrptText,
  828.     NULL,
  829.     0,
  830.     NULL,
  831.     0
  832.   };
  833.  
  834. struct MenuItem Info =
  835.   {
  836.     &Map,
  837.     1, 2,
  838.     120, 10,
  839.     ITEMTEXT | ITEMENABLED | HIGHCOMP,
  840.     0,
  841.     (APTR)&InfoText,
  842.     NULL,
  843.     0,
  844.     &ProgrmDscrpt,
  845.     0
  846.   };
  847.  
  848.  
  849. /**************************************************************************
  850.  
  851.           M E N U   S T R U C T U R E S   F O R   T H E   M E N U
  852.      
  853. **************************************************************************/
  854.  
  855.  
  856. struct Menu Menu[5] =
  857.   {
  858.      { /* Menu[0] The Controls Menu */
  859.        &Menu[1],
  860.        10, 0,
  861.        70, 10,
  862.        MENUENABLED,
  863.        (BYTE *) "Controls",
  864.        &Info
  865.      },
  866.  
  867.      { /* Menu[1] The Drawing Area Menu */
  868.        &Menu[2],
  869.        100, 0,
  870.        120, 10,
  871.        MENUENABLED,
  872.        (BYTE *) "Drawing Area",
  873.        &Parameters
  874.      }, 
  875.  
  876.      { /* Menu[2] The Colors Menu */
  877.        &Menu[3],
  878.        230, 0,
  879.        90, 10,
  880.        MENUENABLED,
  881.        (BYTE *) "Colors",
  882.        &Default_Colors
  883.      },
  884.       
  885.      { /* Menu[3] The Iterations Menu */
  886.        &Menu[4],
  887.        330, 0,
  888.        (70 + CHECKWIDTH), 10,
  889.        MENUENABLED,
  890.        (BYTE *)"Iterations",
  891.        &Iterations[0]
  892.      },  
  893.      
  894.      { /* Menu[4] The Fractal Values Menu */
  895.        NULL,
  896.        440, 0,
  897.        140, 10,
  898.        MENUENABLED,
  899.        (BYTE *)"Fractal Values",
  900.        &Assign_Fract_Values
  901.      },
  902.  
  903.   };
  904.  
  905. struct Menu *MAKMenu = &Menu[0];
  906.  
  907.  
  908.