/************************************************************************
*  Version 3.00  MANDELBROT - Self-Squared Dragon Generator  29-May-86  *
*  Commodore Amiga        Global Data Definitions              MAND6.C  *
*************************************************************************
*         Copyright (c) 1986, Robert S. French and R. J. Mical          *
* --------------------------------------------------------------------- *
*  This program has been placed in the public domain.  A limited        *
*  license is hereby granted for the unlimited use and distribution of  *
*  this program, provided it is not used for commercial or profit-      *
*  making purposes.  Thank you.                                         *
*************************************************************************
*  Author information:            | Name:   R. J. Mical                 *
*                                 | USnail: Commodore-Amiga, Inc.       *
*  Name:   Robert S. French       |         983 University Avenue       *
*  USnail: 2740 Frankfort Avenue  |         Los Gatos, CA  95030        *
*          Louisville, KY  40206  \-------------------------------------*
*  Phone:  (502) 897-5096              UUCP: ihnp4!ptsfa!well!french    *
*  ARPA:   French#Robert%d@LLL-MFE or RFrench@MIT-MULTICS               *
*************************************************************************
*  Please send any comments, suggestions, or bugs to one of the above   *
*  addresses.                                                           *
************************************************************************/
 
#include "mand.h" 

int      MathBase,            MathTransBase,
         max_x,               max_y,               max_mem_y,
         max_mem,             max_count,           color_inc,
         color_offset,        color_set,           color_mode,
         color_div,           color_inset,         func_num,
         v_starty,            modified,            want_read,
         threed_stat,         title_displayed;

BOOL     SettingCenter,       SettingBoxSize,      SetBoxProportional;

struct   GfxBase              *GfxBase = NULL;

struct   IntuitionBase        *IntuitionBase = NULL;

struct   IconBase             *IconBase = NULL;

USHORT   UserPalette[32],     ZoomCenterX,         ZoomCenterY,
         ZoomBoxSizeX,        ZoomBoxSizeY,        ZoomBoxStartX,
         ZoomBoxStartY;

long     v_offset;

UWORD    *color_table = NULL, *v_mand_store = NULL;

FILE     *console = NULL,     *v_fp = NULL,        *redir_fp = NULL;

#ifdef DOUBLEPREC

double   start_r,             end_r,               start_i,
         end_i;

#else

union kludge {
   float f;
   int i;
}        start_r,             end_r,               start_i,
         end_i;

#endif

struct   Window               *w,                  *w2,
                              ColorWindow;

struct   Screen               *screen;

struct   IntuiMessage         *message;

struct   RastPort             *rp, *rp2;

struct   ViewPort             *vp;

struct TextAttr TextFont = 
    { 
    "topaz.font", /* Standard system font */ 
    8,    0,    0 
    }; 
  
struct NewScreen ns = { 
   0, 0,                               /* start position                */ 
   320, 200, 6,                        /* width, height, depth          */ 
   0, 1,                               /* detail pen, block pen         */ 
   HAM,                                /* Hold and Modify ViewMode      */ 
   CUSTOMSCREEN,                       /* screen type                   */ 
   &TextFont,                          /* font to use                   */ 
   "",                                 /* default title for screen      */ 
   NULL                                /* pointer to additional gadgets */ 
};
  
struct NewWindow nw = { 
   0, 0,                          /* start position                */ 
   320, 200,                      /* width, height                 */ 
   -1, -1,                        /* detail pen, block pen         */ 
   MOUSEBUTTONS | MENUPICK | INTUITICKS, 
                                  /* IDCMP flags                   */ 
   ACTIVATE | BORDERLESS | BACKDROP, 
                                  /* window flags                  */ 
   NULL,                          /* pointer to first user gadget  */ 
   NULL,                          /* pointer to user checkmark     */ 
   NULL,                          /* window title                  */ 
   NULL,                          /* pointer to screen (set below) */ 
   NULL,                          /* pointer to superbitmap        */ 
   0, 0, 320, 200,                /* ignored since not sizeable    */ 
   CUSTOMSCREEN                   /* type of screen desired        */ 
}; 
 
struct NewWindow aw = { 
   0, 10, 
   100, 70, 
   -1, -1, 
   CLOSEWINDOW|NEWSIZE,
   WINDOWDRAG|WINDOWSIZING|SMART_REFRESH|WINDOWCLOSE, 
   NULL, 
   NULL, 
   "Analysis", 
   NULL, 
   NULL, 
   0, 0, 320, 200, 
   CUSTOMSCREEN 
}; 
 
