/*
 * MandelVroom 2.0
 *
 * (c) Copyright 1987,1989  Kevin L. Clague, San Jose, CA
 *
 * All rights reserved.
 *
 * Permission is hereby granted to distribute this program's source
 * executable, and documentation for non-comercial purposes, so long as the
 * copyright notices are not removed from the sources, executable or
 * documentation.  This program may not be distributed for a profit without
 * the express written consent of the author Kevin L. Clague.
 *
 * This program is not in the public domain.
 *
 * Fred Fish is expressly granted permission to distribute this program's
 * source and executable as part of the "Fred Fish freely redistributable
 * Amiga software library."
 *
 * Permission is expressly granted for this program and it's source to be
 * distributed as part of the Amicus Amiga software disks, and the
 * First Amiga User Group's Hot Mix disks.
 *
 * contents: this file contains the data definitions for MandelVroom's
 * menus.
 */

#include "mandp.h"

UBYTE MandStr[]  = { "MAND"  };
UBYTE JuliaStr[] = { "JULIA" };

struct IntuiText PictShadow[] =
  {
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    0,
    2,
    NULL,
    MandStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    0,
    2,
    NULL,
    JuliaStr,
    NULL
    }
  };

struct IntuiText PictSubsIntui[] =
  {
    {
    SHADOWPEN,
    0,
    JAM1,
    1,
    3,
    NULL,
    MandStr,
    &PictShadow[0]
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    1,
    3,
    NULL,
    JuliaStr,
    &PictShadow[1]
    }
  };

struct MenuItem PictSubs[] =
  {
    {
    (struct MenuItem *) &PictSubs[1],
    -42,
    0,
    42,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    NULL,
    (APTR) &PictSubsIntui[0],
    NULL,
    '\0',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
    -42,
    12,
    42,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    NULL,
    (APTR) &PictSubsIntui[1],
    NULL,
    '\0',
    NULL,
    NULL
    }
  };

UBYTE AboutStr1[]  = { "           MandelVroom" };
UBYTE AboutStr2[]  = { "The Multitasking Mandelbrot Program" };

UBYTE AboutStr3[]  = { "   Only Amiga Makes It Possible!" };

UBYTE AboutStr4[]  = { "        Copyright 1987,1989" };
UBYTE AboutStr5[]  = { "          Kevin L. Clague" };

struct IntuiText AboutShadow[] =
  {
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    0,
    NULL,
    AboutStr1,
    &AboutShadow[1]
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    10,
    NULL,
    AboutStr2,
    &AboutShadow[2]
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    20,
    NULL,
    AboutStr3,
    &AboutShadow[3]
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    34,
    NULL,
    AboutStr4,
    &AboutShadow[4]
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    44,
    NULL,
    AboutStr5,
    NULL
    },
  };

struct IntuiText AboutSubsIntui[] =
  {
    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    1,
    NULL,
    AboutStr1,
    &AboutSubsIntui[1]
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    11,
    NULL,
    AboutStr2,
    &AboutSubsIntui[2]
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    21,
    NULL,
    AboutStr3,
    &AboutSubsIntui[3]
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    35,
    NULL,
    AboutStr4,
    &AboutSubsIntui[4]
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    45,
    NULL,
    AboutStr5,
    &AboutShadow[0]
    },
  };

struct MenuItem AboutSubs =
    {
    NULL,
    -44,
    0,
    300,
    53,
    ITEMTEXT|ITEMENABLED|HIGHNONE,
    NULL,
    (APTR) &AboutSubsIntui[0],
    NULL,
    '\0',
    NULL,
    NULL
    };

UBYTE NewStr[]    = { "New"       };
UBYTE CurStr[]    = { "Current"   };
UBYTE LoadStr[]   = { "Load"      };
UBYTE SavePStr[]  = { "Save"      };
UBYTE ClosePStr[] = { "Close"     };
UBYTE SaveIStr[]  = { "Save ILBM" };
UBYTE HelpStr[]   = { "Help"      };
UBYTE CancelStr[] = { "Cancel"    };
UBYTE QuitStr[]   = { "Quit"      };
UBYTE AboutStr[]  = { "About"     };

struct IntuiText NewShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    NewStr,
    NULL
    };

struct IntuiText CurShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    CurStr,
    NULL
    };

struct IntuiText LoadShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    LoadStr,
    NULL
    };

