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