struct NewWindow ColorNewWindow = 
    { 
    /*  SHORT LeftEdge, TopEdge;         screen dimensions of window */
    /*  SHORT Width, Height;             screen dimensions of window */
    DEFAULT_WINDOW_LEFT, DEFAULT_WINDOW_TOP, 
    COLORWINDOW_WIDTH, COLORWINDOW_HEIGHT, 
 
    /*  UBYTE DetailPen, BlockPen;       for bar/border/gadget rendering */
    -1, -1, 
 
    /*  ULONG IDCMPFlags;                User-selected IDCMP flags */
    NULL, 
 
    /*  ULONG Flags;                     see Window struct for defines */
    BORDERLESS | SMART_REFRESH | NOCAREREFRESH, 
 
    /*  struct Gadget *FirstGadget;*/ 
    NULL, 
 
    /*  struct Image *CheckMark;*/ 
    NULL, 
 
    /*  UBYTE *Title;                     the title text for this window */
    NULL, 
     
    /*  struct Screen *Screen;*/ 
    NULL, 
     
    /*  struct BitMap *BitMap;*/ 
    NULL, 
 
    /*  SHORT MinWidth, MinHeight;       minimums */
    0, 0, 
    /*  SHORT MaxWidth, MaxHeight;       maximums */
    0, 0, 
 
    /*  USHORT Type;*/ 
    CUSTOMSCREEN, 
}; 

	
USHORT RGBData[] = 
    { 
    0xFC00, 
    0x6600, 
    0x6600, 
    0x7C00, 
    0x6C00, 
    0x6600, 
    0xE300, 
    0x0000, 
    0x0000, 
    0x0000, 
    0x0000, 
    0x3C00, 
    0x6600, 
    0xC000, 
    0xCE00, 
    0xC600, 
    0x6600, 
    0x3E00, 
    0x0000, 
    0x0000, 
    0x0000, 
    0x0000, 
    0xFC00, 
    0x6600, 
    0x6600, 
    0x7C00, 
    0x6600, 
    0x6600, 
    0xFC00, 
    }; 
 
 
struct Image ColorRGBImage = 
    { 
    3, 1, 
    8,  
    29, 
    1, 
    &RGBData[0], 
    0x1, 0x0, 
    NULL, 
    }; 
 
 
SHORT ClusterBorderVectors[] = 
    { 
    -1, -1, 
    -1, COLOR_CLUSTER_HEIGHT, 
    COLOR_CLUSTER_WIDTH, COLOR_CLUSTER_HEIGHT, 
    COLOR_CLUSTER_WIDTH, -1, 
    -1, -1, 
    }; 
 
 
struct Border ColorClusterBorder = 
    { 
    0, 0,  
    1, 0, 
    JAM1, 
    5, 
    &ClusterBorderVectors[0], 
    NULL, 
    }; 
 
struct IntuiText ColorClusterText[4] = 
    { 
    /* "COPY" */ 
        { 
        1, 0, 
        JAM2, 
        2 + CHARACTER_WIDTH, 1,  
        &TextFont,
        "COPY", 
        NULL, 
        }, 
 
    /* "RANGE" */ 
        { 
        1, 0,  
        JAM2, 
        2 + (CHARACTER_WIDTH >> 1), 1,  
        &TextFont,
        "RANGE", 
        NULL, 
        }, 
 
    /* "OK" */ 
        { 
        1, 0,  
        JAM2, 
        2 + (CHARACTER_WIDTH << 1), 1,  
        &TextFont,
        "OK", 
        NULL, 
        }, 
 
    /* "CANCEL" */ 
        { 
        1, 0,  
        JAM2, 
        2, 1,  
        &TextFont,
        "CANCEL", 
        NULL, 
        }, 
 
    }; 
 
 
 
 
/* ======================================================================== */ 
/* ======================================================================== */ 
/* ======================================================================== */ 
 