struct IntuiText SaveProjShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    SavePStr,
    NULL
    };

struct IntuiText CloseShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    ClosePStr,
    NULL
    };

struct IntuiText SaveILBMShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    SaveIStr,
    NULL
    };

struct IntuiText HelpShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    HelpStr,
    NULL
    };

struct IntuiText CancelShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    CancelStr,
    NULL
    };

struct IntuiText QuitShadow =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    QuitStr,
    NULL
    };

struct IntuiText AboutShadowII =
    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    5,
    2,
    NULL,
    AboutStr,
    NULL
    };

struct IntuiText ProjectItemsIntui[] =
  {
    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    NewStr,
    &NewShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    CurStr,
    &CurShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    LoadStr,
    &LoadShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    SavePStr,
    &SaveProjShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    ClosePStr,
    &CloseShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    SaveIStr,
    &SaveILBMShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    HelpStr,
    &HelpShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    CancelStr,
    &CancelShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    QuitStr,
    &QuitShadow
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    6,
    3,
    NULL,
    AboutStr,
    &AboutShadowII
    },
  };

struct MenuItem ProjectItems[] =
  {
    {  /* New */
    (struct MenuItem *) &ProjectItems[1],
    0,
    0,
    116,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[0],
    NULL,
    0,
    (struct MenuItem *) &PictSubs[0],
    NULL
    },

    {  /* Current */
    (struct MenuItem *) &ProjectItems[2],
    0,
    14,
    116,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[1],
    NULL,
    ' ',
    NULL,
    NULL
    },

    {  /* Load */
    (struct MenuItem *) &ProjectItems[3],
    0,
    28,
    116,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[2],
    NULL,
    'L',
    NULL,
    NULL
    },

    {  /* Save */
    (struct MenuItem *) &ProjectItems[4],
    0,
    42,
    116,
    14,
    ITEMTEXT|ITEMENABLED|COMMSEQ|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[3],
    NULL,
    'S',
    NULL,
    NULL
    },

    {  /* Close */
    (struct MenuItem *) &ProjectItems[5],
    0,
    56,
    116,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[4],
    NULL,
    ' ',
    NULL,
    NULL
    },

    { /* Save ILBM */
    (struct MenuItem *) &ProjectItems[6],
    0,
    70,
    116,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[5],
    NULL,
    'I',
    NULL,
    NULL
    },

    { /* Help */
    (struct MenuItem *) &ProjectItems[7],
    0,
    84,
    116,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[6],
    NULL,
    'H',
    NULL,
    NULL
    },

    {  /* Cancel */
    (struct MenuItem *) &ProjectItems[8],
    0,
    98,
    116,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[7],
    NULL,
    'Z',
    NULL,
    NULL
    },

    {  /* quit */
    (struct MenuItem *) &ProjectItems[9],
    0,
    112,
    116,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ProjectItemsIntui[8],
    NULL,
    'Q',
    NULL,
    NULL,
    },

    {  /* About */
    NULL,
    0,
    126,
    116,
    14,
    ITEMTEXT|ITEMENABLED|HIGHNONE,
    0,
    (APTR) &ProjectItemsIntui[9],
    NULL,
    0,
    (struct MenuItem *) &AboutSubs,
    NULL
    },
  };

UBYTE TypeIStr[]  = { " I"  };
UBYTE TypeIIStr[] = { "II" };

struct IntuiText AutoShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    TypeIStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    TypeIIStr,
    NULL
    }
  };

struct IntuiText AutoSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    TypeIStr,
    &AutoShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    TypeIIStr,
    &AutoShadow[1]
    }
  };

struct MenuItem AutoSub[] =
  {
    {
    (struct MenuItem *) &AutoSub[1],
   -28,
    0,
    28,
    12,
    ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0000,
    (APTR) &AutoSubsIntui[0],
    NULL,
    0,
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -28,
    12,
    28,
    12,
    ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0000,
    (APTR) &AutoSubsIntui[1],
    NULL,
    0,
    NULL,
    NULL
    }
  };

UBYTE HiResStr[]   = { "High Res"  };
UBYTE LaceStr[]    = { "Interlace" };
UBYTE HBStr[]      = { "HalfBrite" };

struct IntuiText ViewModesShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    HiResStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    LaceStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    HBStr,
    NULL
    }
  };

