home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / source / colorw.lha / colordat.c < prev    next >
C/C++ Source or Header  |  1987-10-12  |  7KB  |  395 lines

  1.  
  2. /* *** colordat.c ***********************************************************
  3.  *
  4.  * ColorWindow Routine  --  The ColorWindow Data 
  5.  *     from Book 1 of the Amiga Programmers' Suite by RJ Mical
  6.  *
  7.  * Copyright (C) 1986, 1987, Robert J. Mical
  8.  * All Rights Reserved.
  9.  *
  10.  * Created for Amiga developers.
  11.  * Any or all of this code can be used in any program as long as this
  12.  * entire copyright notice is retained, ok?  Thanks.
  13.  *
  14.  * HISTORY      NAME            DESCRIPTION
  15.  * -----------  --------------  --------------------------------------------
  16.  * 3 Jan 87     RJ >:-{)*       Clean-up for release      
  17.  * 27 Feb 86    =RJ Mical=      Modified these routines for Zaphod
  18.  * January 86   =RJ=            Modified the originals for Mandelbrot
  19.  * Late 85      =RJ=            Created the color window for Graphicraft
  20.  *
  21.  * *********************************************************************** */
  22.  
  23.  
  24. #include "color.h"
  25.  
  26.  
  27.  
  28. struct TextAttr SafeFont =
  29.       {
  30.       (UBYTE *)"topaz.font",
  31.       TOPAZ_EIGHTY,
  32.       0,
  33.       FS_NORMAL
  34.       };
  35.  
  36.  
  37. /* If this image data isn't in chip memory, it will have to be moved there */
  38. USHORT RGBData[RGBHSL_SIZE] =
  39.    {
  40.    0xFC00,
  41.    0x6600,
  42.    0x6600,
  43.    0x7800,
  44.    0x6C00,
  45.    0x6600,
  46.    0xE300,
  47.    0x0000,
  48.    0x0000,
  49.    0x0000,
  50.    0x0000,
  51.    0x3C00,
  52.    0x6600,
  53.    0xC000,
  54.    0xCE00,
  55.    0xC600,
  56.    0x6600,
  57.    0x3E00,
  58.    0x0000,
  59.    0x0000,
  60.    0x0000,
  61.    0x0000,
  62.    0xFC00,
  63.    0x6600,
  64.    0x6600,
  65.    0x7C00,
  66.    0x6600,
  67.    0x6600,
  68.    0xFC00,
  69.    };
  70.  
  71. USHORT HSLData[RGBHSL_SIZE] =
  72.    {
  73.    0xC600,
  74.    0xC600,
  75.    0xC600,
  76.    0xFE00,
  77.    0xC600,
  78.    0xC600,
  79.    0xC600,
  80.    0x0000,
  81.    0x0000,
  82.    0x0000,
  83.    0x0000,
  84.    0x7C00,
  85.    0xC600,
  86.    0xC000,
  87.    0xFE00,
  88.    0x0600,
  89.    0xC600,
  90.    0x7C00,
  91.    0x0000,
  92.    0x0000,
  93.    0x0000,
  94.    0x0000,
  95.    0xF000,
  96.    0x6000,
  97.    0x6000,
  98.    0x6000,
  99.    0x6200,
  100.    0x6200,
  101.    0xFE00,
  102.    };
  103.  
  104.  
  105.  
  106. struct Image ColorRGBImage =
  107.    {
  108.    3, 1,
  109.    8, 
  110.    29,
  111.    1,
  112.    &RGBData[0],
  113.    0x1, 0x0,
  114.    NULL,
  115.    };
  116.  
  117.  
  118. struct Image ColorHSLImage =
  119.    {
  120.    3, 1,
  121.    8, 
  122.    29,
  123.    1,
  124.    &HSLData[0],
  125.    0x1, 0x0,
  126.    NULL,
  127.    };
  128.  
  129.  
  130. SHORT ClusterBorderVectors[] =
  131.    {
  132.    -1, -1,
  133.    -1, COLOR_CLUSTER_HEIGHT,
  134.    COLOR_CLUSTER_WIDTH, COLOR_CLUSTER_HEIGHT,
  135.    COLOR_CLUSTER_WIDTH, -1,
  136.    -1, -1,
  137.    };
  138.  
  139.  
  140. struct Border ColorClusterBorder =
  141.    {
  142.    0, 0, 
  143.    1, 0,
  144.    JAM1,
  145.    5,
  146.    &ClusterBorderVectors[0],
  147.    NULL,
  148.    };
  149.  
  150. struct IntuiText ColorClusterText[4] =
  151.    {
  152.    /* "COPY" */
  153.       {
  154.       1, 0,
  155.       JAM2,
  156.       5 + CHARACTER_WIDTH + (NEW_EXTRALEFT >> 1), 1, 
  157.       &SafeFont,
  158.       (UBYTE *)"COPY",
  159.       NULL,
  160.       },
  161.  
  162.    /* "RANGE" */
  163.       {
  164.       1, 0, 
  165.       JAM2,
  166.       5 + (CHARACTER_WIDTH >> 1) + (NEW_EXTRALEFT >> 1), 1, 
  167.       &SafeFont,
  168.       (UBYTE *)"RANGE",
  169.       NULL,
  170.       },
  171.  
  172.    /* "OK" */
  173.       {
  174.       1, 0, 
  175.       JAM2,
  176.       5 + (CHARACTER_WIDTH << 1) + (NEW_EXTRALEFT >> 1), 1, 
  177.       &SafeFont,
  178.       (UBYTE *)"OK",
  179.       NULL,
  180.       },
  181.  
  182.    /* "CANCEL" */
  183.       {
  184.       1, 0, 
  185.       JAM2,
  186.       5 + (NEW_EXTRALEFT >> 1), 1, 
  187.       &SafeFont,
  188.       (UBYTE *)"CANCEL",
  189.       NULL,
  190.       },
  191.  
  192.    };
  193.  
  194.  
  195.  
  196. /* ======================================================================== */
  197. /* ======================================================================== */
  198. /* ======================================================================== */
  199.  
  200. struct Image ColorPropsImages[3];
  201.  
  202.  
  203. struct PropInfo ColorPropsInfos[3] = 
  204.    {
  205.       {
  206.       /* COLOR_GREEN */
  207.       AUTOKNOB | FREEHORIZ,
  208.       0,
  209.       0,
  210.       COLOR_KNOB_BODY,
  211.       0,
  212.       0, 0, 0, 0, 0, 0,
  213.       },
  214.  
  215.       {
  216.       /* COLOR_RED */
  217.       AUTOKNOB | FREEHORIZ,
  218.       0,
  219.       0,
  220.       COLOR_KNOB_BODY,
  221.       0,
  222.       0, 0, 0, 0, 0, 0,
  223.       },
  224.  
  225.       {
  226.       /* COLOR_BLUE */
  227.       AUTOKNOB | FREEHORIZ,
  228.       0,
  229.       0,
  230.       COLOR_KNOB_BODY,
  231.       0,
  232.       0, 0, 0, 0, 0, 0,
  233.       },
  234.  
  235.    };
  236.  
  237.  
  238. struct Gadget ColorTemplateGadgets[COLOR_GADGETS_COUNT] =
  239.    {
  240.       {
  241.       /* COLOR_COPY */
  242.       NULL,
  243.       COLOR_CLUSTER_LEFT,
  244.       COLOR_CLUSTER_TOP + (00 * (COLOR_CLUSTER_HEIGHT + 3)),
  245.       COLOR_CLUSTER_WIDTH,
  246.       COLOR_CLUSTER_HEIGHT,
  247.       GADGHCOMP,
  248.       RELVERIFY,
  249.       BOOLGADGET,
  250.       (APTR)&ColorClusterBorder,
  251.       NULL,
  252.       &ColorClusterText[00],
  253.       NULL,
  254.       NULL,
  255.       COLOR_COPY,
  256.       NULL,
  257.       },
  258.  
  259.       {
  260.       /* COLOR_RANGE */
  261.       &ColorTemplateGadgets[COLOR_COPY],
  262.       COLOR_CLUSTER_LEFT,
  263.       COLOR_CLUSTER_TOP + (01 * (COLOR_CLUSTER_HEIGHT + 3)),
  264.       COLOR_CLUSTER_WIDTH,
  265.       COLOR_CLUSTER_HEIGHT,
  266.       GADGHCOMP,
  267.       RELVERIFY,
  268.       BOOLGADGET,
  269.       (APTR)&ColorClusterBorder,
  270.       NULL,
  271.       &ColorClusterText[01],
  272.       NULL,
  273.       NULL,
  274.       COLOR_RANGE,
  275.       NULL,
  276.       },
  277.  
  278.       {
  279.       /* COLOR_OK */
  280.       &ColorTemplateGadgets[COLOR_RANGE],
  281.       COLOR_CLUSTER_LEFT,
  282.       COLOR_CLUSTER_TOP + (02 * (COLOR_CLUSTER_HEIGHT + 3)),
  283.       COLOR_CLUSTER_WIDTH,
  284.       COLOR_CLUSTER_HEIGHT,
  285.       GADGHCOMP,
  286.       RELVERIFY,
  287.       BOOLGADGET,
  288.       (APTR)&ColorClusterBorder,
  289.       NULL,
  290.       &ColorClusterText[02],
  291.       NULL,
  292.       NULL,
  293.       COLOR_OK,
  294.       NULL,
  295.       },
  296.  
  297.       {
  298.       /* COLOR_CANCEL */
  299.       &ColorTemplateGadgets[COLOR_OK],
  300.       COLOR_CLUSTER_LEFT,
  301.       COLOR_CLUSTER_TOP + (03 * (COLOR_CLUSTER_HEIGHT + 3)),
  302.       COLOR_CLUSTER_WIDTH,
  303.       COLOR_CLUSTER_HEIGHT,
  304.       GADGHCOMP,
  305.       RELVERIFY,
  306.       BOOLGADGET,
  307.       (APTR)&ColorClusterBorder,
  308.       NULL,
  309.       &ColorClusterText[03],
  310.       NULL,
  311.       NULL,
  312.       COLOR_CANCEL,
  313.       NULL,
  314.       },
  315.  
  316.       {
  317.       /* COLOR_GREEN */
  318.       &ColorTemplateGadgets[COLOR_CANCEL],
  319.       COLOR_PROP_LEFT,
  320.       COLOR_PROP_TOP + (01 * (COLOR_PROP_HEIGHT + 1)),
  321.       COLOR_PROP_WIDTH,
  322.       COLOR_PROP_HEIGHT,
  323.       GADGHCOMP | GADGIMAGE,
  324.       FOLLOWMOUSE,
  325.       PROPGADGET,
  326.       (APTR)&ColorPropsImages[01],
  327.       NULL,
  328.       NULL,
  329.       NULL,
  330.       (APTR)&ColorPropsInfos[01],
  331.       COLOR_GREEN,
  332.       NULL,
  333.       },
  334.  
  335.       {
  336.       /* COLOR_RED */
  337.       &ColorTemplateGadgets[COLOR_GREEN],
  338.       COLOR_PROP_LEFT,
  339.       COLOR_PROP_TOP + (00 * (COLOR_PROP_HEIGHT + 1)),
  340.       COLOR_PROP_WIDTH,
  341.       COLOR_PROP_HEIGHT,
  342.       GADGHCOMP | GADGIMAGE,
  343.       FOLLOWMOUSE,
  344.       PROPGADGET,
  345.       (APTR)&ColorPropsImages[00],
  346.       NULL,
  347.       NULL,
  348.       NULL,
  349.       (APTR)&ColorPropsInfos[00],
  350.       COLOR_RED,
  351.       NULL,
  352.       },
  353.  
  354.       {
  355.       /* COLOR_BLUE */
  356.       &ColorTemplateGadgets[COLOR_RED],
  357.       COLOR_PROP_LEFT,
  358.       COLOR_PROP_TOP + (02 * (COLOR_PROP_HEIGHT + 1)),
  359.       COLOR_PROP_WIDTH,
  360.       COLOR_PROP_HEIGHT,
  361.       GADGHCOMP | GADGIMAGE,
  362.       FOLLOWMOUSE,
  363.       PROPGADGET,
  364.       (APTR)&ColorPropsImages[02],
  365.       NULL,
  366.       NULL,
  367.       NULL,
  368.       (APTR)&ColorPropsInfos[02],
  369.       COLOR_BLUE,
  370.       NULL,
  371.       },
  372.  
  373.       {
  374.       /* COLOR_HSL_RGB */
  375.       &ColorTemplateGadgets[COLOR_BLUE],
  376.       COLOR_HSL_LEFT,
  377.       COLOR_HSL_TOP,
  378.       CHARACTER_WIDTH + 5,
  379.       COLOR_BOX_BOTTOM - COLOR_BOX_TOP + 1,
  380.       GADGHIMAGE | GADGIMAGE,
  381.       TOGGLESELECT | GADGIMMEDIATE,
  382.       BOOLGADGET,
  383.       (APTR)&ColorRGBImage,
  384.       (APTR)&ColorHSLImage,
  385.       NULL,
  386.       NULL,
  387.       NULL,
  388.       COLOR_HSL_RGB,
  389.       NULL,
  390.       },
  391.    };
  392.  
  393.  
  394.  
  395.