/* RJM anchor */ 
struct Image ColorPropsImages[3]; 
struct Image SuperColorImages[32]; 
 
 
struct PropInfo ColorPropsInfos[3] =  
    { 
        { 
        /* COLOR_GREEN */ 
        AUTOKNOB | FREEHORIZ, 
        0, 
        0, 
        COLOR_KNOB_BODY, 
        0, 
        0, 0, 0, 0, 0, 0, 
        }, 
 
        { 
        /* COLOR_RED */ 
        AUTOKNOB | FREEHORIZ, 
        0, 
        0, 
        COLOR_KNOB_BODY, 
        0, 
        0, 0, 0, 0, 0, 0, 
        }, 
 
        { 
        /* COLOR_BLUE */ 
        AUTOKNOB | FREEHORIZ, 
        0, 
        0, 
        COLOR_KNOB_BODY, 
        0, 
        0, 0, 0, 0, 0, 0, 
        }, 
 
    }; 
 
 
struct Gadget ColorTemplateGadgets[COLOR_GADGETS_COUNT] = 
    { 
        { 
        /* COLOR_0 */ 
        NULL, 
        COLOR_BOX_LEFT + ((0 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((0 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[0], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        0, 
        NULL, 
        }, 
 
        { 
        /* COLOR_1 */ 
        &ColorTemplateGadgets[0], 
        COLOR_BOX_LEFT + ((1 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((1 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[1], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        1, 
        NULL, 
        }, 
 
        { 
        /* COLOR_2 */ 
        &ColorTemplateGadgets[1], 
        COLOR_BOX_LEFT + ((2 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((2 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[2], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        2, 
        NULL, 
        }, 
 
        { 
        /* COLOR_3 */ 
        &ColorTemplateGadgets[2], 
        COLOR_BOX_LEFT + ((3 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((3 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[3], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        3, 
        NULL, 
        }, 
 
        { 
        /* COLOR_4 */ 
        &ColorTemplateGadgets[3], 
        COLOR_BOX_LEFT + ((4 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((4 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[4], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        4, 
        NULL, 
        }, 
 
        { 
        /* COLOR_5 */ 
        &ColorTemplateGadgets[4], 
        COLOR_BOX_LEFT + ((5 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((5 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[5], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        5, 
        NULL, 
        }, 
 
        { 
        /* COLOR_6 */ 
        &ColorTemplateGadgets[5], 
        COLOR_BOX_LEFT + ((6 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((6 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[6], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        6, 
        NULL, 
        }, 
 
        { 
        /* COLOR_7 */ 
        &ColorTemplateGadgets[6], 
        COLOR_BOX_LEFT + ((7 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((7 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[7], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        7, 
        NULL, 
        }, 
 
        { 
        /* COLOR_8 */ 
        &ColorTemplateGadgets[7], 
        COLOR_BOX_LEFT + ((8 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((8 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[8], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        8, 
        NULL, 
        }, 
 
        { 
        /* COLOR_9 */ 
        &ColorTemplateGadgets[8], 
        COLOR_BOX_LEFT + ((9 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((9 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[9], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        9, 
        NULL, 
        }, 
 
        { 
        /* COLOR_10 */ 
        &ColorTemplateGadgets[9], 
        COLOR_BOX_LEFT + ((10 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((10 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[10], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        10, 
        NULL, 
        }, 
 
        { 
        /* COLOR_11 */ 
        &ColorTemplateGadgets[10], 
        COLOR_BOX_LEFT + ((11 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((11 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[11], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        11, 
        NULL, 
        }, 
 
        { 
        /* COLOR_12 */ 
        &ColorTemplateGadgets[11], 
        COLOR_BOX_LEFT + ((12 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((12 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[12], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        12, 
        NULL, 
        }, 
 
        { 
        /* COLOR_13 */ 
        &ColorTemplateGadgets[12], 
        COLOR_BOX_LEFT + ((13 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((13 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[13], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        13, 
        NULL, 
        }, 
 
        { 
        /* COLOR_14 */ 
        &ColorTemplateGadgets[13], 
        COLOR_BOX_LEFT + ((14 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((14 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[14], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        14, 
        NULL, 
        }, 
 
        { 
        /* COLOR_15 */ 
        &ColorTemplateGadgets[14], 
        COLOR_BOX_LEFT + ((15 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((15 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[15], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        15, 
        NULL, 
        }, 
 
        { 
        /* COLOR_16 */ 
        &ColorTemplateGadgets[15], 
        COLOR_BOX_LEFT + ((16 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((16 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[16], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        16, 
        NULL, 
        }, 
 
        { 
        /* COLOR_17 */ 
        &ColorTemplateGadgets[16], 
        COLOR_BOX_LEFT + ((17 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((17 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[17], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        17, 
        NULL, 
        }, 
 
        { 
        /* COLOR_18 */ 
        &ColorTemplateGadgets[17], 
        COLOR_BOX_LEFT + ((18 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((18 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[18], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        18, 
        NULL, 
        }, 
 
        { 
        /* COLOR_19 */ 
        &ColorTemplateGadgets[18], 
        COLOR_BOX_LEFT + ((19 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((19 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[19], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        19, 
        NULL, 
        }, 
 
        { 
        /* COLOR_20 */ 
        &ColorTemplateGadgets[19], 
        COLOR_BOX_LEFT + ((20 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((20 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[20], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        20, 
        NULL, 
        }, 
 
        { 
        /* COLOR_21 */ 
        &ColorTemplateGadgets[20], 
        COLOR_BOX_LEFT + ((21 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((21 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[21], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        21, 
        NULL, 
        }, 
 
        { 
        /* COLOR_22 */ 
        &ColorTemplateGadgets[21], 
        COLOR_BOX_LEFT + ((22 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((22 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[22], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        22, 
        NULL, 
        }, 
 
        { 
        /* COLOR_23 */ 
        &ColorTemplateGadgets[22], 
        COLOR_BOX_LEFT + ((23 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((23 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[23], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        23, 
        NULL, 
        }, 
 
        { 
        /* COLOR_24 */ 
        &ColorTemplateGadgets[23], 
        COLOR_BOX_LEFT + ((24 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((24 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[24], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        24, 
        NULL, 
        }, 
 
        { 
        /* COLOR_25 */ 
        &ColorTemplateGadgets[24], 
        COLOR_BOX_LEFT + ((25 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((25 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[25], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        25, 
        NULL, 
        }, 
 
        { 
        /* COLOR_26 */ 
        &ColorTemplateGadgets[25], 
        COLOR_BOX_LEFT + ((26 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((26 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[26], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        26, 
        NULL, 
        }, 
 
        { 
        /* COLOR_27 */ 
        &ColorTemplateGadgets[26], 
        COLOR_BOX_LEFT + ((27 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((27 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[27], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        27, 
        NULL, 
        }, 
 
        { 
        /* COLOR_28 */ 
        &ColorTemplateGadgets[27], 
        COLOR_BOX_LEFT + ((28 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((28 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[28], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        28, 
        NULL, 
        }, 
 
        { 
        /* COLOR_29 */ 
        &ColorTemplateGadgets[28], 
        COLOR_BOX_LEFT + ((29 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((29 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[29], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        29, 
        NULL, 
        }, 
 
        { 
        /* COLOR_30 */ 
        &ColorTemplateGadgets[29], 
        COLOR_BOX_LEFT + ((30 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((30 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[30], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        30, 
        NULL, 
        }, 
 
        { 
        /* COLOR_31 */ 
        &ColorTemplateGadgets[30], 
        COLOR_BOX_LEFT + ((31 & 0x7) * 15), 
        COLOR_COLOR_TOP + ((31 >> 3) * 10), 
        15, 
        10, 
        GADGIMAGE, 
        GADGIMMEDIATE, 
        BOOLGADGET, 
        (APTR)&SuperColorImages[31], 
        NULL, 
        NULL, 
        NULL, 
        NULL, 
        31, 
        NULL, 
        }, 
 
        { 
        /* COLOR_COPY */ 
        &ColorTemplateGadgets[31], 
        COLOR_CLUSTER_LEFT, 
        COLOR_CLUSTER_TOP + (0 * (COLOR_CLUSTER_HEIGHT + 3)), 
        COLOR_CLUSTER_WIDTH, 
        COLOR_CLUSTER_HEIGHT, 
        GADGHCOMP, 
        RELVERIFY, 
        BOOLGADGET, 
        (APTR)&ColorClusterBorder, 
        NULL, 
        &ColorClusterText[0], 
        NULL, 
        NULL, 
        COLOR_COPY, 
        NULL, 
        }, 
 
        { 
        /* COLOR_RANGE */ 
        &ColorTemplateGadgets[COLOR_COPY], 
        COLOR_CLUSTER_LEFT, 
        COLOR_CLUSTER_TOP + (1 * (COLOR_CLUSTER_HEIGHT + 3)), 
        COLOR_CLUSTER_WIDTH, 
        COLOR_CLUSTER_HEIGHT, 
        GADGHCOMP, 
        RELVERIFY, 
        BOOLGADGET, 
        (APTR)&ColorClusterBorder, 
        NULL, 
        &ColorClusterText[1], 
        NULL, 
        NULL, 
        COLOR_RANGE, 
        NULL, 
        }, 
 
        { 
        /* COLOR_OK */ 
        &ColorTemplateGadgets[COLOR_RANGE], 
        COLOR_CLUSTER_LEFT, 
        COLOR_CLUSTER_TOP + (2 * (COLOR_CLUSTER_HEIGHT + 3)), 
        COLOR_CLUSTER_WIDTH, 
        COLOR_CLUSTER_HEIGHT, 
        GADGHCOMP, 
        RELVERIFY, 
        BOOLGADGET, 
        (APTR)&ColorClusterBorder, 
        NULL, 
        &ColorClusterText[2], 
        NULL, 
        NULL, 
        COLOR_OK, 
        NULL, 
        }, 
 
        { 
        /* COLOR_CANCEL */ 
        &ColorTemplateGadgets[COLOR_OK], 
        COLOR_CLUSTER_LEFT, 
        COLOR_CLUSTER_TOP + (3 * (COLOR_CLUSTER_HEIGHT + 3)), 
        COLOR_CLUSTER_WIDTH, 
        COLOR_CLUSTER_HEIGHT, 
        GADGHCOMP, 
        RELVERIFY, 
        BOOLGADGET, 
        (APTR)&ColorClusterBorder, 
        NULL, 
        &ColorClusterText[3], 
        NULL, 
        NULL, 
        COLOR_CANCEL, 
        NULL, 
        }, 
 
        { 
        /* COLOR_GREEN */ 
        &ColorTemplateGadgets[COLOR_CANCEL], 
        COLOR_PROP_LEFT, 
        COLOR_PROP_TOP + (1 * (COLOR_PROP_HEIGHT + 1)), 
        COLOR_PROP_WIDTH, 
        COLOR_PROP_HEIGHT, 
        GADGHCOMP | GADGIMAGE, 
        FOLLOWMOUSE, 
        PROPGADGET, 
        (APTR)&ColorPropsImages[1], 
        NULL, 
        NULL, 
        NULL, 
        (APTR)&ColorPropsInfos[1], 
        COLOR_GREEN, 
        NULL, 
        }, 
 
        { 
        /* COLOR_RED */ 
        &ColorTemplateGadgets[COLOR_GREEN], 
        COLOR_PROP_LEFT, 
        COLOR_PROP_TOP + (0 * (COLOR_PROP_HEIGHT + 1)), 
        COLOR_PROP_WIDTH, 
        COLOR_PROP_HEIGHT, 
        GADGHCOMP | GADGIMAGE, 
        FOLLOWMOUSE, 
        PROPGADGET, 
        (APTR)&ColorPropsImages[0], 
        NULL, 
        NULL, 
        NULL, 
        (APTR)&ColorPropsInfos[0], 
        COLOR_RED, 
        NULL, 
        }, 
 
        { 
        /* COLOR_BLUE */ 
        &ColorTemplateGadgets[COLOR_RED], 
        COLOR_PROP_LEFT, 
        COLOR_PROP_TOP + (2 * (COLOR_PROP_HEIGHT + 1)), 
        COLOR_PROP_WIDTH, 
        COLOR_PROP_HEIGHT, 
        GADGHCOMP | GADGIMAGE, 
        FOLLOWMOUSE, 
        PROPGADGET, 
        (APTR)&ColorPropsImages[2], 
        NULL, 
        NULL, 
        NULL, 
        (APTR)&ColorPropsInfos[2], 
        COLOR_BLUE, 
        NULL, 
        }, 
 
        { 
        /* COLOR_HSL_RGB */ 
        &ColorTemplateGadgets[COLOR_BLUE], 
        COLOR_HSL_LEFT, 
        COLOR_HSL_TOP, 
        CHARACTER_WIDTH + 5, 
        COLOR_BOX_BOTTOM - COLOR_BOX_TOP + 1, 
        GADGHIMAGE | GADGIMAGE | SELECTED, 
        TOGGLESELECT, 
        BOOLGADGET, 
        (APTR)&ColorRGBImage, 
        (APTR)&ColorRGBImage, 
        NULL, 
        NULL, 
        NULL, 
        COLOR_HSL_RGB, 
        NULL, 
        }, 
    }; 
 