struct IntuiText ViewModeSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    HiResStr,
    &ViewModesShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    LaceStr,
    &ViewModesShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    HBStr,
    &ViewModesShadow[2]
    }
  };

struct MenuItem ViewModeSubs[] =
  {
    {
    (struct MenuItem *) &ViewModeSubs[1],
   -88,
    0,
    88,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ViewModeSubsIntui[0],
    NULL,
    '\0x1a',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &ViewModeSubs[2],
   -88,
    12,
    88,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ViewModeSubsIntui[1],
    NULL,
    '\0x1a',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -88,
    24,
    88,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ViewModeSubsIntui[2],
    NULL,
    '\0x1a',
    NULL,
    NULL
    }
  };

UBYTE StdStr[]    = { "Standard"  };
UBYTE WBStr[]     = { "Workbench" };

struct IntuiText ScreenSizeShadow[] =
  {

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    16,
    2,
    NULL,
    StdStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    0,
    JAM1,
    16,
    2,
    NULL,
    WBStr,
    NULL
    },
  };

struct IntuiText ScreenSizeSubsIntui[] =
  {

    {
    SHADOWPEN,
    0,
    JAM1,
    17,
    3,
    NULL,
    StdStr,
    &ScreenSizeShadow[0],
    },

    {
    SHADOWPEN,
    0,
    JAM1,
    17,
    3,
    NULL,
    WBStr,
    &ScreenSizeShadow[1],
    },
  };

struct MenuItem ScreenSizeSubs[] =
  {
    {
    (struct MenuItem *) &ScreenSizeSubs[1],
   -88,
    0,
    88,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0003-0x0001,
    (APTR) &ScreenSizeSubsIntui[0],
    NULL,
    '\0x1a',
    NULL,
    NULL
    },

    {
    NULL,
   -88,
    12,
    88,
    12,
    CHECKED|CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0003-0x0002,
    (APTR) &ScreenSizeSubsIntui[1],
    NULL,
    '\0x1a',
    NULL,
    NULL
    },
  };

UBYTE TwoStr[]   = { " 2" };
UBYTE FourStr[]  = { " 4" };
UBYTE EightStr[] = { " 8" };
UBYTE _16Str[]   = { "16" };
UBYTE _32Str[]   = { "32" };
UBYTE _64Str[]   = { "64" };

struct IntuiText DepthShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    TwoStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    FourStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    EightStr,
    NULL
    },
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    _16Str,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    _32Str,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    _64Str,
    NULL
    }
  };

struct IntuiText DepthSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    TwoStr,
    &DepthShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    FourStr,
    &DepthShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    EightStr,
    &DepthShadow[2]
    },
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    _16Str,
    &DepthShadow[3]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    _32Str,
    &DepthShadow[4]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    _64Str,
    &DepthShadow[5]
    }
  };

struct MenuItem DepthSubs[] =
  {
    {
    (struct MenuItem *) &DepthSubs[1],
    -68,
    0,
    68,
    12,
    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0001,
    (APTR) &DepthSubsIntui[0],
    NULL,
    '1',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &DepthSubs[2],
    -68,
    12,
    68,
    12,
    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0002,
    (APTR) &DepthSubsIntui[1],
    NULL,
    '2',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &DepthSubs[3],
    -68,
    24,
    68,
    12,
    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0004,
    (APTR) &DepthSubsIntui[2],
    NULL,
    '3',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &DepthSubs[4],
    -68,
    36,
    68,
    12,
    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0008,
    (APTR) &DepthSubsIntui[3],
    NULL,
    '4',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &DepthSubs[5],
    -68,
    48,
    68,
    12,
    CHECKIT|CHECKED|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0010,
    (APTR) &DepthSubsIntui[4],
    NULL,
    '5',
    NULL,
    NULL
    },

    {
    NULL,
    -68,
    60,
    68,
    12,
    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0x003F-0x0020,
    (APTR) &DepthSubsIntui[5],
    NULL,
    '6',
    NULL,
    NULL
    }
  };

UBYTE OnStr[]  = { "On"  };
UBYTE OffStr[] = { "Off" };

struct IntuiText OnOffShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    OnStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    OffStr,
    NULL
    }
  };

struct IntuiText OnOffIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    OnStr,
    &OnOffShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    OffStr,
    &OnOffShadow[1]
    }
  };

