[comp.sources.amiga] v89i157: mandelvroom - mandelbrot explorer v2.0, Part06/09

page%swap@Sun.COM (Bob Page) (06/21/89)

Submitted-by: kevin@uts.amdahl.com (Kevin Clague)
Posting-number: Volume 89, Issue 157
Archive-name: graphics/mandelv20.6

# This is a shell archive.
# Remove anything above and including the cut line.
# Then run the rest of the file through 'sh'.
# Unpacked files will be owned by you and have default permissions.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: SHell ARchive
# Run the following text through 'sh' to create:
#	menu.c
#	menu1.c
# This is archive 6 of a 9-part kit.
# This archive created: Tue Jun 20 20:45:30 1989
echo "extracting menu.c"
sed 's/^X//' << \SHAR_EOF > menu.c
X/*
X * MandelVroom 2.0
X *
X * (c) Copyright 1987,1989  Kevin L. Clague, San Jose, CA
X *
X * All rights reserved.
X *
X * Permission is hereby granted to distribute this program's source
X * executable, and documentation for non-comercial purposes, so long as the
X * copyright notices are not removed from the sources, executable or
X * documentation.  This program may not be distributed for a profit without
X * the express written consent of the author Kevin L. Clague.
X *
X * This program is not in the public domain.
X *
X * Fred Fish is expressly granted permission to distribute this program's
X * source and executable as part of the "Fred Fish freely redistributable
X * Amiga software library."
X *
X * Permission is expressly granted for this program and it's source to be
X * distributed as part of the Amicus Amiga software disks, and the
X * First Amiga User Group's Hot Mix disks.
X *
X * contents: this file contains functions to decode Intuition Menu messages.
X */
X
X#include "mandp.h"
X
Xextern struct NewScreen NewScreen;
X
Xextern int Num_vp_Colors;
X
Xchar File[80] = "", Path[80] = "Mandelbrot:PROJECTS";
X
XHandleMenuPick( Msg )
X  register struct IntuiMessage *Msg;
X{
X  register struct MenuItem *Item;
X  register USHORT code = Msg->Code;
X
X  if (code == MENUNULL) {
X    return;
X  }
X
X  if (State == HELPSTATE) {
X    HelpMenuCmd(Msg);
X    State = IDLESTATE;
X    return;
X  } else {
X    State = IDLESTATE;
X  }
X
X  while (code != MENUNULL) {
X
X    switch ( MENUNUM( code ) ) {
X
X      case PROJECTMENU:
X           ProjectMenu( Msg, code );
X           break;
X
X      case DISPLAYMENU:
X           DisplayMenu( Msg, code );
X           break;
X
X      case CALCULATEMENU:
X           CalculateMenu( Msg, code );
X           break;
X
X      case SPECIALMENU:
X           SpecialMenu( Msg, code );
X           break;
X    }
X    Item = ItemAddress( (struct Menu *) &Menu[0], (long) code);
X    code = Item->NextSelect;
X  }
X  MaybeNewScreen();
X}
X
X/*
X * Decide what to do for Project menu's Items
X */
XProjectMenu(Msg,code)
X  struct IntuiMessage *Msg;
X  USHORT code;
X{
X  char Name[160];
X  char *p;
X
X  register struct Picture *Pict = CurPict;
X  register struct Picture *LoadPict;
X  register struct Window  *Window;
X  register SHORT  Type;
X
X  struct Picture *NewPict();
X
X  if (Pict) {
X    Window = Pict->Window;
X  } else {
X    Window = BackWind;
X  }
X
X  switch (ITEMNUM(code)) {
X
X    case NEWITEM:
X
X         switch( SUBNUM(code) ) {
X
X           case 0:
X                Type = MANDPICT;
X                break;
X
X           case 1:
X                Type = JULIAPICT;
X                break;
X         }
X
X         if ( Pict )
X           ClonePict( Pict, Type );
X         else
X           NewPreset( -1, Type );
X         break;
X
X    case CURITEM:
X         MakeCurProj( (struct Picture *) Msg->IDCMPWindow->UserData );
X         break;
X
X    case CLOSEPROJ:
X         CloseWinds( CurPict->Window );
X         break;
X
X    case HELPITEM:
X         SetWithPointer();
X         State = HELPSTATE;
X         break;
X
X    case SAVEPROJ:
X         strcpy( File, Pict->Title+2 );
X
X    case LOADITEM:
X    case SAVEILBM:
X
X         switch( ITEMNUM(code) ) {
X           case  LOADITEM: p = "Load Project"; break;
X           case  SAVEPROJ: p = "Save Project"; break;
X           case  SAVEILBM: p = "Save ILBM";    break;
X         }
X
X         if (get_fname(BackWind, screen, p, File, Path)) {
X
X           SetSleepyPointer();
X
X           strcpy(Name,Path);
X           if (Name[0] != '\0' && Name[strlen(Name)-1] != ':') {
X             strcat(Name,"/");
X           }
X           strcat(Name,File);
X
X           switch( ITEMNUM(code) ) {
X
X             case  LOADITEM:
X                   (void) LoadPicture( Name );
X                   RefreshContours();
X
X                   RefreshContours();
X                   CalcHist(CurPict);
X                   ShowStats(CurPict);
X                   SetDirGadget(CurPict);
X                   ModifySpeedPot();
X                   break;
X
X             case  SAVEPROJ:
X
X                   PauseChild( Pict );
X
X                   strncpy( Pict->Title+2, File, sizeof(Pict->Title)-3);
X                   (void) SaveCounts(Name,Pict);
X
X                   AwakenChild( Pict );
X                   break;
X
X             case  SAVEILBM:
X                   SaveILBM(Name, Pict->Crngs, 4);
X                   break;
X           }
X           SetNormPointer();
X         }
X
X    case CANCELITEM:
X         State = IDLESTATE;
X         break;
X
X    case QUITITEM:
X         if (DispErrMsg("Really quit?",1)) {
X
X           QuitScreen = TRUE;
X         }
X    }
X} /* ProjectMenu */
X
X/*
X * Decide what to do for Display menu's Items
X */
XDisplayMenu(Msg,code)
X  struct IntuiMessage *Msg;
X  USHORT code;
X{
X  double gapy,gapx;
X  extern UBYTE  ScreenSizeChanged;
X  extern UBYTE  StandardSize;
X  extern UBYTE  NewDepth;
X  extern USHORT NewViewModes;
X  extern struct MenuItem ScreenSizeSubs[];
X  extern struct MenuItem BorderSubs[];
X
X  switch (ITEMNUM(code)) {
X
X    case COLORITEM:
X         OpenPalWind();
X         break;
X
X    case CYCLEITEM:
X         OpenCycWind();
X         break;
X
X    case CONTOURITEM:
X         OpenContWind();
X         break;
X
X    case HISTOGRAMITEM:
X         OpenHistWind();
X         break;
X
X    case AUTOCNTRITEM:
X         AutoContour(CurPict,SUBNUM(code));
X         break;
X
X    case DEPTHITEM:
X         NewDepth = SUBNUM(code) + 1;
X
X         if (CurPict)
X           CurPict->Depth = NewDepth;
X         break;
X
X    case VIEWMODEITEM:
X         EditScreenViewModes(code);
X
X         if (CurPict) {
X           CurPict->ViewModes = NewViewModes;
X           if (NewViewModes & HIRES && CurPict->Depth > 4) {
X             CurPict->Depth = 4;
X           }
X         }
X         break;
X
X    case SCREENITEM:
X         StandardSize = (ScreenSizeSubs[0].Flags & CHECKED) == CHECKED;
X         ScreenSizeChanged = 1;
X         break;
X
X    case BORDERITEM:
X         if (CurPict) {
X           int Changed;
X
X           Changed = 0;
X
X           if ((BorderSubs[0].Flags & CHECKED) == CHECKED) {
X
X             /* Make it bordered */
X
X             if (CurPict->Flags & BORDERLESS_PROJ &&
X                 CurPict->CountX+LEFTMARG+RIGHTMARG <= screen->Width &&
X                 CurPict->CountY+TOPMARG+BOTMARG    <= screen->Height) {
X
X               CurPict->Flags &= ~BORDERLESS_PROJ;
X               Changed = 1;
X             }
X           } else {
X
X             if (!(CurPict->Flags & BORDERLESS_PROJ)) {
X               CurPict->Flags |=  BORDERLESS_PROJ;
X               Changed = 1;
X             }
X           }
X
X           InitBorderSubs();
X
X           if (Changed) {
X
X             if ( CurPict->cTask ) {
X
X               KillReColor( CurPict );
X             }
X
X             PauseChild( CurPict );
X
X             ClosePicture(CurPict);
X             OpenPicture(CurPict);
X
X             if (CurPict->Counts)
X               ReColor(CurPict);
X
X             AwakenChild(CurPict);
X           }
X         }
X         break;
X    }
X} /* DisplayMenu */
X
X/*
X * Decide what to do for Calculate Menu's Items
X */
XCalculateMenu(Msg,code)
X  struct IntuiMessage *Msg;
X  USHORT code;
X{
X  extern struct Picture *ZoomedPict;
X  extern struct MenuItem LensSub[];
X
X  double gapy,gapx;
X  LONG   Temp;
X  extern UBYTE  LensOn;
X
X  switch (ITEMNUM(code)) {
X
X    case GENERATORITEM:   /* generator type */
X         if (CurPict)
X           CurPict->MathMode = SUBNUM(code);
X         break;
X
X    case ZOOMITEM:
X         CurPict->ZoomType = SUBNUM(code);
X         DoZoom( Msg );
X         break;
X
X    case SCROLLITEM:
X         ScrollPictCmd(Msg);
X         break;
X
X    case LENSITEM:
X         LensOn = (LensSub[0].Flags & CHECKED) == CHECKED;
X         break;
X
X    case GENERATEITEM:
X         GenerateCmd(Msg);
X         break;
X
X    case COUNTITEM:
X
X         Temp = CurPict->MaxIteration;
X
X         if ( GetInt( "Max Iteration", &Temp) == 1 ) {
X
X           if (Temp > 1023) Temp = 1023;
X
X           CurPict->MaxIteration = Temp;
X         }
X         break;
X
X    case STATSITEM:
X
X#ifndef DEVELOPMENT
X
X         OpenStatsWind( CurPict );
X#else
X         { char Name[80];
X           char VD0[80];
X
X           strcpy( VD0, "ram:");
X
X           if (get_fname(BackWind, screen, "Preset", File, VD0)) {
X
X             strcpy(Name,VD0);
X
X             if (Name[strlen(Name)-1] != ':') {
X               strcat(Name,"/");
X             }
X             strcat(Name,File);
X
X             SavePreset( Name, CurPict );
X           }
X         }
X#endif
X         break;
X  }
X} /* CalculateMenu */
X
XDoZoom( Msg )
X  struct IntuiMessage *Msg;
X{
X  register struct Picture *Pict = CurPict;
X
X  if (Pict == NULL)
X    return;
X
X  CloseZoomBox( Pict );
X
X  ZoomedPict = Pict;   /* Save this so we can use it later */
X
X  switch ( SUBNUM(Msg->Code)) {
X
X    case ZOOMIN:
X         ZoomInCmd(Msg);
X         break;
X
X    case ZOOMOUT:
X         ZoomOutCmd(Msg);
X         break;
X
X    case ZOOMOFF:
X         ClearZoomBox( ZoomedPict );
X         break;
X
X    case ZOOMJULIA:
X         SetJuliaCmd(Msg);
X         break;
X  }
X}
X
XUSHORT NewViewModes;
XUBYTE  NewDepth = 5;
X
X/*
X * Modify the NewScreens ViewModes to match the menu
X */
XEditScreenViewModes(code)
X  USHORT code;
X{
X  switch (SUBNUM(code))
X    {
X    case HIRESSUB:
X         NewViewModes ^= HIRES;
X         break;
X
X    case INTERLACESUB:
X         NewViewModes ^= INTERLACE;
X         break;
X
X    case HALFBRITESUB:
X         NewViewModes ^= EXTRA_HALFBRITE;
X         break;
X    }
X} /* EditScreenViewMode */
X
X/*
X * Decide what to do for Special Menu's Items
X */
XSpecialMenu(Msg, code)
X  struct IntuiMessage *Msg;
X  USHORT code;
X{
X  extern SHORT MaxOrbit;
X
X  LONG   Temp;
X  int    rc;
X
X  rc = SUCCESSFUL;
X
X  switch (ITEMNUM(code)) {
X
X    case ORBITITEM:
X         OpenOrbitWind();
X         break;
X
X    case MAXORBITEM:
X         Temp = MaxOrbit;
X
X         if ( GetInt( "Max Iteration", &Temp) == 1 ) {
X
X           if (Temp > 1023) Temp = 1023;
X
X           MaxOrbit = Temp;
X         }
X         break;
X
X    case ORBITMATHITEM:
X         ConfOrbMode( SUBNUM(code) );
X         break;
X
X    case PRESETITEM:
X         rc = SetPreset( SUBNUM( code ) );
X
X         if (rc == UNSUCCESSFUL)
X           DispErrMsg("Can't open preset. Out of RAM",0);
X         else
X         if (CurPict->Flags & NO_RAM_GENERATE)
X           rc = UNSUCCESSFUL;
X
X         RefreshContours();
X  }
X  return( rc );
X} /* SpecialMenu */
X
XLoadPicture( Name )
X  char Name[];
X{
X  struct Picture *LoadPict;
X
X  LoadPict = NewPict( MANDPICT );
X
X  if ( LoadPict ) {
X    if ( LoadCounts( Name, LoadPict ) == UNSUCCESSFUL ) {
X
X      ThrowPict( LoadPict );
X      GetCurPict();
X      return(UNSUCCESSFUL);
X
X    }
X  } else {
X    ErrNoPict();
X    return(UNSUCCESSFUL);
X  }
X  return(SUCCESSFUL);
X}
X
Xchar *
XExtractName( FullPath )
X  char *FullPath;
X{
X  char *File,*rindex(),*p;
X
X  File = rindex( FullPath, '/' );
X
X  if (File == NULL)
X
X    File = rindex( FullPath, ':' );
X
X  if (File)
X    File += 1;
X
X  /* Save a copy of it */
X
X  strcpy( Path, FullPath );
X
X  p = &Path[ File - FullPath - 1 ];
X
X  if (*p == '/') *p = '\0';
X  if (*p == ':') *(p+1) = '\0';
X
X  return( File );
X}
X
SHAR_EOF
echo "extracting menu1.c"
sed 's/^X//' << \SHAR_EOF > menu1.c
X/*
X * MandelVroom 2.0
X *
X * (c) Copyright 1987,1989  Kevin L. Clague, San Jose, CA
X *
X * All rights reserved.
X *
X * Permission is hereby granted to distribute this program's source
X * executable, and documentation for non-comercial purposes, so long as the
X * copyright notices are not removed from the sources, executable or
X * documentation.  This program may not be distributed for a profit without
X * the express written consent of the author Kevin L. Clague.
X *
X * This program is not in the public domain.
X *
X * Fred Fish is expressly granted permission to distribute this program's
X * source and executable as part of the "Fred Fish freely redistributable
X * Amiga software library."
X *
X * Permission is expressly granted for this program and it's source to be
X * distributed as part of the Amicus Amiga software disks, and the
X * First Amiga User Group's Hot Mix disks.
X *
X * contents: this file contains the data definitions for MandelVroom's
X * menus.
X */
X
X#include "mandp.h"
X
XUBYTE MandStr[]  = { "MAND"  };
XUBYTE JuliaStr[] = { "JULIA" };
X
Xstruct IntuiText PictShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    0,
X    2,
X    NULL,
X    MandStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    0,
X    2,
X    NULL,
X    JuliaStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText PictSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    1,
X    3,
X    NULL,
X    MandStr,
X    &PictShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    1,
X    3,
X    NULL,
X    JuliaStr,
X    &PictShadow[1]
X    }
X  };
X
Xstruct MenuItem PictSubs[] =
X  {
X    {
X    (struct MenuItem *) &PictSubs[1],
X    -42,
X    0,
X    42,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    NULL,
X    (APTR) &PictSubsIntui[0],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X    -42,
X    12,
X    42,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    NULL,
X    (APTR) &PictSubsIntui[1],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE AboutStr1[]  = { "           MandelVroom" };
XUBYTE AboutStr2[]  = { "The Multitasking Mandelbrot Program" };
X
XUBYTE AboutStr3[]  = { "   Only Amiga Makes It Possible!" };
X
XUBYTE AboutStr4[]  = { "        Copyright 1987,1989" };
XUBYTE AboutStr5[]  = { "          Kevin L. Clague" };
X
Xstruct IntuiText AboutShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    0,
X    NULL,
X    AboutStr1,
X    &AboutShadow[1]
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    10,
X    NULL,
X    AboutStr2,
X    &AboutShadow[2]
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    20,
X    NULL,
X    AboutStr3,
X    &AboutShadow[3]
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    34,
X    NULL,
X    AboutStr4,
X    &AboutShadow[4]
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    44,
X    NULL,
X    AboutStr5,
X    NULL
X    },
X  };
X
Xstruct IntuiText AboutSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    1,
X    NULL,
X    AboutStr1,
X    &AboutSubsIntui[1]
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    11,
X    NULL,
X    AboutStr2,
X    &AboutSubsIntui[2]
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    21,
X    NULL,
X    AboutStr3,
X    &AboutSubsIntui[3]
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    35,
X    NULL,
X    AboutStr4,
X    &AboutSubsIntui[4]
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    45,
X    NULL,
X    AboutStr5,
X    &AboutShadow[0]
X    },
X  };
X
Xstruct MenuItem AboutSubs =
X    {
X    NULL,
X    -44,
X    0,
X    300,
X    53,
X    ITEMTEXT|ITEMENABLED|HIGHNONE,
X    NULL,
X    (APTR) &AboutSubsIntui[0],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    };
X
XUBYTE NewStr[]    = { "New"       };
XUBYTE CurStr[]    = { "Current"   };
XUBYTE LoadStr[]   = { "Load"      };
XUBYTE SavePStr[]  = { "Save"      };
XUBYTE ClosePStr[] = { "Close"     };
XUBYTE SaveIStr[]  = { "Save ILBM" };
XUBYTE HelpStr[]   = { "Help"      };
XUBYTE CancelStr[] = { "Cancel"    };
XUBYTE QuitStr[]   = { "Quit"      };
XUBYTE AboutStr[]  = { "About"     };
X
Xstruct IntuiText NewShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    NewStr,
X    NULL
X    };
X
Xstruct IntuiText CurShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    CurStr,
X    NULL
X    };
X
Xstruct IntuiText LoadShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    LoadStr,
X    NULL
X    };
X
Xstruct IntuiText SaveProjShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    SavePStr,
X    NULL
X    };
X
Xstruct IntuiText CloseShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    ClosePStr,
X    NULL
X    };
X
Xstruct IntuiText SaveILBMShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    SaveIStr,
X    NULL
X    };
X
Xstruct IntuiText HelpShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    HelpStr,
X    NULL
X    };
X
Xstruct IntuiText CancelShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    CancelStr,
X    NULL
X    };
X
Xstruct IntuiText QuitShadow =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    QuitStr,
X    NULL
X    };
X
Xstruct IntuiText AboutShadowII =
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    5,
X    2,
X    NULL,
X    AboutStr,
X    NULL
X    };
X
Xstruct IntuiText ProjectItemsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    NewStr,
X    &NewShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    CurStr,
X    &CurShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    LoadStr,
X    &LoadShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    SavePStr,
X    &SaveProjShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    ClosePStr,
X    &CloseShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    SaveIStr,
X    &SaveILBMShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    HelpStr,
X    &HelpShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    CancelStr,
X    &CancelShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    QuitStr,
X    &QuitShadow
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    6,
X    3,
X    NULL,
X    AboutStr,
X    &AboutShadowII
X    },
X  };
X
Xstruct MenuItem ProjectItems[] =
X  {
X    {  /* New */
X    (struct MenuItem *) &ProjectItems[1],
X    0,
X    0,
X    116,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[0],
X    NULL,
X    0,
X    (struct MenuItem *) &PictSubs[0],
X    NULL
X    },
X
X    {  /* Current */
X    (struct MenuItem *) &ProjectItems[2],
X    0,
X    14,
X    116,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[1],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X
X    {  /* Load */
X    (struct MenuItem *) &ProjectItems[3],
X    0,
X    28,
X    116,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[2],
X    NULL,
X    'L',
X    NULL,
X    NULL
X    },
X
X    {  /* Save */
X    (struct MenuItem *) &ProjectItems[4],
X    0,
X    42,
X    116,
X    14,
X    ITEMTEXT|ITEMENABLED|COMMSEQ|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[3],
X    NULL,
X    'S',
X    NULL,
X    NULL
X    },
X
X    {  /* Close */
X    (struct MenuItem *) &ProjectItems[5],
X    0,
X    56,
X    116,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[4],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X
X    { /* Save ILBM */
X    (struct MenuItem *) &ProjectItems[6],
X    0,
X    70,
X    116,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[5],
X    NULL,
X    'I',
X    NULL,
X    NULL
X    },
X
X    { /* Help */
X    (struct MenuItem *) &ProjectItems[7],
X    0,
X    84,
X    116,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[6],
X    NULL,
X    'H',
X    NULL,
X    NULL
X    },
X
X    {  /* Cancel */
X    (struct MenuItem *) &ProjectItems[8],
X    0,
X    98,
X    116,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[7],
X    NULL,
X    'Z',
X    NULL,
X    NULL
X    },
X
X    {  /* quit */
X    (struct MenuItem *) &ProjectItems[9],
X    0,
X    112,
X    116,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ProjectItemsIntui[8],
X    NULL,
X    'Q',
X    NULL,
X    NULL,
X    },
X
X    {  /* About */
X    NULL,
X    0,
X    126,
X    116,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHNONE,
X    0,
X    (APTR) &ProjectItemsIntui[9],
X    NULL,
X    0,
X    (struct MenuItem *) &AboutSubs,
X    NULL
X    },
X  };
X
XUBYTE TypeIStr[]  = { " I"  };
XUBYTE TypeIIStr[] = { "II" };
X
Xstruct IntuiText AutoShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    TypeIStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    TypeIIStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText AutoSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    TypeIStr,
X    &AutoShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    TypeIIStr,
X    &AutoShadow[1]
X    }
X  };
X
Xstruct MenuItem AutoSub[] =
X  {
X    {
X    (struct MenuItem *) &AutoSub[1],
X   -28,
X    0,
X    28,
X    12,
X    ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0000,
X    (APTR) &AutoSubsIntui[0],
X    NULL,
X    0,
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -28,
X    12,
X    28,
X    12,
X    ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0000,
X    (APTR) &AutoSubsIntui[1],
X    NULL,
X    0,
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE HiResStr[]   = { "High Res"  };
XUBYTE LaceStr[]    = { "Interlace" };
XUBYTE HBStr[]      = { "HalfBrite" };
X
Xstruct IntuiText ViewModesShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    HiResStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    LaceStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    HBStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText ViewModeSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    HiResStr,
X    &ViewModesShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    LaceStr,
X    &ViewModesShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    HBStr,
X    &ViewModesShadow[2]
X    }
X  };
X
Xstruct MenuItem ViewModeSubs[] =
X  {
X    {
X    (struct MenuItem *) &ViewModeSubs[1],
X   -88,
X    0,
X    88,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ViewModeSubsIntui[0],
X    NULL,
X    '\0x1a',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &ViewModeSubs[2],
X   -88,
X    12,
X    88,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ViewModeSubsIntui[1],
X    NULL,
X    '\0x1a',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -88,
X    24,
X    88,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ViewModeSubsIntui[2],
X    NULL,
X    '\0x1a',
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE StdStr[]    = { "Standard"  };
XUBYTE WBStr[]     = { "Workbench" };
X
Xstruct IntuiText ScreenSizeShadow[] =
X  {
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    16,
X    2,
X    NULL,
X    StdStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    0,
X    JAM1,
X    16,
X    2,
X    NULL,
X    WBStr,
X    NULL
X    },
X  };
X
Xstruct IntuiText ScreenSizeSubsIntui[] =
X  {
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    17,
X    3,
X    NULL,
X    StdStr,
X    &ScreenSizeShadow[0],
X    },
X
X    {
X    SHADOWPEN,
X    0,
X    JAM1,
X    17,
X    3,
X    NULL,
X    WBStr,
X    &ScreenSizeShadow[1],
X    },
X  };
X
Xstruct MenuItem ScreenSizeSubs[] =
X  {
X    {
X    (struct MenuItem *) &ScreenSizeSubs[1],
X   -88,
X    0,
X    88,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0003-0x0001,
X    (APTR) &ScreenSizeSubsIntui[0],
X    NULL,
X    '\0x1a',
X    NULL,
X    NULL
X    },
X
X    {
X    NULL,
X   -88,
X    12,
X    88,
X    12,
X    CHECKED|CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0003-0x0002,
X    (APTR) &ScreenSizeSubsIntui[1],
X    NULL,
X    '\0x1a',
X    NULL,
X    NULL
X    },
X  };
X
XUBYTE TwoStr[]   = { " 2" };
XUBYTE FourStr[]  = { " 4" };
XUBYTE EightStr[] = { " 8" };
XUBYTE _16Str[]   = { "16" };
XUBYTE _32Str[]   = { "32" };
XUBYTE _64Str[]   = { "64" };
X
Xstruct IntuiText DepthShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    TwoStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    FourStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    EightStr,
X    NULL
X    },
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    _16Str,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    _32Str,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    _64Str,
X    NULL
X    }
X  };
X
Xstruct IntuiText DepthSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    TwoStr,
X    &DepthShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    FourStr,
X    &DepthShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    EightStr,
X    &DepthShadow[2]
X    },
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    _16Str,
X    &DepthShadow[3]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    _32Str,
X    &DepthShadow[4]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    _64Str,
X    &DepthShadow[5]
X    }
X  };
X
Xstruct MenuItem DepthSubs[] =
X  {
X    {
X    (struct MenuItem *) &DepthSubs[1],
X    -68,
X    0,
X    68,
X    12,
X    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0001,
X    (APTR) &DepthSubsIntui[0],
X    NULL,
X    '1',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &DepthSubs[2],
X    -68,
X    12,
X    68,
X    12,
X    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0002,
X    (APTR) &DepthSubsIntui[1],
X    NULL,
X    '2',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &DepthSubs[3],
X    -68,
X    24,
X    68,
X    12,
X    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0004,
X    (APTR) &DepthSubsIntui[2],
X    NULL,
X    '3',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &DepthSubs[4],
X    -68,
X    36,
X    68,
X    12,
X    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0008,
X    (APTR) &DepthSubsIntui[3],
X    NULL,
X    '4',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &DepthSubs[5],
X    -68,
X    48,
X    68,
X    12,
X    CHECKIT|CHECKED|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0010,
X    (APTR) &DepthSubsIntui[4],
X    NULL,
X    '5',
X    NULL,
X    NULL
X    },
X
X    {
X    NULL,
X    -68,
X    60,
X    68,
X    12,
X    CHECKIT|ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0x003F-0x0020,
X    (APTR) &DepthSubsIntui[5],
X    NULL,
X    '6',
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE OnStr[]  = { "On"  };
XUBYTE OffStr[] = { "Off" };
X
Xstruct IntuiText OnOffShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    OnStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    OffStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText OnOffIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    OnStr,
X    &OnOffShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    OffStr,
X    &OnOffShadow[1]
X    }
X  };
X
Xstruct MenuItem BorderSubs[] =
X  {
X    {
X    (struct MenuItem *) &BorderSubs[1],
X   -40,
X    0,
X    40,
X    12,
X    CHECKIT | ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0003-0x001,
X    (APTR) &OnOffIntui[1],
X    NULL,
X    0,
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -40,
X    12,
X    40,
X    12,
X    CHECKIT | CHECKED | ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0003-0x002,
X    (APTR) &OnOffIntui[0],
X    NULL,
X    0,
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE ColorStr[]  = { "Colors"      };
XUBYTE CycleStr[]  = { "Cycling"     };
XUBYTE CntrStr[]   = { "Contours"    };
XUBYTE AutoStr[]   = { "AutoContour" };
XUBYTE HistStr[]   = { "Histogram"   };
XUBYTE ViewStr[]   = { "View Modes"  };
XUBYTE NumStr[]    = { "Num Colors"  };
XUBYTE ScreenStr[] = { "Screen Size" };
XUBYTE BorderStr[] = { "Borderless"  };
X
Xstruct IntuiText DisplayShadow[] =
X  {
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    ColorStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    CycleStr,
X    NULL
X    },
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    CntrStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    AutoStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    HistStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    BorderStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    NumStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    ViewStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    ScreenStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    5,
X    2,
X    NULL,
X    BorderStr,
X    NULL
X    },
X  };
X
Xstruct IntuiText DisplayItemsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    ColorStr,
X    &DisplayShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    CycleStr,
X    &DisplayShadow[1]
X    },
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    CntrStr,
X    &DisplayShadow[2]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    AutoStr,
X    &DisplayShadow[3]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    HistStr,
X    &DisplayShadow[4]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    BorderStr,
X    &DisplayShadow[5]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    NumStr,
X    &DisplayShadow[6]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    ViewStr,
X    &DisplayShadow[7]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    6,
X    3,
X    NULL,
X    ScreenStr,
X    &DisplayShadow[8]
X    },
X  };
X
Xstruct MenuItem DisplayItems[] =
X  {
X    {  /* Colors */
X    (struct MenuItem *) &DisplayItems[1],
X    0,
X    0,
X    108,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[0],
X    NULL,
X    'C',
X    NULL,
X    NULL
X    },
X
X    { /* Cycling */
X    (struct MenuItem *) &DisplayItems[2],
X    0,
X    14,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[1],
X    NULL,
X    '\t',
X    NULL,
X    NULL
X    },
X
X    {  /* Contours */
X    (struct MenuItem *) &DisplayItems[3],
X    0,
X    28,
X    108,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[2],
X    NULL,
X    'K',
X    NULL,
X    NULL
X    },
X
X    {  /* AutoContour */
X    (struct MenuItem *) &DisplayItems[4],
X    0,
X    42,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[3],
X    NULL,
X    ' ',
X    (struct MenuItem *) &AutoSub,
X    NULL
X    },
X
X    {  /* Histogram */
X    (struct MenuItem *) &DisplayItems[5],
X    0,
X    56,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[4],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X
X    {  /* Border */
X    (struct MenuItem *) &DisplayItems[6],
X    0,
X    70,
X    108,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[5],
X    NULL,
X    '\0x0',
X    (struct MenuItem *) &BorderSubs,
X    NULL
X    },
X
X    { /* Depth */
X    (struct MenuItem *) &DisplayItems[7],
X    0,
X    84,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[6],
X    NULL,
X    '\0x0',
X    (struct MenuItem *) &DepthSubs,
X    NULL
X    },
X
X    {  /* ViewModes */
X    (struct MenuItem *) &DisplayItems[8],
X    0,
X    98,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[7],
X    NULL,
X    '\0x0',
X    (struct MenuItem *) &ViewModeSubs,
X    NULL
X    },
X
X    {  /* Screen Size */
X    NULL,
X    0,
X    112,
X    108,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &DisplayItemsIntui[8],
X    NULL,
X    '\0x0',
X    (struct MenuItem *) &ScreenSizeSubs,
X    NULL
X    },
X  };
X
XUBYTE InStr[]     = { "In"     };
XUBYTE OutStr[]    = { "Out"    };
XUBYTE CloseStr[]  = { "Close"  };
XUBYTE JuliaPStr[] = { "Julia"  };
X
Xstruct IntuiText ZoomInShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    InStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    OutStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    CloseStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    6,
X    NULL,
X    JuliaPStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText ZoomInSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    InStr,
X    &ZoomInShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    OutStr,
X    &ZoomInShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    CloseStr,
X    &ZoomInShadow[2]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    7,
X    NULL,
X    JuliaPStr,
X    &ZoomInShadow[3]
X    }
X  };
X
Xstruct MenuItem ZoomInSubs[] =
X  {
X    {
X    (struct MenuItem *) &ZoomInSubs[1],
X   -48,
X    0,
X    48,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ZoomInSubsIntui[0],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &ZoomInSubs[2],
X   -48,
X    12,
X    48,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ZoomInSubsIntui[1],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &ZoomInSubs[3],
X   -48,
X    24,
X    48,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ZoomInSubsIntui[2],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -48,
X    36,
X    48,
X    16,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &ZoomInSubsIntui[3],
X    NULL,
X    '\0',
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE StartStr[] = { "Start" };
XUBYTE StopStr[]  = { "Stop"  };
XUBYTE ContStr[]  = { "Resume" };
X
Xstruct IntuiText GenItShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    StartStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    StopStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    ContStr,
X    NULL
X    }
X  };
X
Xstruct IntuiText GenItSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    StartStr,
X    &GenItShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    StopStr,
X    &GenItShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    ContStr,
X    &GenItShadow[2]
X    },
X  };
X
Xstruct MenuItem GenItSubs[] =
X  {
X    {
X    (struct MenuItem *) &GenItSubs[1],
X   -56,
X    0,
X    56,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    NULL,
X    (APTR) &GenItSubsIntui[0],
X    NULL,
X    'G',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &GenItSubs[2],
X   -56,
X    12,
X    56,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    NULL,
X    (APTR) &GenItSubsIntui[1],
X    NULL,
X    'S',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -56,
X    24,
X    56,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    NULL,
X    (APTR) &GenItSubsIntui[2],
X    NULL,
X    'J',
X    NULL,
X    NULL
X    },
X  };
X
XUBYTE Int68000[]  = { "Int68000" };
XUBYTE FFPStr[]    = { "FFP"      };
XUBYTE IEEEStr[]   = { "IEEE"     };
XUBYTE Int68020[]  = { "Int68020" };
XUBYTE IEEE8Str[]  = { "020/881"  };
X
Xstruct IntuiText GenerateShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    Int68000,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    FFPStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    IEEEStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    Int68020,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    IEEE8Str,
X    NULL
X    }
X  };
X
Xstruct IntuiText GenerateSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    Int68000,
X    &GenerateShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    FFPStr,
X    &GenerateShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    IEEEStr,
X    &GenerateShadow[2]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    Int68020,
X    &GenerateShadow[3]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    IEEE8Str,
X    &GenerateShadow[4]
X    }
X  };
X
Xstruct MenuItem GenerateSubs[] =
X  {
X    {
X    (struct MenuItem *) &GenerateSubs[1],
X   -120,
X    0,
X    120,
X    12,
X    CHECKIT|CHECKED|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0001f-0x0001,
X    (APTR) &GenerateSubsIntui[0],
X    NULL,
X    'I',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &GenerateSubs[2],
X   -120,
X    12,
X    120,
X    12,
X    CHECKIT|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0001f-0x0002,
X    (APTR) &GenerateSubsIntui[1],
X    NULL,
X    'F',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &GenerateSubs[3],
X   -120,
X    24,
X    120,
X    12,
X    CHECKIT|COMMSEQ|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0001f-0x0004,
X    (APTR) &GenerateSubsIntui[2],
X    NULL,
X    'E',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &GenerateSubs[4],
X   -120,
X    36,
X    120,
X    12,
X    CHECKIT|ITEMTEXT|HIGHBOX,
X    0x0001f-0x0008,
X    (APTR) &GenerateSubsIntui[3],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -120,
X    48,
X    120,
X    12,
X    CHECKIT|ITEMTEXT|HIGHBOX,
X    0x0001f-0x0001,
X    (APTR) &GenerateSubsIntui[4],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X  };
X
Xstruct MenuItem LensSub[] =
X  {
X    {
X    (struct MenuItem *) &LensSub[1],
X   -40,
X    0,
X    40,
X    12,
X    CHECKIT | CHECKED | ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0003-0x001,
X    (APTR) &OnOffIntui[0],
X    NULL,
X    0,
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -40,
X    12,
X    40,
X    12,
X    CHECKIT | ITEMTEXT | ITEMENABLED | HIGHBOX,
X    0x0003-0x002,
X    (APTR) &OnOffIntui[1],
X    NULL,
X    0,
X    NULL,
X    NULL
X    }
X  };
X
XUBYTE GenStr[]    = { "Generate"     };
X
Xstruct IntuiText ScrollShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    StartStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    GenStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    CancelStr,
X    NULL
X    },
X  };
X
Xstruct IntuiText ScrollSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    StartStr,
X    &ScrollShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    GenStr,
X    &ScrollShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    CancelStr,
X    &ScrollShadow[2]
X    },
X  };
X
Xstruct MenuItem ScrollSubs[] =
X  {
X    {
X    (struct MenuItem *) &ScrollSubs[1],
X   -80,
X    0,
X    80,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0000,
X    (APTR) &ScrollSubsIntui[0],
X    NULL,
X    'I',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &ScrollSubs[2],
X   -80,
X    12,
X    80,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0000,
X    (APTR) &ScrollSubsIntui[1],
X    NULL,
X    'F',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -80,
X    24,
X    80,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0000,
X    (APTR) &ScrollSubsIntui[2],
X    NULL,
X    'E',
X    NULL,
X    NULL
X    },
X  };
X
XUBYTE ZoomStr[]   = { "Zoom"         };
XUBYTE ScrollStr[] = { "Pan"          };
XUBYTE LensStr[]   = { "Magnifier"    };
XUBYTE DataStr[]   = { "Math Mode"    };
XUBYTE MaxStr[]    = { "MaxIteration" };
XUBYTE StatStr[]   = { "Statistics"   };
X
Xstruct IntuiText CalculateShadow[] =
X  {
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    GenStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    ZoomStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    ScrollStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    LensStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    DataStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    MaxStr,
X    NULL,
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    StatStr,
X    NULL,
X    },
X  };
X
Xstruct IntuiText CalculateItemsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    GenStr,
X    &CalculateShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    ZoomStr,
X    &CalculateShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    ScrollStr,
X    &CalculateShadow[2]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    LensStr,
X    &CalculateShadow[3]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    DataStr,
X    &CalculateShadow[4]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    MaxStr,
X    &CalculateShadow[5]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    StatStr,
X    &CalculateShadow[6]
X    },
X  };
X
Xstruct MenuItem CalculateItems[] =
X  {
X
X    {  /* Generate */
X    (struct MenuItem *) &CalculateItems[1],
X    0,
X    0,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[0],
X    NULL,
X    '\0',
X    (struct MenuItem *) &GenItSubs,
X    NULL
X    },
X
X    {  /* Zoom */
X    (struct MenuItem *) &CalculateItems[2],
X    0,
X    14,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[1],
X    NULL,
X    '\0',
X    (struct MenuItem *) &ZoomInSubs,
X    NULL
X    },
X
X    {  /* Scroll */
X    (struct MenuItem *) &CalculateItems[3],
X    0,
X    28,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[2],
X    NULL,
X    '\0',
X    (struct MenuItem *) ScrollSubs,
X    NULL
X    },
X
X    {  /* Lens */
X    (struct MenuItem *) &CalculateItems[4],
X    0,
X    42,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[3],
X    NULL,
X    '\0',
X    (struct MenuItem *) LensSub,
X    NULL
X    },
X
X    {  /* Generator */
X    (struct MenuItem *) &CalculateItems[5],
X    0,
X    56,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[4],
X    NULL,
X    '\0x0',
X    (struct MenuItem *) &GenerateSubs,
X    NULL
X    },
X
X    { /* MaxI */
X    (struct MenuItem *) &CalculateItems[6],
X    0,
X    70,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[5],
X    NULL,
X    '\0x0',
X    NULL,
X    NULL
X    },
X
X    { /* Statistics */
X    (struct MenuItem *) NULL,
X    0,
X    84,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &CalculateItemsIntui[6],
X    NULL,
X    '\0x0',
X    NULL,
X    NULL
X    },
X  };
X
XUBYTE BigStr[]    = { "Big Brot"      };
XUBYTE HeyStr[]    = { "Hey Baby"      };
XUBYTE DragonStr[] = { "Aug 85 Cover"  };
XUBYTE SpineStr[]  = { "Sea Horse"     };
XUBYTE VertStr[]   = { "Golden Dragon" };
XUBYTE BStr[]      = { "Dual Spiral"   };
XUBYTE SeaStr[]    = { "HalfBrite"     };
XUBYTE ChainStr[]  = { "Valley Gal"    };
XUBYTE LinkStr[]   = { "Dragon Julia"  };
XUBYTE BabyStr[]   = { "Halo"          };
X
Xstruct IntuiText PresetShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    BigStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    HeyStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    DragonStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    SpineStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    VertStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    BStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    SeaStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    ChainStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    LinkStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    BabyStr,
X    NULL
X    },
X  };
X
Xstruct IntuiText PresetIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    BigStr,
X    &PresetShadow[0],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    HeyStr,
X    &PresetShadow[1],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    DragonStr,
X    &PresetShadow[2],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    SpineStr,
X    &PresetShadow[3],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    VertStr,
X    &PresetShadow[4],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    BStr,
X    &PresetShadow[5],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    SeaStr,
X    &PresetShadow[6],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    ChainStr,
X    &PresetShadow[7],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    LinkStr,
X    &PresetShadow[8],
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    BabyStr,
X    &PresetShadow[9],
X    },
X  };
X
Xstruct MenuItem PresetSubs[] =
X  {
X    {
X    (struct MenuItem *) &PresetSubs[1],
X    -110,
X    0,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[0],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[2],
X    -110,
X    14,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[1],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[3],
X    -110,
X    28,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[2],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[4],
X    -110,
X    42,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[3],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[5],
X    -110,
X    56,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[4],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[6],
X    -110,
X    70,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[5],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[7],
X    -110,
X    84,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[6],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[8],
X    -110,
X    98,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[7],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &PresetSubs[9],
X    -110,
X    112,
X    110,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[8],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X    -110,
X    126,
X    110,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &PresetIntui[9],
X    NULL,
X    'p',
X    NULL,
X    NULL
X    },
X  };
X
Xstruct IntuiText OrbitModeShadow[] =
X  {
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    Int68000,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    FFPStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    16,
X    2,
X    NULL,
X    IEEEStr,
X    NULL
X    },
X  };
X
Xstruct IntuiText OrbitModeSubsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    Int68000,
X    &OrbitModeShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    FFPStr,
X    &OrbitModeShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    17,
X    3,
X    NULL,
X    IEEEStr,
X    &OrbitModeShadow[2]
X    },
X  };
X
Xstruct MenuItem OrbitModeSubs[] =
X  {
X    {
X    (struct MenuItem *) &OrbitModeSubs[1],
X   -80,
X    0,
X    80,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0007-0x0001,
X    (APTR) &OrbitModeSubsIntui[0],
X    NULL,
X    'I',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) &OrbitModeSubs[2],
X   -80,
X    12,
X    80,
X    12,
X    CHECKIT|CHECKED|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0007-0x0002,
X    (APTR) &OrbitModeSubsIntui[1],
X    NULL,
X    'F',
X    NULL,
X    NULL
X    },
X
X    {
X    (struct MenuItem *) NULL,
X   -80,
X    24,
X    80,
X    12,
X    CHECKIT|ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0x0007-0x0004,
X    (APTR) &OrbitModeSubsIntui[2],
X    NULL,
X    'E',
X    NULL,
X    NULL
X    },
X  };
X
XUBYTE PresetStr[] = { "Preset"    };
XUBYTE OrbtStr[]   = { "Orbit"        };
XUBYTE OModStr[]   = { "Orbit Mode"   };
XUBYTE OMaxStr[]   = { "Max Orbit"    };
X
Xstruct IntuiText SpecialShadow[] =
X  {
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    PresetStr,
X    NULL
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    OrbtStr,
X    NULL,
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    OModStr,
X    NULL,
X    },
X
X    {
X    HIGHLIGHTPEN,
X    1,
X    JAM1,
X    4,
X    2,
X    NULL,
X    OMaxStr,
X    NULL,
X    },
X  };
X
Xstruct IntuiText SpecialItemsIntui[] =
X  {
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    PresetStr,
X    &SpecialShadow[0]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    OrbtStr,
X    &SpecialShadow[1]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    OModStr,
X    &SpecialShadow[2]
X    },
X
X    {
X    SHADOWPEN,
X    1,
X    JAM1,
X    5,
X    3,
X    NULL,
X    OMaxStr,
X    &SpecialShadow[3]
X    },
X  };
X
Xstruct MenuItem SpecialItems[] =
X  {
X
X    {  /* Presets */
X    (struct MenuItem *) &SpecialItems[1],
X    -32,
X    0,
X    90,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &SpecialItemsIntui[0],
X    NULL,
X    '\0',
X    (struct MenuItem *) &PresetSubs,
X    NULL
X    },
X
X    { /* Orbit */
X    (struct MenuItem *) &SpecialItems[2],
X    -32,
X    14,
X    90,
X    14,
X    ITEMTEXT|COMMSEQ|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &SpecialItemsIntui[1],
X    NULL,
X    'R',
X    NULL,
X    NULL
X    },
X    { /* Orbit MathMode */
X    (struct MenuItem *) &SpecialItems[3],
X    -32,
X    28,
X    90,
X    14,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &SpecialItemsIntui[2],
X    NULL,
X    ' ',
X    (struct MenuItem *) OrbitModeSubs,
X    NULL
X    },
X
X    { /* Orbit MaxOrbit */
X    (struct MenuItem *) NULL,
X    -32,
X    42,
X    90,
X    12,
X    ITEMTEXT|ITEMENABLED|HIGHBOX,
X    0,
X    (APTR) &SpecialItemsIntui[3],
X    NULL,
X    ' ',
X    NULL,
X    NULL
X    },
X  };
X
Xstruct Menu Menu[] =
X  {
X    {
X    (struct Menu *) &Menu[1],
X    4+42,
X    0,
X    60,
X    8,
X    1,
X    (BYTE *) "Project",
X    (struct MenuItem *) &ProjectItems,
X    },
X
X    {
X    (struct Menu *) &Menu[2],
X    68+42,
X    0,
X    60,
X    8,
X    1,
X    (BYTE *) "Display",
X    (struct MenuItem *) &DisplayItems,
X    },
X
X    {
X    (struct Menu *) &Menu[3],
X    132+42,
X    0,
X    76,
X    8,
X    0,
X    (BYTE *) "Calculate",
X    (struct MenuItem *) &CalculateItems,
X    },
X
X    {
X    NULL,
X    212+42,
X    0,
X    64,
X    8,
X    1,
X    (BYTE *) "Special",
X    (struct MenuItem *) &SpecialItems,
X    }
X  };
X
X#define NUM_ITEMS(a) (sizeof(a)/sizeof(a[0]))
X
Xextern struct NewScreen NewScreen;
X
X/*
X * Set up Menu's check marks to reflect viewmodes.
X */
XInitViewModesSubs()
X{
X  SHORT i;
X
X  ClearItems( ViewModeSubs, NUM_ITEMS( ViewModeSubs ));
X
X  for (i = HIRESSUB; i <= HALFBRITESUB; i++) {
X
X    switch (i) {
X      case HIRESSUB:
X           if (NewScreen.ViewModes & HIRES)
X             ViewModeSubs[i].Flags |= CHECKED;
X           break;
X      case INTERLACESUB:
X           if (NewScreen.ViewModes & INTERLACE)
X             ViewModeSubs[i].Flags |= CHECKED;
X           break;
X      case HALFBRITESUB:
X           if (NewScreen.ViewModes & EXTRA_HALFBRITE)
X             ViewModeSubs[i].Flags |= CHECKED;
X           break;
X      }
X  }
X} /* InitViewModesSubs */
X
X/*
X * Set up Menu's check marks to reflect Depth.
X */
XInitDepthSubs()
X{
X  ClearItems( DepthSubs, NUM_ITEMS( DepthSubs ) );
X
X  DepthSubs[NewScreen.Depth-1].Flags |= CHECKED;
X
X} /* InitScreenViewMode */
X
X/*
X * Set up Menu's check marks to reflect Generator Type
X */
XInitGenSubs()
X{
X  if (CurPict) {
X
X    ClearItems( GenerateSubs, NUM_ITEMS( GenerateSubs ) );
X
X    GenerateSubs[ CurPict->MathMode ].Flags |= CHECKED;
X  }
X} /* InitGenSubs */
X
X/*
X * Set up Menu's check marks to reflect Zoom Lens Configuration
X */
XInitLensSubs()
X{
X  extern UBYTE  LensOn;
X
X  ClearItems( LensSub, NUM_ITEMS( LensSub ) );
X
X  LensSub[ LensOn ].Flags |= CHECKED;
X} /* InitLensSubs */
X
X/*
X * Set up Menu's check marks to reflect Screen Size Configuration
X */
XInitSizeSubs()
X{
X  extern UBYTE  StandardSize;
X
X  ClearItems( ScreenSizeSubs, NUM_ITEMS( ScreenSizeSubs ) );
X
X  ScreenSizeSubs[ StandardSize ].Flags |= CHECKED;
X} /* InitScreenSize */
X
X/*
X * Set up Menu's check marks to reflect Screen Size Configuration
X */
XInitBorderSubs()
X{
X  if (CurPict) {
X
X    ClearItems( BorderSubs, NUM_ITEMS( BorderSubs ) );
X
X    if (CurPict->Flags & BORDERLESS_PROJ)
X      BorderSubs[ 1 ].Flags |= CHECKED;
X    else
X      BorderSubs[ 0 ].Flags |= CHECKED;
X  }
X} /* InitScreenSize */
X
X/*
X * Set up Menu's check marks to reflect Screen Size Configuration
X */
XInitOrbitSubs()
X{
X  if (CurPict) {
X
X    ClearItems( OrbitModeSubs, NUM_ITEMS( OrbitModeSubs ) );
X
X    if (CurPict->Flags & BORDERLESS_PROJ)
X      OrbitModeSubs[ 1 ].Flags |= CHECKED;
X    else
X      OrbitModeSubs[ 0 ].Flags |= CHECKED;
X  }
X} /* InitOrbitSize */
X
X/*
X * Clear a menu's check marks
X */
XClearItems( ClearMenu, NumItems )
X  register struct MenuItem *ClearMenu;
X  register int    NumItems;
X{
X  register SHORT i;
X
X  for (i = 0; i < NumItems; i++) {
X    ClearMenu->Flags &= ~CHECKED;
X    ClearMenu++;
X  }
X} /* ClearItems */
SHAR_EOF
echo "End of archive 6 (of 9)"
# if you want to concatenate archives, remove anything after this line
exit