struct MenuItem BorderSubs[] =
  {
    {
    (struct MenuItem *) &BorderSubs[1],
   -40,
    0,
    40,
    12,
    CHECKIT | ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0003-0x001,
    (APTR) &OnOffIntui[1],
    NULL,
    0,
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -40,
    12,
    40,
    12,
    CHECKIT | CHECKED | ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0003-0x002,
    (APTR) &OnOffIntui[0],
    NULL,
    0,
    NULL,
    NULL
    }
  };

UBYTE ColorStr[]  = { "Colors"      };
UBYTE CycleStr[]  = { "Cycling"     };
UBYTE CntrStr[]   = { "Contours"    };
UBYTE AutoStr[]   = { "AutoContour" };
UBYTE HistStr[]   = { "Histogram"   };
UBYTE ViewStr[]   = { "View Modes"  };
UBYTE NumStr[]    = { "Num Colors"  };
UBYTE ScreenStr[] = { "Screen Size" };
UBYTE BorderStr[] = { "Borderless"  };

struct IntuiText DisplayShadow[] =
  {

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    ColorStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    CycleStr,
    NULL
    },
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    CntrStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    AutoStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    HistStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    BorderStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    NumStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    ViewStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    ScreenStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    5,
    2,
    NULL,
    BorderStr,
    NULL
    },
  };

struct IntuiText DisplayItemsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    ColorStr,
    &DisplayShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    CycleStr,
    &DisplayShadow[1]
    },
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    CntrStr,
    &DisplayShadow[2]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    AutoStr,
    &DisplayShadow[3]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    HistStr,
    &DisplayShadow[4]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    BorderStr,
    &DisplayShadow[5]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    NumStr,
    &DisplayShadow[6]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    ViewStr,
    &DisplayShadow[7]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    6,
    3,
    NULL,
    ScreenStr,
    &DisplayShadow[8]
    },
  };

struct MenuItem DisplayItems[] =
  {
    {  /* Colors */
    (struct MenuItem *) &DisplayItems[1],
    0,
    0,
    108,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[0],
    NULL,
    'C',
    NULL,
    NULL
    },

    { /* Cycling */
    (struct MenuItem *) &DisplayItems[2],
    0,
    14,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[1],
    NULL,
    '\t',
    NULL,
    NULL
    },

    {  /* Contours */
    (struct MenuItem *) &DisplayItems[3],
    0,
    28,
    108,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[2],
    NULL,
    'K',
    NULL,
    NULL
    },

    {  /* AutoContour */
    (struct MenuItem *) &DisplayItems[4],
    0,
    42,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[3],
    NULL,
    ' ',
    (struct MenuItem *) &AutoSub,
    NULL
    },

    {  /* Histogram */
    (struct MenuItem *) &DisplayItems[5],
    0,
    56,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[4],
    NULL,
    ' ',
    NULL,
    NULL
    },

    {  /* Border */
    (struct MenuItem *) &DisplayItems[6],
    0,
    70,
    108,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[5],
    NULL,
    '\0x0',
    (struct MenuItem *) &BorderSubs,
    NULL
    },

    { /* Depth */
    (struct MenuItem *) &DisplayItems[7],
    0,
    84,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[6],
    NULL,
    '\0x0',
    (struct MenuItem *) &DepthSubs,
    NULL
    },

    {  /* ViewModes */
    (struct MenuItem *) &DisplayItems[8],
    0,
    98,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[7],
    NULL,
    '\0x0',
    (struct MenuItem *) &ViewModeSubs,
    NULL
    },

    {  /* Screen Size */
    NULL,
    0,
    112,
    108,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &DisplayItemsIntui[8],
    NULL,
    '\0x0',
    (struct MenuItem *) &ScreenSizeSubs,
    NULL
    },
  };

UBYTE InStr[]     = { "In"     };
UBYTE OutStr[]    = { "Out"    };
UBYTE CloseStr[]  = { "Close"  };
UBYTE JuliaPStr[] = { "Julia"  };

struct IntuiText ZoomInShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    InStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    OutStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    CloseStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    6,
    NULL,
    JuliaPStr,
    NULL
    }
  };

struct IntuiText ZoomInSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    InStr,
    &ZoomInShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    OutStr,
    &ZoomInShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    CloseStr,
    &ZoomInShadow[2]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    7,
    NULL,
    JuliaPStr,
    &ZoomInShadow[3]
    }
  };

struct MenuItem ZoomInSubs[] =
  {
    {
    (struct MenuItem *) &ZoomInSubs[1],
   -48,
    0,
    48,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ZoomInSubsIntui[0],
    NULL,
    '\0',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &ZoomInSubs[2],
   -48,
    12,
    48,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ZoomInSubsIntui[1],
    NULL,
    '\0',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &ZoomInSubs[3],
   -48,
    24,
    48,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ZoomInSubsIntui[2],
    NULL,
    '\0',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -48,
    36,
    48,
    16,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &ZoomInSubsIntui[3],
    NULL,
    '\0',
    NULL,
    NULL
    }
  };

UBYTE StartStr[] = { "Start" };
UBYTE StopStr[]  = { "Stop"  };
UBYTE ContStr[]  = { "Resume" };

struct IntuiText GenItShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    StartStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    StopStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    ContStr,
    NULL
    }
  };

struct IntuiText GenItSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    StartStr,
    &GenItShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    StopStr,
    &GenItShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    ContStr,
    &GenItShadow[2]
    },
  };

struct MenuItem GenItSubs[] =
  {
    {
    (struct MenuItem *) &GenItSubs[1],
   -56,
    0,
    56,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    NULL,
    (APTR) &GenItSubsIntui[0],
    NULL,
    'G',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &GenItSubs[2],
   -56,
    12,
    56,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    NULL,
    (APTR) &GenItSubsIntui[1],
    NULL,
    'S',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -56,
    24,
    56,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    NULL,
    (APTR) &GenItSubsIntui[2],
    NULL,
    'J',
    NULL,
    NULL
    },
  };

UBYTE Int68000[]  = { "Int68000" };
UBYTE FFPStr[]    = { "FFP"      };
UBYTE IEEEStr[]   = { "IEEE"     };
UBYTE Int68020[]  = { "Int68020" };
UBYTE IEEE8Str[]  = { "020/881"  };

struct IntuiText GenerateShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    Int68000,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    FFPStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    IEEEStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    Int68020,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    IEEE8Str,
    NULL
    }
  };

struct IntuiText GenerateSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    Int68000,
    &GenerateShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    FFPStr,
    &GenerateShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    IEEEStr,
    &GenerateShadow[2]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    Int68020,
    &GenerateShadow[3]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    IEEE8Str,
    &GenerateShadow[4]
    }
  };

struct MenuItem GenerateSubs[] =
  {
    {
    (struct MenuItem *) &GenerateSubs[1],
   -120,
    0,
    120,
    12,
    CHECKIT|CHECKED|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0001f-0x0001,
    (APTR) &GenerateSubsIntui[0],
    NULL,
    'I',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &GenerateSubs[2],
   -120,
    12,
    120,
    12,
    CHECKIT|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0001f-0x0002,
    (APTR) &GenerateSubsIntui[1],
    NULL,
    'F',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &GenerateSubs[3],
   -120,
    24,
    120,
    12,
    CHECKIT|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0001f-0x0004,
    (APTR) &GenerateSubsIntui[2],
    NULL,
    'E',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &GenerateSubs[4],
   -120,
    36,
    120,
    12,
    CHECKIT|ITEMTEXT|HIGHBOX,
    0x0001f-0x0008,
    (APTR) &GenerateSubsIntui[3],
    NULL,
    ' ',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -120,
    48,
    120,
    12,
    CHECKIT|ITEMTEXT|HIGHBOX,
    0x0001f-0x0001,
    (APTR) &GenerateSubsIntui[4],
    NULL,
    ' ',
    NULL,
    NULL
    },
  };

struct MenuItem LensSub[] =
  {
    {
    (struct MenuItem *) &LensSub[1],
   -40,
    0,
    40,
    12,
    CHECKIT | CHECKED | ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0003-0x001,
    (APTR) &OnOffIntui[0],
    NULL,
    0,
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -40,
    12,
    40,
    12,
    CHECKIT | ITEMTEXT | ITEMENABLED | HIGHBOX,
    0x0003-0x002,
    (APTR) &OnOffIntui[1],
    NULL,
    0,
    NULL,
    NULL
    }
  };

UBYTE GenStr[]    = { "Generate"     };

struct IntuiText ScrollShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    StartStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    GenStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    CancelStr,
    NULL
    },
  };

struct IntuiText ScrollSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    StartStr,
    &ScrollShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    GenStr,
    &ScrollShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    CancelStr,
    &ScrollShadow[2]
    },
  };

struct MenuItem ScrollSubs[] =
  {
    {
    (struct MenuItem *) &ScrollSubs[1],
   -80,
    0,
    80,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0000,
    (APTR) &ScrollSubsIntui[0],
    NULL,
    'I',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &ScrollSubs[2],
   -80,
    12,
    80,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0000,
    (APTR) &ScrollSubsIntui[1],
    NULL,
    'F',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -80,
    24,
    80,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0000,
    (APTR) &ScrollSubsIntui[2],
    NULL,
    'E',
    NULL,
    NULL
    },
  };

UBYTE ZoomStr[]   = { "Zoom"         };
UBYTE ScrollStr[] = { "Pan"          };
UBYTE LensStr[]   = { "Magnifier"    };
UBYTE DataStr[]   = { "Math Mode"    };
UBYTE MaxStr[]    = { "MaxIteration" };
UBYTE StatStr[]   = { "Statistics"   };

struct IntuiText CalculateShadow[] =
  {

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    GenStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    ZoomStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    ScrollStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    LensStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    DataStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    MaxStr,
    NULL,
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    StatStr,
    NULL,
    },
  };

struct IntuiText CalculateItemsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    GenStr,
    &CalculateShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    ZoomStr,
    &CalculateShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    ScrollStr,
    &CalculateShadow[2]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    LensStr,
    &CalculateShadow[3]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    DataStr,
    &CalculateShadow[4]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    MaxStr,
    &CalculateShadow[5]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    StatStr,
    &CalculateShadow[6]
    },
  };

struct MenuItem CalculateItems[] =
  {

    {  /* Generate */
    (struct MenuItem *) &CalculateItems[1],
    0,
    0,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[0],
    NULL,
    '\0',
    (struct MenuItem *) &GenItSubs,
    NULL
    },

    {  /* Zoom */
    (struct MenuItem *) &CalculateItems[2],
    0,
    14,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[1],
    NULL,
    '\0',
    (struct MenuItem *) &ZoomInSubs,
    NULL
    },

    {  /* Scroll */
    (struct MenuItem *) &CalculateItems[3],
    0,
    28,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[2],
    NULL,
    '\0',
    (struct MenuItem *) ScrollSubs,
    NULL
    },

    {  /* Lens */
    (struct MenuItem *) &CalculateItems[4],
    0,
    42,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[3],
    NULL,
    '\0',
    (struct MenuItem *) LensSub,
    NULL
    },

    {  /* Generator */
    (struct MenuItem *) &CalculateItems[5],
    0,
    56,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[4],
    NULL,
    '\0x0',
    (struct MenuItem *) &GenerateSubs,
    NULL
    },

    { /* MaxI */
    (struct MenuItem *) &CalculateItems[6],
    0,
    70,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[5],
    NULL,
    '\0x0',
    NULL,
    NULL
    },

    { /* Statistics */
    (struct MenuItem *) NULL,
    0,
    84,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &CalculateItemsIntui[6],
    NULL,
    '\0x0',
    NULL,
    NULL
    },
  };

UBYTE BigStr[]    = { "Big Brot"      };
UBYTE HeyStr[]    = { "Hey Baby"      };
UBYTE DragonStr[] = { "Aug 85 Cover"  };
UBYTE SpineStr[]  = { "Sea Horse"     };
UBYTE VertStr[]   = { "Golden Dragon" };
UBYTE BStr[]      = { "Dual Spiral"   };
UBYTE SeaStr[]    = { "HalfBrite"     };
UBYTE ChainStr[]  = { "Valley Gal"    };
UBYTE LinkStr[]   = { "Dragon Julia"  };
UBYTE BabyStr[]   = { "Halo"          };

struct IntuiText PresetShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    BigStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    HeyStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    DragonStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    SpineStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    VertStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    BStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    SeaStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    ChainStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    LinkStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    BabyStr,
    NULL
    },
  };

struct IntuiText PresetIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    BigStr,
    &PresetShadow[0],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    HeyStr,
    &PresetShadow[1],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    DragonStr,
    &PresetShadow[2],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    SpineStr,
    &PresetShadow[3],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    VertStr,
    &PresetShadow[4],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    BStr,
    &PresetShadow[5],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    SeaStr,
    &PresetShadow[6],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    ChainStr,
    &PresetShadow[7],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    LinkStr,
    &PresetShadow[8],
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    BabyStr,
    &PresetShadow[9],
    },
  };

struct MenuItem PresetSubs[] =
  {
    {
    (struct MenuItem *) &PresetSubs[1],
    -110,
    0,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[0],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[2],
    -110,
    14,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[1],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[3],
    -110,
    28,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[2],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[4],
    -110,
    42,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[3],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[5],
    -110,
    56,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[4],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[6],
    -110,
    70,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[5],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[7],
    -110,
    84,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[6],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[8],
    -110,
    98,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[7],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &PresetSubs[9],
    -110,
    112,
    110,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[8],
    NULL,
    'p',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
    -110,
    126,
    110,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &PresetIntui[9],
    NULL,
    'p',
    NULL,
    NULL
    },
  };

struct IntuiText OrbitModeShadow[] =
  {
    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    Int68000,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    FFPStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    16,
    2,
    NULL,
    IEEEStr,
    NULL
    },
  };

struct IntuiText OrbitModeSubsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    Int68000,
    &OrbitModeShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    FFPStr,
    &OrbitModeShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    17,
    3,
    NULL,
    IEEEStr,
    &OrbitModeShadow[2]
    },
  };

struct MenuItem OrbitModeSubs[] =
  {
    {
    (struct MenuItem *) &OrbitModeSubs[1],
   -80,
    0,
    80,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0007-0x0001,
    (APTR) &OrbitModeSubsIntui[0],
    NULL,
    'I',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) &OrbitModeSubs[2],
   -80,
    12,
    80,
    12,
    CHECKIT|CHECKED|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0007-0x0002,
    (APTR) &OrbitModeSubsIntui[1],
    NULL,
    'F',
    NULL,
    NULL
    },

    {
    (struct MenuItem *) NULL,
   -80,
    24,
    80,
    12,
    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
    0x0007-0x0004,
    (APTR) &OrbitModeSubsIntui[2],
    NULL,
    'E',
    NULL,
    NULL
    },
  };

UBYTE PresetStr[] = { "Preset"    };
UBYTE OrbtStr[]   = { "Orbit"        };
UBYTE OModStr[]   = { "Orbit Mode"   };
UBYTE OMaxStr[]   = { "Max Orbit"    };

struct IntuiText SpecialShadow[] =
  {

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    PresetStr,
    NULL
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    OrbtStr,
    NULL,
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    OModStr,
    NULL,
    },

    {
    HIGHLIGHTPEN,
    1,
    JAM1,
    4,
    2,
    NULL,
    OMaxStr,
    NULL,
    },
  };

struct IntuiText SpecialItemsIntui[] =
  {
    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    PresetStr,
    &SpecialShadow[0]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    OrbtStr,
    &SpecialShadow[1]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    OModStr,
    &SpecialShadow[2]
    },

    {
    SHADOWPEN,
    1,
    JAM1,
    5,
    3,
    NULL,
    OMaxStr,
    &SpecialShadow[3]
    },
  };

struct MenuItem SpecialItems[] =
  {

    {  /* Presets */
    (struct MenuItem *) &SpecialItems[1],
    -32,
    0,
    90,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &SpecialItemsIntui[0],
    NULL,
    '\0',
    (struct MenuItem *) &PresetSubs,
    NULL
    },

    { /* Orbit */
    (struct MenuItem *) &SpecialItems[2],
    -32,
    14,
    90,
    14,
    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &SpecialItemsIntui[1],
    NULL,
    'R',
    NULL,
    NULL
    },
    { /* Orbit MathMode */
    (struct MenuItem *) &SpecialItems[3],
    -32,
    28,
    90,
    14,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &SpecialItemsIntui[2],
    NULL,
    ' ',
    (struct MenuItem *) OrbitModeSubs,
    NULL
    },

    { /* Orbit MaxOrbit */
    (struct MenuItem *) NULL,
    -32,
    42,
    90,
    12,
    ITEMTEXT|ITEMENABLED|HIGHBOX,
    0,
    (APTR) &SpecialItemsIntui[3],
    NULL,
    ' ',
    NULL,
    NULL
    },
  };

struct Menu Menu[] =
  {
    {
    (struct Menu *) &Menu[1],
    4+42,
    0,
    60,
    8,
    1,
    (BYTE *) "Project",
    (struct MenuItem *) &ProjectItems,
    },

    {
    (struct Menu *) &Menu[2],
    68+42,
    0,
    60,
    8,
    1,
    (BYTE *) "Display",
    (struct MenuItem *) &DisplayItems,
    },

    {
    (struct Menu *) &Menu[3],
    132+42,
    0,
    76,
    8,
    0,
    (BYTE *) "Calculate",
    (struct MenuItem *) &CalculateItems,
    },

    {
    NULL,
    212+42,
    0,
    64,
    8,
    1,
    (BYTE *) "Special",
    (struct MenuItem *) &SpecialItems,
    }
  };

#define NUM_ITEMS(a) (sizeof(a)/sizeof(a[0]))

extern struct NewScreen NewScreen;

/*
 * Set up Menu's check marks to reflect viewmodes.
 */
InitViewModesSubs()
{
  SHORT i;

  ClearItems( ViewModeSubs, NUM_ITEMS( ViewModeSubs ));

  for (i = HIRESSUB; i <= HALFBRITESUB; i++) {

    switch (i) {
      case HIRESSUB:
           if (NewScreen.ViewModes & HIRES)
             ViewModeSubs[i].Flags |= CHECKED;
           break;
      case INTERLACESUB:
           if (NewScreen.ViewModes & INTERLACE)
             ViewModeSubs[i].Flags |= CHECKED;
           break;
      case HALFBRITESUB:
           if (NewScreen.ViewModes & EXTRA_HALFBRITE)
             ViewModeSubs[i].Flags |= CHECKED;
           break;
      }
  }
} /* InitViewModesSubs */

/*
 * Set up Menu's check marks to reflect Depth.
 */
InitDepthSubs()
{
  ClearItems( DepthSubs, NUM_ITEMS( DepthSubs ) );

  DepthSubs[NewScreen.Depth-1].Flags |= CHECKED;

} /* InitScreenViewMode */

/*
 * Set up Menu's check marks to reflect Generator Type
 */
InitGenSubs()
{
  if (CurPict) {

    ClearItems( GenerateSubs, NUM_ITEMS( GenerateSubs ) );

    GenerateSubs[ CurPict->MathMode ].Flags |= CHECKED;
  }
} /* InitGenSubs */

/*
 * Set up Menu's check marks to reflect Zoom Lens Configuration
 */
InitLensSubs()
{
  extern UBYTE  LensOn;

  ClearItems( LensSub, NUM_ITEMS( LensSub ) );

  LensSub[ LensOn ].Flags |= CHECKED;
} /* InitLensSubs */

/*
 * Set up Menu's check marks to reflect Screen Size Configuration
 */
InitSizeSubs()
{
  extern UBYTE  StandardSize;

  ClearItems( ScreenSizeSubs, NUM_ITEMS( ScreenSizeSubs ) );

  ScreenSizeSubs[ StandardSize ].Flags |= CHECKED;
} /* InitScreenSize */

/*
 * Set up Menu's check marks to reflect Screen Size Configuration
 */
InitBorderSubs()
{
  if (CurPict) {

    ClearItems( BorderSubs, NUM_ITEMS( BorderSubs ) );

    if (CurPict->Flags & BORDERLESS_PROJ)
      BorderSubs[ 1 ].Flags |= CHECKED;
    else
      BorderSubs[ 0 ].Flags |= CHECKED;
  }
} /* InitScreenSize */

/*
 * Set up Menu's check marks to reflect Screen Size Configuration
 */
InitOrbitSubs()
{
  if (CurPict) {

    ClearItems( OrbitModeSubs, NUM_ITEMS( OrbitModeSubs ) );

    if (CurPict->Flags & BORDERLESS_PROJ)
      OrbitModeSubs[ 1 ].Flags |= CHECKED;
    else
      OrbitModeSubs[ 0 ].Flags |= CHECKED;
  }
} /* InitOrbitSize */

/*
 * Clear a menu's check marks
 */
ClearItems( ClearMenu, NumItems )
  register struct MenuItem *ClearMenu;
  register int    NumItems;
{
  register SHORT i;

  for (i = 0; i < NumItems; i++) {
    ClearMenu->Flags &= ~CHECKED;
    ClearMenu++;
  }
} /* ClearItems */
